From 4b8277af70c1ed1042fb53a4dfc0dc5a6823596f Mon Sep 17 00:00:00 2001 From: Aravind Date: Tue, 14 Jul 2026 11:30:24 +0530 Subject: [PATCH] fix: stop .gitignore from excluding build/.next (site 502/blank after deploy) .gitignore's ".next/" rule (no leading slash) matched at any depth, so build/.next was silently excluded from every commit even though build.sh populates it. The Docker image was built without the compiled server/static output, so server.js had nothing to serve. Anchor the rule to the repo root and commit the compiled output that Dokploy actually needs. --- .gitignore | 2 +- build/.next/BUILD_ID | 1 + build/.next/app-path-routes-manifest.json | 22 + build/.next/build-manifest.json | 22 + build/.next/package.json | 1 + build/.next/prerender-manifest.json | 729 ++++ build/.next/required-server-files.json | 341 ++ build/.next/routes-manifest.json | 174 + build/.next/server/app-paths-manifest.json | 22 + build/.next/server/app/_global-error.html | 1 + build/.next/server/app/_global-error.meta | 15 + build/.next/server/app/_global-error.rsc | 15 + .../__PAGE__.segment.rsc | 5 + .../_global-error.segments/_full.segment.rsc | 15 + .../_global-error.segments/_head.segment.rsc | 6 + .../_global-error.segments/_index.segment.rsc | 5 + .../_global-error.segments/_tree.segment.rsc | 1 + build/.next/server/app/_global-error/page.js | 10 + .../server/app/_global-error/page.js.map | 5 + .../server/app/_global-error/page.js.nft.json | 1 + .../page/app-paths-manifest.json | 3 + .../_global-error/page/build-manifest.json | 18 + .../page/next-font-manifest.json | 6 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 4 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/_not-found.html | 680 ++++ build/.next/server/app/_not-found.meta | 16 + build/.next/server/app/_not-found.rsc | 26 + .../app/_not-found.segments/_full.segment.rsc | 26 + .../app/_not-found.segments/_head.segment.rsc | 6 + .../_not-found.segments/_index.segment.rsc | 15 + .../_not-found.segment.rsc | 5 + .../_not-found/__PAGE__.segment.rsc | 5 + .../app/_not-found.segments/_tree.segment.rsc | 4 + build/.next/server/app/_not-found/page.js | 14 + build/.next/server/app/_not-found/page.js.map | 5 + .../server/app/_not-found/page.js.nft.json | 1 + .../_not-found/page/app-paths-manifest.json | 3 + .../app/_not-found/page/build-manifest.json | 18 + .../_not-found/page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/about-us.html | 2050 ++++++++++ build/.next/server/app/about-us.meta | 15 + build/.next/server/app/about-us.rsc | 173 + .../app/about-us.segments/_full.segment.rsc | 173 + .../app/about-us.segments/_head.segment.rsc | 6 + .../app/about-us.segments/_index.segment.rsc | 15 + .../app/about-us.segments/_tree.segment.rsc | 11 + .../about-us.segments/about-us.segment.rsc | 5 + .../about-us/__PAGE__.segment.rsc | 138 + build/.next/server/app/about-us/page.js | 16 + build/.next/server/app/about-us/page.js.map | 5 + .../server/app/about-us/page.js.nft.json | 1 + .../app/about-us/page/app-paths-manifest.json | 3 + .../app/about-us/page/build-manifest.json | 18 + .../app/about-us/page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/air-freight.html | 1 + build/.next/server/app/air-freight.meta | 17 + build/.next/server/app/air-freight.rsc | 32 + .../air-freight.segments/_full.segment.rsc | 32 + .../air-freight.segments/_head.segment.rsc | 6 + .../air-freight.segments/_index.segment.rsc | 15 + .../air-freight.segments/_tree.segment.rsc | 9 + .../air-freight.segment.rsc | 5 + .../air-freight/__PAGE__.segment.rsc | 6 + build/.next/server/app/air-freight/page.js | 16 + .../.next/server/app/air-freight/page.js.map | 5 + .../server/app/air-freight/page.js.nft.json | 1 + .../air-freight/page/app-paths-manifest.json | 3 + .../app/air-freight/page/build-manifest.json | 18 + .../air-freight/page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/blog.html | 863 ++++ build/.next/server/app/blog.meta | 15 + build/.next/server/app/blog.rsc | 207 + .../app/blog.segments/_full.segment.rsc | 207 + .../app/blog.segments/_head.segment.rsc | 6 + .../app/blog.segments/_index.segment.rsc | 15 + .../app/blog.segments/_tree.segment.rsc | 10 + .../server/app/blog.segments/blog.segment.rsc | 5 + .../blog.segments/blog/__PAGE__.segment.rsc | 176 + ...tance-insights-from-our-hyderabad-hub.html | 1168 ++++++ ...tance-insights-from-our-hyderabad-hub.meta | 16 + ...stance-insights-from-our-hyderabad-hub.rsc | 547 +++ .../_full.segment.rsc | 547 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 522 +++ build/.next/server/app/blog/[slug]/page.js | 18 + .../.next/server/app/blog/[slug]/page.js.map | 5 + .../server/app/blog/[slug]/page.js.nft.json | 1 + .../blog/[slug]/page/app-paths-manifest.json | 3 + .../app/blog/[slug]/page/build-manifest.json | 18 + .../blog/[slug]/page/next-font-manifest.json | 14 + .../[slug]/page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../[slug]/page_client-reference-manifest.js | 3 + ...the-secret-to-ev-route-pre-validation.html | 1168 ++++++ ...the-secret-to-ev-route-pre-validation.meta | 16 + ...-the-secret-to-ev-route-pre-validation.rsc | 544 +++ .../_full.segment.rsc | 544 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 519 +++ ...er-city-the-future-of-urban-logistics.html | 1168 ++++++ ...er-city-the-future-of-urban-logistics.meta | 16 + ...ner-city-the-future-of-urban-logistics.rsc | 545 +++ .../_full.segment.rsc | 545 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 520 +++ ...-without-compromising-delivery-volume.html | 1168 ++++++ ...-without-compromising-delivery-volume.meta | 16 + ...n-without-compromising-delivery-volume.rsc | 546 +++ .../_full.segment.rsc | 546 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 521 +++ ...is-transforming-last-mile-ev-delivery.html | 1168 ++++++ ...is-transforming-last-mile-ev-delivery.meta | 16 + ...-is-transforming-last-mile-ev-delivery.rsc | 545 +++ .../_full.segment.rsc | 545 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 520 +++ ...aintains-99-9-sla-compliance-at-scale.html | 1168 ++++++ ...aintains-99-9-sla-compliance-at-scale.meta | 16 + ...maintains-99-9-sla-compliance-at-scale.rsc | 546 +++ .../_full.segment.rsc | 546 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 521 +++ ...ruth-ai-10-stages-to-smarter-dispatch.html | 1168 ++++++ ...ruth-ai-10-stages-to-smarter-dispatch.meta | 16 + ...truth-ai-10-stages-to-smarter-dispatch.rsc | 546 +++ .../_full.segment.rsc | 546 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 521 +++ build/.next/server/app/blog/page.js | 16 + build/.next/server/app/blog/page.js.map | 5 + build/.next/server/app/blog/page.js.nft.json | 1 + .../app/blog/page/app-paths-manifest.json | 3 + .../server/app/blog/page/build-manifest.json | 18 + .../app/blog/page/next-font-manifest.json | 14 + .../blog/page/react-loadable-manifest.json | 1 + .../blog/page/server-reference-manifest.json | 17 + .../blog/page_client-reference-manifest.js | 3 + ...olving-range-anxiety-for-urban-fleets.html | 1168 ++++++ ...olving-range-anxiety-for-urban-fleets.meta | 16 + ...solving-range-anxiety-for-urban-fleets.rsc | 545 +++ .../_full.segment.rsc | 545 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 520 +++ ...precision-beats-heuristics-in-routing.html | 1168 ++++++ ...precision-beats-heuristics-in-routing.meta | 16 + ...-precision-beats-heuristics-in-routing.rsc | 545 +++ .../_full.segment.rsc | 545 +++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 10 + .../blog.segment.rsc | 5 + .../blog/$d$slug.segment.rsc | 5 + .../blog/$d$slug/__PAGE__.segment.rsc | 520 +++ build/.next/server/app/contact.html | 914 +++++ build/.next/server/app/contact.meta | 15 + build/.next/server/app/contact.rsc | 275 ++ .../app/contact.segments/_full.segment.rsc | 275 ++ .../app/contact.segments/_head.segment.rsc | 6 + .../app/contact.segments/_index.segment.rsc | 15 + .../app/contact.segments/_tree.segment.rsc | 11 + .../app/contact.segments/contact.segment.rsc | 5 + .../contact/__PAGE__.segment.rsc | 246 ++ build/.next/server/app/contact/page.js | 15 + build/.next/server/app/contact/page.js.map | 5 + .../.next/server/app/contact/page.js.nft.json | 1 + .../app/contact/page/app-paths-manifest.json | 3 + .../app/contact/page/build-manifest.json | 18 + .../app/contact/page/next-font-manifest.json | 14 + .../contact/page/react-loadable-manifest.json | 9 + .../page/server-reference-manifest.json | 17 + .../contact/page_client-reference-manifest.js | 3 + build/.next/server/app/cookie-policy.html | 853 ++++ build/.next/server/app/cookie-policy.meta | 15 + build/.next/server/app/cookie-policy.rsc | 215 + .../cookie-policy.segments/_full.segment.rsc | 215 + .../cookie-policy.segments/_head.segment.rsc | 6 + .../cookie-policy.segments/_index.segment.rsc | 15 + .../cookie-policy.segments/_tree.segment.rsc | 9 + .../cookie-policy.segment.rsc | 5 + .../cookie-policy/__PAGE__.segment.rsc | 187 + build/.next/server/app/cookie-policy/page.js | 15 + .../server/app/cookie-policy/page.js.map | 5 + .../server/app/cookie-policy/page.js.nft.json | 1 + .../page/app-paths-manifest.json | 3 + .../cookie-policy/page/build-manifest.json | 18 + .../page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/doormile-wings.html | 2839 +++++++++++++ build/.next/server/app/doormile-wings.meta | 15 + build/.next/server/app/doormile-wings.rsc | 299 ++ .../doormile-wings.segments/_full.segment.rsc | 299 ++ .../doormile-wings.segments/_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../doormile-wings.segments/_tree.segment.rsc | 10 + .../doormile-wings.segment.rsc | 5 + .../doormile-wings/__PAGE__.segment.rsc | 271 ++ build/.next/server/app/doormile-wings/page.js | 16 + .../server/app/doormile-wings/page.js.map | 5 + .../app/doormile-wings/page.js.nft.json | 1 + .../page/app-paths-manifest.json | 3 + .../doormile-wings/page/build-manifest.json | 18 + .../page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/empowerment.html | 2807 +++++++++++++ build/.next/server/app/empowerment.meta | 15 + build/.next/server/app/empowerment.rsc | 2194 ++++++++++ .../empowerment.segments/_full.segment.rsc | 2194 ++++++++++ .../empowerment.segments/_head.segment.rsc | 6 + .../empowerment.segments/_index.segment.rsc | 15 + .../empowerment.segments/_tree.segment.rsc | 9 + .../empowerment.segment.rsc | 5 + .../empowerment/__PAGE__.segment.rsc | 2166 ++++++++++ build/.next/server/app/empowerment/page.js | 17 + .../.next/server/app/empowerment/page.js.map | 5 + .../server/app/empowerment/page.js.nft.json | 1 + .../empowerment/page/app-paths-manifest.json | 3 + .../app/empowerment/page/build-manifest.json | 18 + .../empowerment/page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/express.html | 756 ++++ build/.next/server/app/express.meta | 15 + build/.next/server/app/express.rsc | 114 + .../app/express.segments/_full.segment.rsc | 114 + .../app/express.segments/_head.segment.rsc | 6 + .../app/express.segments/_index.segment.rsc | 15 + .../app/express.segments/_tree.segment.rsc | 9 + .../app/express.segments/express.segment.rsc | 5 + .../express/__PAGE__.segment.rsc | 83 + build/.next/server/app/express/page.js | 15 + build/.next/server/app/express/page.js.map | 5 + .../.next/server/app/express/page.js.nft.json | 1 + .../app/express/page/app-paths-manifest.json | 3 + .../app/express/page/build-manifest.json | 18 + .../app/express/page/next-font-manifest.json | 14 + .../express/page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../express/page_client-reference-manifest.js | 3 + build/.next/server/app/favicon.ico.body | Bin 0 -> 3590 bytes build/.next/server/app/favicon.ico.meta | 1 + build/.next/server/app/favicon.ico/route.js | 6 + .../.next/server/app/favicon.ico/route.js.map | 5 + .../server/app/favicon.ico/route.js.nft.json | 1 + .../favicon.ico/route/app-paths-manifest.json | 3 + .../app/favicon.ico/route/build-manifest.json | 9 + build/.next/server/app/how-it-works.html | 891 +++++ build/.next/server/app/how-it-works.meta | 15 + build/.next/server/app/how-it-works.rsc | 33 + .../how-it-works.segments/_full.segment.rsc | 33 + .../how-it-works.segments/_head.segment.rsc | 6 + .../how-it-works.segments/_index.segment.rsc | 15 + .../how-it-works.segments/_tree.segment.rsc | 9 + .../how-it-works.segment.rsc | 5 + .../how-it-works/__PAGE__.segment.rsc | 7 + build/.next/server/app/how-it-works/page.js | 15 + .../.next/server/app/how-it-works/page.js.map | 5 + .../server/app/how-it-works/page.js.nft.json | 1 + .../how-it-works/page/app-paths-manifest.json | 3 + .../app/how-it-works/page/build-manifest.json | 18 + .../how-it-works/page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 12 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/icon.png.body | Bin 0 -> 3590 bytes build/.next/server/app/icon.png.meta | 1 + build/.next/server/app/icon.png/route.js | 6 + build/.next/server/app/icon.png/route.js.map | 5 + .../server/app/icon.png/route.js.nft.json | 1 + .../icon.png/route/app-paths-manifest.json | 3 + .../app/icon.png/route/build-manifest.json | 9 + build/.next/server/app/index.html | 1910 +++++++++ build/.next/server/app/index.meta | 14 + build/.next/server/app/index.rsc | 166 + .../app/index.segments/__PAGE__.segment.rsc | 142 + .../app/index.segments/_full.segment.rsc | 166 + .../app/index.segments/_head.segment.rsc | 6 + .../app/index.segments/_index.segment.rsc | 15 + .../app/index.segments/_tree.segment.rsc | 10 + build/.next/server/app/miletruth.html | 3531 +++++++++++++++++ build/.next/server/app/miletruth.meta | 15 + build/.next/server/app/miletruth.rsc | 36 + .../app/miletruth.segments/_full.segment.rsc | 36 + .../app/miletruth.segments/_head.segment.rsc | 6 + .../app/miletruth.segments/_index.segment.rsc | 15 + .../app/miletruth.segments/_tree.segment.rsc | 9 + .../miletruth.segments/miletruth.segment.rsc | 5 + .../miletruth/__PAGE__.segment.rsc | 10 + build/.next/server/app/miletruth/page.js | 15 + build/.next/server/app/miletruth/page.js.map | 5 + .../server/app/miletruth/page.js.nft.json | 1 + .../miletruth/page/app-paths-manifest.json | 3 + .../app/miletruth/page/build-manifest.json | 18 + .../miletruth/page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 26 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/page.js | 17 + build/.next/server/app/page.js.map | 5 + build/.next/server/app/page.js.nft.json | 1 + .../server/app/page/app-paths-manifest.json | 3 + .../.next/server/app/page/build-manifest.json | 18 + .../server/app/page/next-font-manifest.json | 14 + .../app/page/react-loadable-manifest.json | 1 + .../app/page/server-reference-manifest.json | 17 + .../app/page_client-reference-manifest.js | 3 + build/.next/server/app/privacy-policy.html | 853 ++++ build/.next/server/app/privacy-policy.meta | 15 + build/.next/server/app/privacy-policy.rsc | 222 ++ .../privacy-policy.segments/_full.segment.rsc | 222 ++ .../privacy-policy.segments/_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../privacy-policy.segments/_tree.segment.rsc | 9 + .../privacy-policy.segment.rsc | 5 + .../privacy-policy/__PAGE__.segment.rsc | 189 + build/.next/server/app/privacy-policy/page.js | 15 + .../server/app/privacy-policy/page.js.map | 5 + .../app/privacy-policy/page.js.nft.json | 1 + .../page/app-paths-manifest.json | 3 + .../privacy-policy/page/build-manifest.json | 18 + .../page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/sitemap.xml.body | 123 + build/.next/server/app/sitemap.xml.meta | 1 + build/.next/server/app/sitemap.xml/route.js | 7 + .../.next/server/app/sitemap.xml/route.js.map | 5 + .../server/app/sitemap.xml/route.js.nft.json | 1 + .../sitemap.xml/route/app-paths-manifest.json | 3 + .../app/sitemap.xml/route/build-manifest.json | 9 + .../route/server-reference-manifest.json | 4 + .../route_client-reference-manifest.js | 3 + build/.next/server/app/solutions.html | 1065 +++++ build/.next/server/app/solutions.meta | 15 + build/.next/server/app/solutions.rsc | 76 + .../app/solutions.segments/_full.segment.rsc | 76 + .../app/solutions.segments/_head.segment.rsc | 6 + .../app/solutions.segments/_index.segment.rsc | 15 + .../app/solutions.segments/_tree.segment.rsc | 9 + .../solutions.segments/solutions.segment.rsc | 5 + .../solutions/__PAGE__.segment.rsc | 45 + build/.next/server/app/solutions/page.js | 15 + build/.next/server/app/solutions/page.js.map | 5 + .../server/app/solutions/page.js.nft.json | 1 + .../solutions/page/app-paths-manifest.json | 3 + .../app/solutions/page/build-manifest.json | 18 + .../solutions/page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + build/.next/server/app/terms-of-service.html | 853 ++++ build/.next/server/app/terms-of-service.meta | 15 + build/.next/server/app/terms-of-service.rsc | 222 ++ .../_full.segment.rsc | 222 ++ .../_head.segment.rsc | 6 + .../_index.segment.rsc | 15 + .../_tree.segment.rsc | 9 + .../terms-of-service.segment.rsc | 5 + .../terms-of-service/__PAGE__.segment.rsc | 189 + .../.next/server/app/terms-of-service/page.js | 15 + .../server/app/terms-of-service/page.js.map | 5 + .../app/terms-of-service/page.js.nft.json | 1 + .../page/app-paths-manifest.json | 3 + .../terms-of-service/page/build-manifest.json | 18 + .../page/next-font-manifest.json | 14 + .../page/react-loadable-manifest.json | 1 + .../page/server-reference-manifest.json | 17 + .../page_client-reference-manifest.js | 3 + .../chunks/[externals]_next_dist_0arv.vj._.js | 3 + .../chunks/[root-of-the-server]__009pdeo._.js | 3 + .../chunks/[root-of-the-server]__0j8-xkl._.js | 13 + .../chunks/[root-of-the-server]__0nwnmaq._.js | 3 + .../server/chunks/[turbopack]_runtime.js | 903 +++++ ...r_app_favicon_ico_route_actions_095lj93.js | 3 + ...rver_app_icon_png_route_actions_12.gv.r.js | 3 + ...r_app_sitemap_xml_route_actions_036gxb_.js | 3 + .../node_modules_next_dist_1343e2k._.js | 18 + .../ssr/[root-of-the-server]__055c-aq._.js | 15 + .../ssr/[root-of-the-server]__07qac4.._.js | 3 + .../ssr/[root-of-the-server]__07uj_3p._.js | 3 + .../ssr/[root-of-the-server]__0800b30._.js | 186 + .../ssr/[root-of-the-server]__08t.da-._.js | 176 + .../ssr/[root-of-the-server]__0ajd8y_._.js | 176 + .../ssr/[root-of-the-server]__0bmtoj~._.js | 5 + .../ssr/[root-of-the-server]__0dzpf04._.js | 79 + .../ssr/[root-of-the-server]__0ed.-2a._.js | 3 + .../ssr/[root-of-the-server]__0eood4z._.js | 3 + .../ssr/[root-of-the-server]__0gpipiq._.js | 3 + .../ssr/[root-of-the-server]__0j0clw_._.js | 33 + .../ssr/[root-of-the-server]__0ka9zs8._.js | 3 + .../ssr/[root-of-the-server]__0oqdvq1._.js | 3 + .../ssr/[root-of-the-server]__0ujg1rs._.js | 3 + .../ssr/[root-of-the-server]__0vr5sgo._.js | 3 + .../ssr/[root-of-the-server]__0vver6v._.js | 41 + .../ssr/[root-of-the-server]__0~7vw31._.js | 3 + .../ssr/[root-of-the-server]__0~j.xbf._.js | 3 + .../ssr/[root-of-the-server]__11.jnw6._.js | 176 + .../ssr/[root-of-the-server]__1103g-m._.js | 33 + .../ssr/[root-of-the-server]__12mff8~._.js | 237 ++ .../server/chunks/ssr/[turbopack]_runtime.js | 903 +++++ build/.next/server/chunks/ssr/_01obfw9._.js | 3 + build/.next/server/chunks/ssr/_0p0sfo8._.js | 707 ++++ build/.next/server/chunks/ssr/_0sw0r2k._.js | 5 + build/.next/server/chunks/ssr/_0zmlo4s._.js | 214 + build/.next/server/chunks/ssr/_12x1.3y._.js | 3 + ..._app__global-error_page_actions_0k77kol.js | 3 + ...ver_app__not-found_page_actions_0nwttba.js | 3 + ...erver_app_about-us_page_actions_10el~1u.js | 3 + ...er_app_air-freight_page_actions_12f7kao.js | 3 + ...er_app_blog_[slug]_page_actions_0t.ya_n.js | 3 + ...al_server_app_blog_page_actions_0s90404.js | 3 + ...server_app_contact_page_actions_0~2h-ad.js | 3 + ..._app_cookie-policy_page_actions_05p.j9n.js | 3 + ...app_doormile-wings_page_actions_0t3ppuv.js | 3 + ...er_app_empowerment_page_actions_12iuwob.js | 3 + ...server_app_express_page_actions_0cygozq.js | 3 + ...r_app_how-it-works_page_actions_0jck7dp.js | 3 + ...rver_app_miletruth_page_actions_0vhj20z.js | 3 + ...nternal_server_app_page_actions_10si78q.js | 3 + ...app_privacy-policy_page_actions_0l1hb50.js | 3 + ...rver_app_solutions_page_actions_0mr.5pt.js | 3 + ...p_terms-of-service_page_actions_0g8oyx-.js | 3 + .../chunks/ssr/node_modules_0oplp32._.js | 3 + .../chunks/ssr/node_modules_gsap_0xy-.4m._.js | 3 + .../ssr/node_modules_next_dist_09jzzl8._.js | 3 + .../ssr/node_modules_next_dist_0_t6nhm._.js | 19 + .../ssr/node_modules_next_dist_0h9llsw._.js | 6 + .../ssr/node_modules_next_dist_11bk~bs._.js | 5 + .../ssr/node_modules_next_dist_11dij6w._.js | 6 + ...s_next_dist_client_components_06j6hww._.js | 33 + ...s_next_dist_client_components_0inhx6q._.js | 3 + ...nt_components_builtin_forbidden_0ghu-f7.js | 3 + ...components_builtin_global-error_0lgvd_..js | 3 + ...components_builtin_unauthorized_0cjv-23.js | 3 + ...st_esm_build_templates_app-page_01bbzeh.js | 4 + ...st_esm_build_templates_app-page_03-z2qq.js | 4 + ...st_esm_build_templates_app-page_05za6s2.js | 4 + ...st_esm_build_templates_app-page_086_46y.js | 4 + ...st_esm_build_templates_app-page_0a~j._2.js | 4 + ...st_esm_build_templates_app-page_0dl9rr-.js | 4 + ...st_esm_build_templates_app-page_0hb_~4l.js | 4 + ...st_esm_build_templates_app-page_0kg5hi0.js | 4 + ...st_esm_build_templates_app-page_0nqzqrg.js | 4 + ...st_esm_build_templates_app-page_0op~13w.js | 4 + ...st_esm_build_templates_app-page_0qo6y.1.js | 4 + ...st_esm_build_templates_app-page_0uwehq6.js | 4 + ...st_esm_build_templates_app-page_0yjki14.js | 4 + ...st_esm_build_templates_app-page_0~a.2oi.js | 4 + ...st_esm_build_templates_app-page_110uwud.js | 4 + ...st_esm_build_templates_app-page_12we091.js | 4 + ...st_esm_build_templates_app-page_13k2jw4.js | 4 + .../.next/server/chunks/ssr/src_030_reo._.js | 167 + .../.next/server/chunks/ssr/src_04lygsm._.js | 122 + .../.next/server/chunks/ssr/src_07wjkqu._.js | 2130 ++++++++++ .../.next/server/chunks/ssr/src_0n990ke._.js | 247 ++ .../.next/server/chunks/ssr/src_0nu2mva._.js | 491 +++ ...omponents_blog_BlogSearch_tsx_0yt9s_9._.js | 3 + .../ssr/src_components_sections_06v94o_._.js | 350 ++ .../ssr/src_components_sections_071-yiu._.js | 259 ++ .../ssr/src_components_sections_0b6smpj._.js | 1071 +++++ .../ssr/src_components_sections_0tf4kw_._.js | 1201 ++++++ .../ssr/src_components_sections_0vgb-z3._.js | 11 + .../ssr/src_components_sections_0xa9u10._.js | 313 ++ .../ssr/src_components_sections_133w8q1._.js | 11 + ...onents_sections_EVSection_tsx_13keyb.._.js | 850 ++++ ...sections_IndustryWorldMap_tsx_01vqqgp._.js | 3 + .../server/functions-config-manifest.json | 4 + .../.next/server/middleware-build-manifest.js | 22 + build/.next/server/middleware-manifest.json | 6 + build/.next/server/next-font-manifest.js | 1 + build/.next/server/next-font-manifest.json | 119 + build/.next/server/pages-manifest.json | 4 + build/.next/server/pages/404.html | 680 ++++ build/.next/server/pages/500.html | 1 + build/.next/server/prefetch-hints.json | 1 + .../.next/server/server-reference-manifest.js | 1 + .../server/server-reference-manifest.json | 108 + .../VkXP3ZSqJcnzcJArhJHd2/_buildManifest.js | 11 + .../_clientMiddlewareManifest.js | 1 + .../VkXP3ZSqJcnzcJArhJHd2/_ssgManifest.js | 1 + build/.next/static/chunks/0-kxqnmnjtk7l.js | 57 + build/.next/static/chunks/00fiud~fayo7s.css | 1 + build/.next/static/chunks/01xlw8hd842-c.js | 1 + build/.next/static/chunks/03~yq9q893hmn.js | 1 + build/.next/static/chunks/043-lr8ahr5l4.js | 311 ++ build/.next/static/chunks/04uib0xi8_zof.js | 243 ++ build/.next/static/chunks/04vqjcwjasc-3.js | 101 + build/.next/static/chunks/04xui0pxt.et1.js | 1 + build/.next/static/chunks/06~35roaehny..js | 1069 +++++ build/.next/static/chunks/07uz2g0_38qia.js | 4 + build/.next/static/chunks/0812b12auw1ih.js | 1 + build/.next/static/chunks/098a0lm-b~rn..js | 31 + build/.next/static/chunks/0_54tjq7o59~u.js | 114 + build/.next/static/chunks/0b561qo91.1jg.js | 1 + build/.next/static/chunks/0b~g01t48jn6q.js | 114 + build/.next/static/chunks/0cbrtnt1~j.f_.js | 517 +++ build/.next/static/chunks/0ckcqe5on274m.js | 1 + build/.next/static/chunks/0d09zs~9jbu5_.js | 208 + build/.next/static/chunks/0d1hvye~4r7kb.js | 243 ++ build/.next/static/chunks/0d3shmwh5_nmn.js | 1 + build/.next/static/chunks/0e.~6vil2~4uy.js | 758 ++++ build/.next/static/chunks/0ht_jt035hxfz.js | 14 + build/.next/static/chunks/0iz6a6sot7a-u.js | 9 + build/.next/static/chunks/0nunuemu9ietr.js | 265 ++ build/.next/static/chunks/0nzz4x75f.ixz.js | 1199 ++++++ build/.next/static/chunks/0o27ue53hohz_.js | 243 ++ build/.next/static/chunks/0t48hzs_6fshe.css | 1 + build/.next/static/chunks/0tldj~reb5~dn.js | 1 + build/.next/static/chunks/0v290txaarww5.css | 1 + build/.next/static/chunks/0vi1igu-zxb_c.js | 848 ++++ build/.next/static/chunks/0vp~o9giaq0t~.js | 1 + build/.next/static/chunks/0vzdvje64yndv.js | 1 + build/.next/static/chunks/0wybzq6mybxiw.js | 3 + build/.next/static/chunks/0yqyiard9rg2e.js | 1 + build/.next/static/chunks/0zozt9p9-3srt.css | 1 + build/.next/static/chunks/110q6k5sdl4es.js | 1 + build/.next/static/chunks/133p65rq~827a.js | 212 + build/.next/static/chunks/13ci0umlwh11-.css | 6 + build/.next/static/chunks/14-blkg1qzgwa.js | 702 ++++ build/.next/static/chunks/144so~-zgdm9_.css | 2 + build/.next/static/chunks/14_678uuyq.tf.js | 2 + build/.next/static/chunks/15p8tu-h65hwr.js | 38 + build/.next/static/chunks/16tb205t0~jhb.js | 1 + build/.next/static/chunks/17iyy9kp8dsf4.js | 348 ++ .../static/chunks/turbopack-11jn_eqn~72wc.js | 1 + .../0c795a286deabae8-s.p.14tvuu96~wkr0.woff2 | Bin 0 -> 34560 bytes .../0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2 | Bin 0 -> 22320 bytes .../1bffadaabf893a1e-s.16ipb6fqu393i.woff2 | Bin 0 -> 85272 bytes .../28868e710e86be81-s.0rx81dn62y51_.woff2 | Bin 0 -> 18924 bytes .../2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 | Bin 0 -> 10280 bytes .../2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 | Bin 0 -> 25844 bytes .../32687112bd2dd8db-s.0gspg~~t9nou8.woff2 | Bin 0 -> 6772 bytes .../5476f68d60460930-s.0wxq9webf.ew4.woff2 | Bin 0 -> 19044 bytes .../58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2 | Bin 0 -> 9360 bytes .../5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2 | Bin 0 -> 36980 bytes .../6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2 | Bin 0 -> 15240 bytes .../83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 | Bin 0 -> 48432 bytes .../9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 | Bin 0 -> 18744 bytes .../a342834df7752944-s.10ev4cu2inrn-.woff2 | Bin 0 -> 2592 bytes .../a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2 | Bin 0 -> 24576 bytes .../ab624315db63c58d-s.1487dfs7-.~d~.woff2 | Bin 0 -> 11252 bytes .../ad66f9afd8947f86-s.11u06r12fd6v_.woff2 | Bin 0 -> 11272 bytes .../bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2 | Bin 0 -> 8492 bytes .../c3cb240f9c892514-s.163v2i5cux7-c.woff2 | Bin 0 -> 18192 bytes .../d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2 | Bin 0 -> 14544 bytes .../e94b8ab81811a983-s.02fsf_1p_avhz.woff2 | Bin 0 -> 14652 bytes .../static/media/favicon.14w3bhkxgz946.ico | Bin 0 -> 3590 bytes .../.next/static/media/icon.14w3bhkxgz946.png | Bin 0 -> 3590 bytes .../static/media/layers-2x.0olxl6i2vnf_c.png | Bin 0 -> 1259 bytes .../static/media/layers.1220hx8ja1.sy.png | Bin 0 -> 696 bytes .../media/marker-icon.0i9~u_difxrfa.png | Bin 0 -> 1466 bytes 600 files changed, 82555 insertions(+), 1 deletion(-) create mode 100644 build/.next/BUILD_ID create mode 100644 build/.next/app-path-routes-manifest.json create mode 100644 build/.next/build-manifest.json create mode 100644 build/.next/package.json create mode 100644 build/.next/prerender-manifest.json create mode 100644 build/.next/required-server-files.json create mode 100644 build/.next/routes-manifest.json create mode 100644 build/.next/server/app-paths-manifest.json create mode 100644 build/.next/server/app/_global-error.html create mode 100644 build/.next/server/app/_global-error.meta create mode 100644 build/.next/server/app/_global-error.rsc create mode 100644 build/.next/server/app/_global-error.segments/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/_global-error.segments/_full.segment.rsc create mode 100644 build/.next/server/app/_global-error.segments/_head.segment.rsc create mode 100644 build/.next/server/app/_global-error.segments/_index.segment.rsc create mode 100644 build/.next/server/app/_global-error.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/_global-error/page.js create mode 100644 build/.next/server/app/_global-error/page.js.map create mode 100644 build/.next/server/app/_global-error/page.js.nft.json create mode 100644 build/.next/server/app/_global-error/page/app-paths-manifest.json create mode 100644 build/.next/server/app/_global-error/page/build-manifest.json create mode 100644 build/.next/server/app/_global-error/page/next-font-manifest.json create mode 100644 build/.next/server/app/_global-error/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/_global-error/page/server-reference-manifest.json create mode 100644 build/.next/server/app/_global-error/page_client-reference-manifest.js create mode 100644 build/.next/server/app/_not-found.html create mode 100644 build/.next/server/app/_not-found.meta create mode 100644 build/.next/server/app/_not-found.rsc create mode 100644 build/.next/server/app/_not-found.segments/_full.segment.rsc create mode 100644 build/.next/server/app/_not-found.segments/_head.segment.rsc create mode 100644 build/.next/server/app/_not-found.segments/_index.segment.rsc create mode 100644 build/.next/server/app/_not-found.segments/_not-found.segment.rsc create mode 100644 build/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/_not-found.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/_not-found/page.js create mode 100644 build/.next/server/app/_not-found/page.js.map create mode 100644 build/.next/server/app/_not-found/page.js.nft.json create mode 100644 build/.next/server/app/_not-found/page/app-paths-manifest.json create mode 100644 build/.next/server/app/_not-found/page/build-manifest.json create mode 100644 build/.next/server/app/_not-found/page/next-font-manifest.json create mode 100644 build/.next/server/app/_not-found/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/_not-found/page/server-reference-manifest.json create mode 100644 build/.next/server/app/_not-found/page_client-reference-manifest.js create mode 100644 build/.next/server/app/about-us.html create mode 100644 build/.next/server/app/about-us.meta create mode 100644 build/.next/server/app/about-us.rsc create mode 100644 build/.next/server/app/about-us.segments/_full.segment.rsc create mode 100644 build/.next/server/app/about-us.segments/_head.segment.rsc create mode 100644 build/.next/server/app/about-us.segments/_index.segment.rsc create mode 100644 build/.next/server/app/about-us.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/about-us.segments/about-us.segment.rsc create mode 100644 build/.next/server/app/about-us.segments/about-us/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/about-us/page.js create mode 100644 build/.next/server/app/about-us/page.js.map create mode 100644 build/.next/server/app/about-us/page.js.nft.json create mode 100644 build/.next/server/app/about-us/page/app-paths-manifest.json create mode 100644 build/.next/server/app/about-us/page/build-manifest.json create mode 100644 build/.next/server/app/about-us/page/next-font-manifest.json create mode 100644 build/.next/server/app/about-us/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/about-us/page/server-reference-manifest.json create mode 100644 build/.next/server/app/about-us/page_client-reference-manifest.js create mode 100644 build/.next/server/app/air-freight.html create mode 100644 build/.next/server/app/air-freight.meta create mode 100644 build/.next/server/app/air-freight.rsc create mode 100644 build/.next/server/app/air-freight.segments/_full.segment.rsc create mode 100644 build/.next/server/app/air-freight.segments/_head.segment.rsc create mode 100644 build/.next/server/app/air-freight.segments/_index.segment.rsc create mode 100644 build/.next/server/app/air-freight.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/air-freight.segments/air-freight.segment.rsc create mode 100644 build/.next/server/app/air-freight.segments/air-freight/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/air-freight/page.js create mode 100644 build/.next/server/app/air-freight/page.js.map create mode 100644 build/.next/server/app/air-freight/page.js.nft.json create mode 100644 build/.next/server/app/air-freight/page/app-paths-manifest.json create mode 100644 build/.next/server/app/air-freight/page/build-manifest.json create mode 100644 build/.next/server/app/air-freight/page/next-font-manifest.json create mode 100644 build/.next/server/app/air-freight/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/air-freight/page/server-reference-manifest.json create mode 100644 build/.next/server/app/air-freight/page_client-reference-manifest.js create mode 100644 build/.next/server/app/blog.html create mode 100644 build/.next/server/app/blog.meta create mode 100644 build/.next/server/app/blog.rsc create mode 100644 build/.next/server/app/blog.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog.segments/blog/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.html create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.meta create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.rsc create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/[slug]/page.js create mode 100644 build/.next/server/app/blog/[slug]/page.js.map create mode 100644 build/.next/server/app/blog/[slug]/page.js.nft.json create mode 100644 build/.next/server/app/blog/[slug]/page/app-paths-manifest.json create mode 100644 build/.next/server/app/blog/[slug]/page/build-manifest.json create mode 100644 build/.next/server/app/blog/[slug]/page/next-font-manifest.json create mode 100644 build/.next/server/app/blog/[slug]/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/blog/[slug]/page/server-reference-manifest.json create mode 100644 build/.next/server/app/blog/[slug]/page_client-reference-manifest.js create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.html create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.meta create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.rsc create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.html create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.meta create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.rsc create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.html create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.meta create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.rsc create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.html create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.meta create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.rsc create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.html create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.meta create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.rsc create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.html create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.meta create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.rsc create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/page.js create mode 100644 build/.next/server/app/blog/page.js.map create mode 100644 build/.next/server/app/blog/page.js.nft.json create mode 100644 build/.next/server/app/blog/page/app-paths-manifest.json create mode 100644 build/.next/server/app/blog/page/build-manifest.json create mode 100644 build/.next/server/app/blog/page/next-font-manifest.json create mode 100644 build/.next/server/app/blog/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/blog/page/server-reference-manifest.json create mode 100644 build/.next/server/app/blog/page_client-reference-manifest.js create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.html create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.meta create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.rsc create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.html create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.meta create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.rsc create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_full.segment.rsc create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_head.segment.rsc create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_index.segment.rsc create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog.segment.rsc create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog/$d$slug.segment.rsc create mode 100644 build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog/$d$slug/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/contact.html create mode 100644 build/.next/server/app/contact.meta create mode 100644 build/.next/server/app/contact.rsc create mode 100644 build/.next/server/app/contact.segments/_full.segment.rsc create mode 100644 build/.next/server/app/contact.segments/_head.segment.rsc create mode 100644 build/.next/server/app/contact.segments/_index.segment.rsc create mode 100644 build/.next/server/app/contact.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/contact.segments/contact.segment.rsc create mode 100644 build/.next/server/app/contact.segments/contact/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/contact/page.js create mode 100644 build/.next/server/app/contact/page.js.map create mode 100644 build/.next/server/app/contact/page.js.nft.json create mode 100644 build/.next/server/app/contact/page/app-paths-manifest.json create mode 100644 build/.next/server/app/contact/page/build-manifest.json create mode 100644 build/.next/server/app/contact/page/next-font-manifest.json create mode 100644 build/.next/server/app/contact/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/contact/page/server-reference-manifest.json create mode 100644 build/.next/server/app/contact/page_client-reference-manifest.js create mode 100644 build/.next/server/app/cookie-policy.html create mode 100644 build/.next/server/app/cookie-policy.meta create mode 100644 build/.next/server/app/cookie-policy.rsc create mode 100644 build/.next/server/app/cookie-policy.segments/_full.segment.rsc create mode 100644 build/.next/server/app/cookie-policy.segments/_head.segment.rsc create mode 100644 build/.next/server/app/cookie-policy.segments/_index.segment.rsc create mode 100644 build/.next/server/app/cookie-policy.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/cookie-policy.segments/cookie-policy.segment.rsc create mode 100644 build/.next/server/app/cookie-policy.segments/cookie-policy/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/cookie-policy/page.js create mode 100644 build/.next/server/app/cookie-policy/page.js.map create mode 100644 build/.next/server/app/cookie-policy/page.js.nft.json create mode 100644 build/.next/server/app/cookie-policy/page/app-paths-manifest.json create mode 100644 build/.next/server/app/cookie-policy/page/build-manifest.json create mode 100644 build/.next/server/app/cookie-policy/page/next-font-manifest.json create mode 100644 build/.next/server/app/cookie-policy/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/cookie-policy/page/server-reference-manifest.json create mode 100644 build/.next/server/app/cookie-policy/page_client-reference-manifest.js create mode 100644 build/.next/server/app/doormile-wings.html create mode 100644 build/.next/server/app/doormile-wings.meta create mode 100644 build/.next/server/app/doormile-wings.rsc create mode 100644 build/.next/server/app/doormile-wings.segments/_full.segment.rsc create mode 100644 build/.next/server/app/doormile-wings.segments/_head.segment.rsc create mode 100644 build/.next/server/app/doormile-wings.segments/_index.segment.rsc create mode 100644 build/.next/server/app/doormile-wings.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/doormile-wings.segments/doormile-wings.segment.rsc create mode 100644 build/.next/server/app/doormile-wings.segments/doormile-wings/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/doormile-wings/page.js create mode 100644 build/.next/server/app/doormile-wings/page.js.map create mode 100644 build/.next/server/app/doormile-wings/page.js.nft.json create mode 100644 build/.next/server/app/doormile-wings/page/app-paths-manifest.json create mode 100644 build/.next/server/app/doormile-wings/page/build-manifest.json create mode 100644 build/.next/server/app/doormile-wings/page/next-font-manifest.json create mode 100644 build/.next/server/app/doormile-wings/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/doormile-wings/page/server-reference-manifest.json create mode 100644 build/.next/server/app/doormile-wings/page_client-reference-manifest.js create mode 100644 build/.next/server/app/empowerment.html create mode 100644 build/.next/server/app/empowerment.meta create mode 100644 build/.next/server/app/empowerment.rsc create mode 100644 build/.next/server/app/empowerment.segments/_full.segment.rsc create mode 100644 build/.next/server/app/empowerment.segments/_head.segment.rsc create mode 100644 build/.next/server/app/empowerment.segments/_index.segment.rsc create mode 100644 build/.next/server/app/empowerment.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/empowerment.segments/empowerment.segment.rsc create mode 100644 build/.next/server/app/empowerment.segments/empowerment/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/empowerment/page.js create mode 100644 build/.next/server/app/empowerment/page.js.map create mode 100644 build/.next/server/app/empowerment/page.js.nft.json create mode 100644 build/.next/server/app/empowerment/page/app-paths-manifest.json create mode 100644 build/.next/server/app/empowerment/page/build-manifest.json create mode 100644 build/.next/server/app/empowerment/page/next-font-manifest.json create mode 100644 build/.next/server/app/empowerment/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/empowerment/page/server-reference-manifest.json create mode 100644 build/.next/server/app/empowerment/page_client-reference-manifest.js create mode 100644 build/.next/server/app/express.html create mode 100644 build/.next/server/app/express.meta create mode 100644 build/.next/server/app/express.rsc create mode 100644 build/.next/server/app/express.segments/_full.segment.rsc create mode 100644 build/.next/server/app/express.segments/_head.segment.rsc create mode 100644 build/.next/server/app/express.segments/_index.segment.rsc create mode 100644 build/.next/server/app/express.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/express.segments/express.segment.rsc create mode 100644 build/.next/server/app/express.segments/express/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/express/page.js create mode 100644 build/.next/server/app/express/page.js.map create mode 100644 build/.next/server/app/express/page.js.nft.json create mode 100644 build/.next/server/app/express/page/app-paths-manifest.json create mode 100644 build/.next/server/app/express/page/build-manifest.json create mode 100644 build/.next/server/app/express/page/next-font-manifest.json create mode 100644 build/.next/server/app/express/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/express/page/server-reference-manifest.json create mode 100644 build/.next/server/app/express/page_client-reference-manifest.js create mode 100644 build/.next/server/app/favicon.ico.body create mode 100644 build/.next/server/app/favicon.ico.meta create mode 100644 build/.next/server/app/favicon.ico/route.js create mode 100644 build/.next/server/app/favicon.ico/route.js.map create mode 100644 build/.next/server/app/favicon.ico/route.js.nft.json create mode 100644 build/.next/server/app/favicon.ico/route/app-paths-manifest.json create mode 100644 build/.next/server/app/favicon.ico/route/build-manifest.json create mode 100644 build/.next/server/app/how-it-works.html create mode 100644 build/.next/server/app/how-it-works.meta create mode 100644 build/.next/server/app/how-it-works.rsc create mode 100644 build/.next/server/app/how-it-works.segments/_full.segment.rsc create mode 100644 build/.next/server/app/how-it-works.segments/_head.segment.rsc create mode 100644 build/.next/server/app/how-it-works.segments/_index.segment.rsc create mode 100644 build/.next/server/app/how-it-works.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/how-it-works.segments/how-it-works.segment.rsc create mode 100644 build/.next/server/app/how-it-works.segments/how-it-works/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/how-it-works/page.js create mode 100644 build/.next/server/app/how-it-works/page.js.map create mode 100644 build/.next/server/app/how-it-works/page.js.nft.json create mode 100644 build/.next/server/app/how-it-works/page/app-paths-manifest.json create mode 100644 build/.next/server/app/how-it-works/page/build-manifest.json create mode 100644 build/.next/server/app/how-it-works/page/next-font-manifest.json create mode 100644 build/.next/server/app/how-it-works/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/how-it-works/page/server-reference-manifest.json create mode 100644 build/.next/server/app/how-it-works/page_client-reference-manifest.js create mode 100644 build/.next/server/app/icon.png.body create mode 100644 build/.next/server/app/icon.png.meta create mode 100644 build/.next/server/app/icon.png/route.js create mode 100644 build/.next/server/app/icon.png/route.js.map create mode 100644 build/.next/server/app/icon.png/route.js.nft.json create mode 100644 build/.next/server/app/icon.png/route/app-paths-manifest.json create mode 100644 build/.next/server/app/icon.png/route/build-manifest.json create mode 100644 build/.next/server/app/index.html create mode 100644 build/.next/server/app/index.meta create mode 100644 build/.next/server/app/index.rsc create mode 100644 build/.next/server/app/index.segments/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/index.segments/_full.segment.rsc create mode 100644 build/.next/server/app/index.segments/_head.segment.rsc create mode 100644 build/.next/server/app/index.segments/_index.segment.rsc create mode 100644 build/.next/server/app/index.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/miletruth.html create mode 100644 build/.next/server/app/miletruth.meta create mode 100644 build/.next/server/app/miletruth.rsc create mode 100644 build/.next/server/app/miletruth.segments/_full.segment.rsc create mode 100644 build/.next/server/app/miletruth.segments/_head.segment.rsc create mode 100644 build/.next/server/app/miletruth.segments/_index.segment.rsc create mode 100644 build/.next/server/app/miletruth.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/miletruth.segments/miletruth.segment.rsc create mode 100644 build/.next/server/app/miletruth.segments/miletruth/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/miletruth/page.js create mode 100644 build/.next/server/app/miletruth/page.js.map create mode 100644 build/.next/server/app/miletruth/page.js.nft.json create mode 100644 build/.next/server/app/miletruth/page/app-paths-manifest.json create mode 100644 build/.next/server/app/miletruth/page/build-manifest.json create mode 100644 build/.next/server/app/miletruth/page/next-font-manifest.json create mode 100644 build/.next/server/app/miletruth/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/miletruth/page/server-reference-manifest.json create mode 100644 build/.next/server/app/miletruth/page_client-reference-manifest.js create mode 100644 build/.next/server/app/page.js create mode 100644 build/.next/server/app/page.js.map create mode 100644 build/.next/server/app/page.js.nft.json create mode 100644 build/.next/server/app/page/app-paths-manifest.json create mode 100644 build/.next/server/app/page/build-manifest.json create mode 100644 build/.next/server/app/page/next-font-manifest.json create mode 100644 build/.next/server/app/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/page/server-reference-manifest.json create mode 100644 build/.next/server/app/page_client-reference-manifest.js create mode 100644 build/.next/server/app/privacy-policy.html create mode 100644 build/.next/server/app/privacy-policy.meta create mode 100644 build/.next/server/app/privacy-policy.rsc create mode 100644 build/.next/server/app/privacy-policy.segments/_full.segment.rsc create mode 100644 build/.next/server/app/privacy-policy.segments/_head.segment.rsc create mode 100644 build/.next/server/app/privacy-policy.segments/_index.segment.rsc create mode 100644 build/.next/server/app/privacy-policy.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/privacy-policy.segments/privacy-policy.segment.rsc create mode 100644 build/.next/server/app/privacy-policy.segments/privacy-policy/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/privacy-policy/page.js create mode 100644 build/.next/server/app/privacy-policy/page.js.map create mode 100644 build/.next/server/app/privacy-policy/page.js.nft.json create mode 100644 build/.next/server/app/privacy-policy/page/app-paths-manifest.json create mode 100644 build/.next/server/app/privacy-policy/page/build-manifest.json create mode 100644 build/.next/server/app/privacy-policy/page/next-font-manifest.json create mode 100644 build/.next/server/app/privacy-policy/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/privacy-policy/page/server-reference-manifest.json create mode 100644 build/.next/server/app/privacy-policy/page_client-reference-manifest.js create mode 100644 build/.next/server/app/sitemap.xml.body create mode 100644 build/.next/server/app/sitemap.xml.meta create mode 100644 build/.next/server/app/sitemap.xml/route.js create mode 100644 build/.next/server/app/sitemap.xml/route.js.map create mode 100644 build/.next/server/app/sitemap.xml/route.js.nft.json create mode 100644 build/.next/server/app/sitemap.xml/route/app-paths-manifest.json create mode 100644 build/.next/server/app/sitemap.xml/route/build-manifest.json create mode 100644 build/.next/server/app/sitemap.xml/route/server-reference-manifest.json create mode 100644 build/.next/server/app/sitemap.xml/route_client-reference-manifest.js create mode 100644 build/.next/server/app/solutions.html create mode 100644 build/.next/server/app/solutions.meta create mode 100644 build/.next/server/app/solutions.rsc create mode 100644 build/.next/server/app/solutions.segments/_full.segment.rsc create mode 100644 build/.next/server/app/solutions.segments/_head.segment.rsc create mode 100644 build/.next/server/app/solutions.segments/_index.segment.rsc create mode 100644 build/.next/server/app/solutions.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/solutions.segments/solutions.segment.rsc create mode 100644 build/.next/server/app/solutions.segments/solutions/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/solutions/page.js create mode 100644 build/.next/server/app/solutions/page.js.map create mode 100644 build/.next/server/app/solutions/page.js.nft.json create mode 100644 build/.next/server/app/solutions/page/app-paths-manifest.json create mode 100644 build/.next/server/app/solutions/page/build-manifest.json create mode 100644 build/.next/server/app/solutions/page/next-font-manifest.json create mode 100644 build/.next/server/app/solutions/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/solutions/page/server-reference-manifest.json create mode 100644 build/.next/server/app/solutions/page_client-reference-manifest.js create mode 100644 build/.next/server/app/terms-of-service.html create mode 100644 build/.next/server/app/terms-of-service.meta create mode 100644 build/.next/server/app/terms-of-service.rsc create mode 100644 build/.next/server/app/terms-of-service.segments/_full.segment.rsc create mode 100644 build/.next/server/app/terms-of-service.segments/_head.segment.rsc create mode 100644 build/.next/server/app/terms-of-service.segments/_index.segment.rsc create mode 100644 build/.next/server/app/terms-of-service.segments/_tree.segment.rsc create mode 100644 build/.next/server/app/terms-of-service.segments/terms-of-service.segment.rsc create mode 100644 build/.next/server/app/terms-of-service.segments/terms-of-service/__PAGE__.segment.rsc create mode 100644 build/.next/server/app/terms-of-service/page.js create mode 100644 build/.next/server/app/terms-of-service/page.js.map create mode 100644 build/.next/server/app/terms-of-service/page.js.nft.json create mode 100644 build/.next/server/app/terms-of-service/page/app-paths-manifest.json create mode 100644 build/.next/server/app/terms-of-service/page/build-manifest.json create mode 100644 build/.next/server/app/terms-of-service/page/next-font-manifest.json create mode 100644 build/.next/server/app/terms-of-service/page/react-loadable-manifest.json create mode 100644 build/.next/server/app/terms-of-service/page/server-reference-manifest.json create mode 100644 build/.next/server/app/terms-of-service/page_client-reference-manifest.js create mode 100644 build/.next/server/chunks/[externals]_next_dist_0arv.vj._.js create mode 100644 build/.next/server/chunks/[root-of-the-server]__009pdeo._.js create mode 100644 build/.next/server/chunks/[root-of-the-server]__0j8-xkl._.js create mode 100644 build/.next/server/chunks/[root-of-the-server]__0nwnmaq._.js create mode 100644 build/.next/server/chunks/[turbopack]_runtime.js create mode 100644 build/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js create mode 100644 build/.next/server/chunks/_next-internal_server_app_icon_png_route_actions_12.gv.r.js create mode 100644 build/.next/server/chunks/_next-internal_server_app_sitemap_xml_route_actions_036gxb_.js create mode 100644 build/.next/server/chunks/node_modules_next_dist_1343e2k._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__055c-aq._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__07qac4.._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__07uj_3p._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0800b30._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__08t.da-._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0ajd8y_._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0bmtoj~._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0dzpf04._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0eood4z._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0gpipiq._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0j0clw_._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0oqdvq1._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0ujg1rs._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0vr5sgo._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0vver6v._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0~7vw31._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__0~j.xbf._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__11.jnw6._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__1103g-m._.js create mode 100644 build/.next/server/chunks/ssr/[root-of-the-server]__12mff8~._.js create mode 100644 build/.next/server/chunks/ssr/[turbopack]_runtime.js create mode 100644 build/.next/server/chunks/ssr/_01obfw9._.js create mode 100644 build/.next/server/chunks/ssr/_0p0sfo8._.js create mode 100644 build/.next/server/chunks/ssr/_0sw0r2k._.js create mode 100644 build/.next/server/chunks/ssr/_0zmlo4s._.js create mode 100644 build/.next/server/chunks/ssr/_12x1.3y._.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0nwttba.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_about-us_page_actions_10el~1u.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_air-freight_page_actions_12f7kao.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_blog_[slug]_page_actions_0t.ya_n.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_blog_page_actions_0s90404.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_contact_page_actions_0~2h-ad.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_cookie-policy_page_actions_05p.j9n.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_doormile-wings_page_actions_0t3ppuv.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_empowerment_page_actions_12iuwob.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_express_page_actions_0cygozq.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_how-it-works_page_actions_0jck7dp.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_miletruth_page_actions_0vhj20z.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_page_actions_10si78q.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_privacy-policy_page_actions_0l1hb50.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_solutions_page_actions_0mr.5pt.js create mode 100644 build/.next/server/chunks/ssr/_next-internal_server_app_terms-of-service_page_actions_0g8oyx-.js create mode 100644 build/.next/server/chunks/ssr/node_modules_0oplp32._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_gsap_0xy-.4m._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_09jzzl8._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_11bk~bs._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_11dij6w._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01bbzeh.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03-z2qq.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_05za6s2.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_086_46y.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a~j._2.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dl9rr-.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hb_~4l.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kg5hi0.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nqzqrg.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0op~13w.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qo6y.1.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uwehq6.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0yjki14.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0~a.2oi.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_110uwud.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12we091.js create mode 100644 build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13k2jw4.js create mode 100644 build/.next/server/chunks/ssr/src_030_reo._.js create mode 100644 build/.next/server/chunks/ssr/src_04lygsm._.js create mode 100644 build/.next/server/chunks/ssr/src_07wjkqu._.js create mode 100644 build/.next/server/chunks/ssr/src_0n990ke._.js create mode 100644 build/.next/server/chunks/ssr/src_0nu2mva._.js create mode 100644 build/.next/server/chunks/ssr/src_components_blog_BlogSearch_tsx_0yt9s_9._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_06v94o_._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_071-yiu._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_0b6smpj._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_0tf4kw_._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_0vgb-z3._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_0xa9u10._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_133w8q1._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js create mode 100644 build/.next/server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js create mode 100644 build/.next/server/functions-config-manifest.json create mode 100644 build/.next/server/middleware-build-manifest.js create mode 100644 build/.next/server/middleware-manifest.json create mode 100644 build/.next/server/next-font-manifest.js create mode 100644 build/.next/server/next-font-manifest.json create mode 100644 build/.next/server/pages-manifest.json create mode 100644 build/.next/server/pages/404.html create mode 100644 build/.next/server/pages/500.html create mode 100644 build/.next/server/prefetch-hints.json create mode 100644 build/.next/server/server-reference-manifest.js create mode 100644 build/.next/server/server-reference-manifest.json create mode 100644 build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_buildManifest.js create mode 100644 build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_clientMiddlewareManifest.js create mode 100644 build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_ssgManifest.js create mode 100644 build/.next/static/chunks/0-kxqnmnjtk7l.js create mode 100644 build/.next/static/chunks/00fiud~fayo7s.css create mode 100644 build/.next/static/chunks/01xlw8hd842-c.js create mode 100644 build/.next/static/chunks/03~yq9q893hmn.js create mode 100644 build/.next/static/chunks/043-lr8ahr5l4.js create mode 100644 build/.next/static/chunks/04uib0xi8_zof.js create mode 100644 build/.next/static/chunks/04vqjcwjasc-3.js create mode 100644 build/.next/static/chunks/04xui0pxt.et1.js create mode 100644 build/.next/static/chunks/06~35roaehny..js create mode 100644 build/.next/static/chunks/07uz2g0_38qia.js create mode 100644 build/.next/static/chunks/0812b12auw1ih.js create mode 100644 build/.next/static/chunks/098a0lm-b~rn..js create mode 100644 build/.next/static/chunks/0_54tjq7o59~u.js create mode 100644 build/.next/static/chunks/0b561qo91.1jg.js create mode 100644 build/.next/static/chunks/0b~g01t48jn6q.js create mode 100644 build/.next/static/chunks/0cbrtnt1~j.f_.js create mode 100644 build/.next/static/chunks/0ckcqe5on274m.js create mode 100644 build/.next/static/chunks/0d09zs~9jbu5_.js create mode 100644 build/.next/static/chunks/0d1hvye~4r7kb.js create mode 100644 build/.next/static/chunks/0d3shmwh5_nmn.js create mode 100644 build/.next/static/chunks/0e.~6vil2~4uy.js create mode 100644 build/.next/static/chunks/0ht_jt035hxfz.js create mode 100644 build/.next/static/chunks/0iz6a6sot7a-u.js create mode 100644 build/.next/static/chunks/0nunuemu9ietr.js create mode 100644 build/.next/static/chunks/0nzz4x75f.ixz.js create mode 100644 build/.next/static/chunks/0o27ue53hohz_.js create mode 100644 build/.next/static/chunks/0t48hzs_6fshe.css create mode 100644 build/.next/static/chunks/0tldj~reb5~dn.js create mode 100644 build/.next/static/chunks/0v290txaarww5.css create mode 100644 build/.next/static/chunks/0vi1igu-zxb_c.js create mode 100644 build/.next/static/chunks/0vp~o9giaq0t~.js create mode 100644 build/.next/static/chunks/0vzdvje64yndv.js create mode 100644 build/.next/static/chunks/0wybzq6mybxiw.js create mode 100644 build/.next/static/chunks/0yqyiard9rg2e.js create mode 100644 build/.next/static/chunks/0zozt9p9-3srt.css create mode 100644 build/.next/static/chunks/110q6k5sdl4es.js create mode 100644 build/.next/static/chunks/133p65rq~827a.js create mode 100644 build/.next/static/chunks/13ci0umlwh11-.css create mode 100644 build/.next/static/chunks/14-blkg1qzgwa.js create mode 100644 build/.next/static/chunks/144so~-zgdm9_.css create mode 100644 build/.next/static/chunks/14_678uuyq.tf.js create mode 100644 build/.next/static/chunks/15p8tu-h65hwr.js create mode 100644 build/.next/static/chunks/16tb205t0~jhb.js create mode 100644 build/.next/static/chunks/17iyy9kp8dsf4.js create mode 100644 build/.next/static/chunks/turbopack-11jn_eqn~72wc.js create mode 100644 build/.next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2 create mode 100644 build/.next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2 create mode 100644 build/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 create mode 100644 build/.next/static/media/28868e710e86be81-s.0rx81dn62y51_.woff2 create mode 100644 build/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 create mode 100644 build/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 create mode 100644 build/.next/static/media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2 create mode 100644 build/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 create mode 100644 build/.next/static/media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2 create mode 100644 build/.next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2 create mode 100644 build/.next/static/media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2 create mode 100644 build/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 create mode 100644 build/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 create mode 100644 build/.next/static/media/a342834df7752944-s.10ev4cu2inrn-.woff2 create mode 100644 build/.next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2 create mode 100644 build/.next/static/media/ab624315db63c58d-s.1487dfs7-.~d~.woff2 create mode 100644 build/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 create mode 100644 build/.next/static/media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2 create mode 100644 build/.next/static/media/c3cb240f9c892514-s.163v2i5cux7-c.woff2 create mode 100644 build/.next/static/media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2 create mode 100644 build/.next/static/media/e94b8ab81811a983-s.02fsf_1p_avhz.woff2 create mode 100644 build/.next/static/media/favicon.14w3bhkxgz946.ico create mode 100644 build/.next/static/media/icon.14w3bhkxgz946.png create mode 100644 build/.next/static/media/layers-2x.0olxl6i2vnf_c.png create mode 100644 build/.next/static/media/layers.1220hx8ja1.sy.png create mode 100644 build/.next/static/media/marker-icon.0i9~u_difxrfa.png diff --git a/.gitignore b/.gitignore index c1948cc..4f7e6cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -.next/ +/.next/ /node_modules/ .DS_Store *.log diff --git a/build/.next/BUILD_ID b/build/.next/BUILD_ID new file mode 100644 index 0000000..b2e26e8 --- /dev/null +++ b/build/.next/BUILD_ID @@ -0,0 +1 @@ +VkXP3ZSqJcnzcJArhJHd2 \ No newline at end of file diff --git a/build/.next/app-path-routes-manifest.json b/build/.next/app-path-routes-manifest.json new file mode 100644 index 0000000..4914ed3 --- /dev/null +++ b/build/.next/app-path-routes-manifest.json @@ -0,0 +1,22 @@ +{ + "/_global-error/page": "/_global-error", + "/_not-found/page": "/_not-found", + "/about-us/page": "/about-us", + "/air-freight/page": "/air-freight", + "/blog/[slug]/page": "/blog/[slug]", + "/blog/page": "/blog", + "/contact/page": "/contact", + "/cookie-policy/page": "/cookie-policy", + "/doormile-wings/page": "/doormile-wings", + "/empowerment/page": "/empowerment", + "/express/page": "/express", + "/favicon.ico/route": "/favicon.ico", + "/how-it-works/page": "/how-it-works", + "/icon.png/route": "/icon.png", + "/miletruth/page": "/miletruth", + "/page": "/", + "/privacy-policy/page": "/privacy-policy", + "/sitemap.xml/route": "/sitemap.xml", + "/solutions/page": "/solutions", + "/terms-of-service/page": "/terms-of-service" +} \ No newline at end of file diff --git a/build/.next/build-manifest.json b/build/.next/build-manifest.json new file mode 100644 index 0000000..4fc04ac --- /dev/null +++ b/build/.next/build-manifest.json @@ -0,0 +1,22 @@ +{ + "pages": { + "/_app": [] + }, + "devFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [ + "static/VkXP3ZSqJcnzcJArhJHd2/_buildManifest.js", + "static/VkXP3ZSqJcnzcJArhJHd2/_ssgManifest.js", + "static/VkXP3ZSqJcnzcJArhJHd2/_clientMiddlewareManifest.js" + ], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ] +} \ No newline at end of file diff --git a/build/.next/package.json b/build/.next/package.json new file mode 100644 index 0000000..7156107 --- /dev/null +++ b/build/.next/package.json @@ -0,0 +1 @@ +{"type": "commonjs"} \ No newline at end of file diff --git a/build/.next/prerender-manifest.json b/build/.next/prerender-manifest.json new file mode 100644 index 0000000..9320f3e --- /dev/null +++ b/build/.next/prerender-manifest.json @@ -0,0 +1,729 @@ +{ + "version": 4, + "routes": { + "/": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/", + "dataRoute": "/index.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/_global-error": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/_global-error", + "dataRoute": "/_global-error.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/_not-found": { + "initialStatus": 404, + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/_not-found", + "dataRoute": "/_not-found.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/about-us": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/about-us", + "dataRoute": "/about-us.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/air-freight": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/air-freight", + "dataRoute": "/air-freight.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog", + "dataRoute": "/blog.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/42-less-distance-insights-from-our-hyderabad-hub": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/42-less-distance-insights-from-our-hyderabad-hub.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/battery-simulation-the-secret-to-ev-route-pre-validation": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/battery-simulation-the-secret-to-ev-route-pre-validation.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/building-a-greener-city-the-future-of-urban-logistics": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/building-a-greener-city-the-future-of-urban-logistics.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/fleet-reduction-without-compromising-delivery-volume": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/fleet-reduction-without-compromising-delivery-volume.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/how-ai-is-transforming-last-mile-ev-delivery": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/how-ai-is-transforming-last-mile-ev-delivery.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/how-doormile-maintains-99-9-sla-compliance-at-scale": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/miletruth-ai-10-stages-to-smarter-dispatch": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/miletruth-ai-10-stages-to-smarter-dispatch.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/blog/why-mathematical-precision-beats-heuristics-in-routing": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/blog/[slug]", + "dataRoute": "/blog/why-mathematical-precision-beats-heuristics-in-routing.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/contact": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/contact", + "dataRoute": "/contact.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/cookie-policy": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/cookie-policy", + "dataRoute": "/cookie-policy.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/doormile-wings": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/doormile-wings", + "dataRoute": "/doormile-wings.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/empowerment": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/empowerment", + "dataRoute": "/empowerment.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/express": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/express", + "dataRoute": "/express.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/favicon.ico": { + "initialHeaders": { + "cache-control": "public, max-age=0, must-revalidate", + "content-type": "image/x-icon", + "x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico" + }, + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/favicon.ico", + "dataRoute": null, + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/how-it-works": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/how-it-works", + "dataRoute": "/how-it-works.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/icon.png": { + "initialHeaders": { + "cache-control": "public, max-age=0, must-revalidate", + "content-type": "image/png", + "x-next-cache-tags": "_N_T_/layout,_N_T_/icon.png/layout,_N_T_/icon.png/route,_N_T_/icon.png" + }, + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/icon.png", + "dataRoute": null, + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/miletruth": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/miletruth", + "dataRoute": "/miletruth.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/privacy-policy": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/privacy-policy", + "dataRoute": "/privacy-policy.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/sitemap.xml": { + "initialHeaders": { + "cache-control": "public, max-age=0, must-revalidate", + "content-type": "application/xml", + "x-next-cache-tags": "_N_T_/layout,_N_T_/sitemap.xml/layout,_N_T_/sitemap.xml/route,_N_T_/sitemap.xml" + }, + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/sitemap.xml", + "dataRoute": null, + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/solutions": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/solutions", + "dataRoute": "/solutions.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/terms-of-service": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/terms-of-service", + "dataRoute": "/terms-of-service.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + } + }, + "dynamicRoutes": { + "/blog/[slug]": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "routeRegex": "^/blog/([^/]+?)(?:/)?$", + "dataRoute": "/blog/[slug].rsc", + "fallback": null, + "fallbackRootParams": [], + "fallbackRouteParams": [], + "dataRouteRegex": "^/blog/([^/]+?)\\.rsc$", + "prefetchDataRoute": null, + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + } + }, + "notFoundRoutes": [], + "preview": { + "previewModeId": "3a49da84abb8616c4e75c8072d5997ba", + "previewModeSigningKey": "4dce2ba86420e19c2ff74c07c51b7ce2daa6e062e811b93260c7c61d35959a5d", + "previewModeEncryptionKey": "6ea5f9ae896fc62859e298235724e27ed001a50ca6e57a76e5f8d4465a23def4" + } +} \ No newline at end of file diff --git a/build/.next/required-server-files.json b/build/.next/required-server-files.json new file mode 100644 index 0000000..b12d627 --- /dev/null +++ b/build/.next/required-server-files.json @@ -0,0 +1,341 @@ +{ + "version": 1, + "config": { + "env": {}, + "webpack": null, + "typescript": { + "ignoreBuildErrors": false + }, + "typedRoutes": false, + "distDir": ".next", + "cleanDistDir": true, + "assetPrefix": "", + "cacheMaxMemorySize": 52428800, + "configOrigin": "next.config.ts", + "useFileSystemPublicRoutes": true, + "generateEtags": true, + "pageExtensions": [ + "tsx", + "ts", + "jsx", + "js" + ], + "poweredByHeader": true, + "compress": true, + "images": { + "deviceSizes": [ + 640, + 750, + 828, + 1080, + 1200, + 1920, + 2048, + 3840 + ], + "imageSizes": [ + 32, + 48, + 64, + 96, + 128, + 256, + 384 + ], + "path": "/_next/image", + "loader": "default", + "loaderFile": "", + "domains": [], + "disableStaticImages": false, + "minimumCacheTTL": 14400, + "formats": [ + "image/avif", + "image/webp" + ], + "maximumRedirects": 3, + "maximumResponseBody": 50000000, + "dangerouslyAllowLocalIP": false, + "dangerouslyAllowSVG": false, + "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", + "contentDispositionType": "attachment", + "localPatterns": [ + { + "pathname": "**", + "search": "" + } + ], + "remotePatterns": [], + "qualities": [ + 75 + ], + "unoptimized": false, + "customCacheHandler": false + }, + "devIndicators": { + "position": "bottom-left" + }, + "onDemandEntries": { + "maxInactiveAge": 60000, + "pagesBufferLength": 5 + }, + "basePath": "", + "sassOptions": {}, + "trailingSlash": false, + "i18n": null, + "productionBrowserSourceMaps": false, + "excludeDefaultMomentLocales": true, + "reactProductionProfiling": false, + "reactStrictMode": false, + "reactMaxHeadersLength": 6000, + "httpAgentOptions": { + "keepAlive": true + }, + "logging": { + "serverFunctions": true, + "browserToTerminal": "warn" + }, + "compiler": {}, + "expireTime": 31536000, + "staticPageGenerationTimeout": 60, + "output": "standalone", + "modularizeImports": { + "@mui/icons-material": { + "transform": "@mui/icons-material/{{member}}" + }, + "lodash": { + "transform": "lodash/{{member}}" + } + }, + "outputFileTracingRoot": "/Users/apple/DM/Doormile/doormile-next", + "cacheComponents": false, + "cacheLife": { + "default": { + "stale": 300, + "revalidate": 900, + "expire": 4294967294 + }, + "seconds": { + "stale": 30, + "revalidate": 1, + "expire": 60 + }, + "minutes": { + "stale": 300, + "revalidate": 60, + "expire": 3600 + }, + "hours": { + "stale": 300, + "revalidate": 3600, + "expire": 86400 + }, + "days": { + "stale": 300, + "revalidate": 86400, + "expire": 604800 + }, + "weeks": { + "stale": 300, + "revalidate": 604800, + "expire": 2592000 + }, + "max": { + "stale": 300, + "revalidate": 2592000, + "expire": 31536000 + } + }, + "cacheHandlers": {}, + "experimental": { + "appNewScrollHandler": false, + "useSkewCookie": false, + "cssChunking": true, + "multiZoneDraftMode": false, + "appNavFailHandling": false, + "prerenderEarlyExit": true, + "serverMinification": true, + "linkNoTouchStart": false, + "caseSensitiveRoutes": false, + "cachedNavigations": false, + "partialFallbacks": false, + "dynamicOnHover": false, + "varyParams": false, + "prefetchInlining": false, + "preloadEntriesOnStart": true, + "clientRouterFilter": true, + "clientRouterFilterRedirects": false, + "fetchCacheKeyPrefix": "", + "proxyPrefetch": "flexible", + "optimisticClientCache": true, + "manualClientBasePath": false, + "cpus": 7, + "memoryBasedWorkersCount": false, + "imgOptConcurrency": null, + "imgOptTimeoutInSeconds": 7, + "imgOptMaxInputPixels": 268402689, + "imgOptSequentialRead": null, + "imgOptSkipMetadata": null, + "isrFlushToDisk": true, + "workerThreads": false, + "optimizeCss": false, + "nextScriptWorkers": false, + "scrollRestoration": false, + "externalDir": false, + "disableOptimizedLoading": false, + "gzipSize": true, + "craCompat": false, + "esmExternals": true, + "fullySpecified": false, + "swcTraceProfiling": false, + "forceSwcTransforms": false, + "largePageDataBytes": 128000, + "typedEnv": false, + "parallelServerCompiles": false, + "parallelServerBuildTraces": false, + "ppr": false, + "authInterrupts": false, + "webpackMemoryOptimizations": false, + "optimizeServerReact": true, + "strictRouteTypes": false, + "viewTransition": false, + "removeUncaughtErrorAndRejectionListeners": false, + "validateRSCRequestHeaders": false, + "staleTimes": { + "dynamic": 0, + "static": 300 + }, + "reactDebugChannel": true, + "serverComponentsHmrCache": true, + "staticGenerationMaxConcurrency": 8, + "staticGenerationMinPagesPerWorker": 25, + "transitionIndicator": false, + "gestureTransition": false, + "inlineCss": false, + "useCache": false, + "globalNotFound": false, + "browserDebugInfoInTerminal": "warn", + "lockDistDir": true, + "proxyClientMaxBodySize": 10485760, + "hideLogsAfterAbort": false, + "mcpServer": true, + "turbopackFileSystemCacheForDev": true, + "turbopackFileSystemCacheForBuild": false, + "turbopackInferModuleSideEffects": true, + "turbopackPluginRuntimeStrategy": "childProcesses", + "optimizePackageImports": [ + "lucide-react", + "date-fns", + "lodash-es", + "ramda", + "antd", + "react-bootstrap", + "ahooks", + "@ant-design/icons", + "@headlessui/react", + "@headlessui-float/react", + "@heroicons/react/20/solid", + "@heroicons/react/24/solid", + "@heroicons/react/24/outline", + "@visx/visx", + "@tremor/react", + "rxjs", + "@mui/material", + "@mui/icons-material", + "recharts", + "react-use", + "effect", + "@effect/schema", + "@effect/platform", + "@effect/platform-node", + "@effect/platform-browser", + "@effect/platform-bun", + "@effect/sql", + "@effect/sql-mssql", + "@effect/sql-mysql2", + "@effect/sql-pg", + "@effect/sql-sqlite-node", + "@effect/sql-sqlite-bun", + "@effect/sql-sqlite-wasm", + "@effect/sql-sqlite-react-native", + "@effect/rpc", + "@effect/rpc-http", + "@effect/typeclass", + "@effect/experimental", + "@effect/opentelemetry", + "@material-ui/core", + "@material-ui/icons", + "@tabler/icons-react", + "mui-core", + "react-icons/ai", + "react-icons/bi", + "react-icons/bs", + "react-icons/cg", + "react-icons/ci", + "react-icons/di", + "react-icons/fa", + "react-icons/fa6", + "react-icons/fc", + "react-icons/fi", + "react-icons/gi", + "react-icons/go", + "react-icons/gr", + "react-icons/hi", + "react-icons/hi2", + "react-icons/im", + "react-icons/io", + "react-icons/io5", + "react-icons/lia", + "react-icons/lib", + "react-icons/lu", + "react-icons/md", + "react-icons/pi", + "react-icons/ri", + "react-icons/rx", + "react-icons/si", + "react-icons/sl", + "react-icons/tb", + "react-icons/tfi", + "react-icons/ti", + "react-icons/vsc", + "react-icons/wi" + ], + "trustHostHeader": false, + "isExperimentalCompile": false + }, + "htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight", + "bundlePagesRouterDependencies": false, + "configFileName": "next.config.ts", + "turbopack": { + "root": "/Users/apple/DM/Doormile/doormile-next" + }, + "distDirRoot": ".next", + "_originalRedirects": [ + { + "source": "/air-freight", + "destination": "/doormile-wings", + "permanent": true + } + ] + }, + "appDir": "/Users/apple/DM/Doormile/doormile-next", + "relativeAppDir": "", + "files": [ + ".next/routes-manifest.json", + ".next/server/pages-manifest.json", + ".next/build-manifest.json", + ".next/prerender-manifest.json", + ".next/server/functions-config-manifest.json", + ".next/server/middleware-manifest.json", + ".next/server/middleware-build-manifest.js", + ".next/server/app-paths-manifest.json", + ".next/app-path-routes-manifest.json", + ".next/server/server-reference-manifest.js", + ".next/server/server-reference-manifest.json", + ".next/server/prefetch-hints.json", + ".next/BUILD_ID", + ".next/server/next-font-manifest.js", + ".next/server/next-font-manifest.json", + ".next/required-server-files.json" + ], + "ignore": [] +} \ No newline at end of file diff --git a/build/.next/routes-manifest.json b/build/.next/routes-manifest.json new file mode 100644 index 0000000..a3d8a27 --- /dev/null +++ b/build/.next/routes-manifest.json @@ -0,0 +1,174 @@ +{ + "version": 3, + "pages404": true, + "appType": "app", + "caseSensitive": false, + "basePath": "", + "redirects": [ + { + "source": "/:path+/", + "destination": "/:path+", + "internal": true, + "priority": true, + "statusCode": 308, + "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" + }, + { + "source": "/air-freight", + "destination": "/doormile-wings", + "statusCode": 308, + "regex": "^(?!/_next)/air-freight(?:/)?$" + } + ], + "headers": [], + "onMatchHeaders": [], + "rewrites": { + "beforeFiles": [], + "afterFiles": [], + "fallback": [] + }, + "dynamicRoutes": [ + { + "page": "/blog/[slug]", + "regex": "^/blog/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPslug": "nxtPslug" + }, + "namedRegex": "^/blog/(?[^/]+?)(?:/)?$" + } + ], + "staticRoutes": [ + { + "page": "/", + "regex": "^/(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/(?:/)?$" + }, + { + "page": "/_global-error", + "regex": "^/_global\\-error(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/_global\\-error(?:/)?$" + }, + { + "page": "/_not-found", + "regex": "^/_not\\-found(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/_not\\-found(?:/)?$" + }, + { + "page": "/about-us", + "regex": "^/about\\-us(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/about\\-us(?:/)?$" + }, + { + "page": "/air-freight", + "regex": "^/air\\-freight(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/air\\-freight(?:/)?$" + }, + { + "page": "/blog", + "regex": "^/blog(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/blog(?:/)?$" + }, + { + "page": "/contact", + "regex": "^/contact(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/contact(?:/)?$" + }, + { + "page": "/cookie-policy", + "regex": "^/cookie\\-policy(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/cookie\\-policy(?:/)?$" + }, + { + "page": "/doormile-wings", + "regex": "^/doormile\\-wings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/doormile\\-wings(?:/)?$" + }, + { + "page": "/empowerment", + "regex": "^/empowerment(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/empowerment(?:/)?$" + }, + { + "page": "/express", + "regex": "^/express(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/express(?:/)?$" + }, + { + "page": "/favicon.ico", + "regex": "^/favicon\\.ico(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/favicon\\.ico(?:/)?$" + }, + { + "page": "/how-it-works", + "regex": "^/how\\-it\\-works(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/how\\-it\\-works(?:/)?$" + }, + { + "page": "/icon.png", + "regex": "^/icon\\.png(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/icon\\.png(?:/)?$" + }, + { + "page": "/miletruth", + "regex": "^/miletruth(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/miletruth(?:/)?$" + }, + { + "page": "/privacy-policy", + "regex": "^/privacy\\-policy(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/privacy\\-policy(?:/)?$" + }, + { + "page": "/sitemap.xml", + "regex": "^/sitemap\\.xml(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/sitemap\\.xml(?:/)?$" + }, + { + "page": "/solutions", + "regex": "^/solutions(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/solutions(?:/)?$" + }, + { + "page": "/terms-of-service", + "regex": "^/terms\\-of\\-service(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/terms\\-of\\-service(?:/)?$" + } + ], + "dataRoutes": [], + "rsc": { + "header": "rsc", + "varyHeader": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch", + "prefetchHeader": "next-router-prefetch", + "didPostponeHeader": "x-nextjs-postponed", + "contentTypeHeader": "text/x-component", + "suffix": ".rsc", + "prefetchSegmentHeader": "next-router-segment-prefetch", + "prefetchSegmentSuffix": ".segment.rsc", + "prefetchSegmentDirSuffix": ".segments", + "clientParamParsing": false, + "dynamicRSCPrerender": false + }, + "rewriteHeaders": { + "pathHeader": "x-nextjs-rewritten-path", + "queryHeader": "x-nextjs-rewritten-query" + } +} \ No newline at end of file diff --git a/build/.next/server/app-paths-manifest.json b/build/.next/server/app-paths-manifest.json new file mode 100644 index 0000000..fa9c7ed --- /dev/null +++ b/build/.next/server/app-paths-manifest.json @@ -0,0 +1,22 @@ +{ + "/_global-error/page": "app/_global-error/page.js", + "/_not-found/page": "app/_not-found/page.js", + "/about-us/page": "app/about-us/page.js", + "/air-freight/page": "app/air-freight/page.js", + "/blog/[slug]/page": "app/blog/[slug]/page.js", + "/blog/page": "app/blog/page.js", + "/contact/page": "app/contact/page.js", + "/cookie-policy/page": "app/cookie-policy/page.js", + "/doormile-wings/page": "app/doormile-wings/page.js", + "/empowerment/page": "app/empowerment/page.js", + "/express/page": "app/express/page.js", + "/favicon.ico/route": "app/favicon.ico/route.js", + "/how-it-works/page": "app/how-it-works/page.js", + "/icon.png/route": "app/icon.png/route.js", + "/miletruth/page": "app/miletruth/page.js", + "/page": "app/page.js", + "/privacy-policy/page": "app/privacy-policy/page.js", + "/sitemap.xml/route": "app/sitemap.xml/route.js", + "/solutions/page": "app/solutions/page.js", + "/terms-of-service/page": "app/terms-of-service/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/_global-error.html b/build/.next/server/app/_global-error.html new file mode 100644 index 0000000..5c93d08 --- /dev/null +++ b/build/.next/server/app/_global-error.html @@ -0,0 +1 @@ +500: This page couldn’t load

This page couldn’t load

A server error occurred. Reload to try again.

\ No newline at end of file diff --git a/build/.next/server/app/_global-error.meta b/build/.next/server/app/_global-error.meta new file mode 100644 index 0000000..8700303 --- /dev/null +++ b/build/.next/server/app/_global-error.meta @@ -0,0 +1,15 @@ +{ + "status": 500, + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/_global-error/layout,_N_T_/_global-error/page,_N_T_/_global-error" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/__PAGE__", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/_global-error.rsc b/build/.next/server/app/_global-error.rsc new file mode 100644 index 0000000..c24feeb --- /dev/null +++ b/build/.next/server/app/_global-error.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"] +3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"] +4:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"] +5:"$Sreact.suspense" +8:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"] +a:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"] +c:I[68027,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1] +0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +d:[] +7:"$Wd" +9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +e:I[27201,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"] +6:null +b:[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","$Le","1",{}]] diff --git a/build/.next/server/app/_global-error.segments/__PAGE__.segment.rsc b/build/.next/server/app/_global-error.segments/__PAGE__.segment.rsc new file mode 100644 index 0000000..bcf96cd --- /dev/null +++ b/build/.next/server/app/_global-error.segments/__PAGE__.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"] +3:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +4:null diff --git a/build/.next/server/app/_global-error.segments/_full.segment.rsc b/build/.next/server/app/_global-error.segments/_full.segment.rsc new file mode 100644 index 0000000..c24feeb --- /dev/null +++ b/build/.next/server/app/_global-error.segments/_full.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"] +3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"] +4:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"] +5:"$Sreact.suspense" +8:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"] +a:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"] +c:I[68027,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1] +0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +d:[] +7:"$Wd" +9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +e:I[27201,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"] +6:null +b:[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","$Le","1",{}]] diff --git a/build/.next/server/app/_global-error.segments/_head.segment.rsc b/build/.next/server/app/_global-error.segments/_head.segment.rsc new file mode 100644 index 0000000..9f2e5e3 --- /dev/null +++ b/build/.next/server/app/_global-error.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","$L5","1",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/_global-error.segments/_index.segment.rsc b/build/.next/server/app/_global-error.segments/_index.segment.rsc new file mode 100644 index 0000000..103c5ee --- /dev/null +++ b/build/.next/server/app/_global-error.segments/_index.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"] +3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/_global-error.segments/_tree.segment.rsc b/build/.next/server/app/_global-error.segments/_tree.segment.rsc new file mode 100644 index 0000000..4919320 --- /dev/null +++ b/build/.next/server/app/_global-error.segments/_tree.segment.rsc @@ -0,0 +1 @@ +0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/_global-error/page.js b/build/.next/server/app/_global-error/page.js new file mode 100644 index 0000000..f0a4a7d --- /dev/null +++ b/build/.next/server/app/_global-error/page.js @@ -0,0 +1,10 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/_global-error/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0j0clw_._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03-z2qq.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js") +R.m(91654) +module.exports=R.m(91654).exports diff --git a/build/.next/server/app/_global-error/page.js.map b/build/.next/server/app/_global-error/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/_global-error/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/_global-error/page.js.nft.json b/build/.next/server/app/_global-error/page.js.nft.json new file mode 100644 index 0000000..44f330d --- /dev/null +++ b/build/.next/server/app/_global-error/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0j0clw_._.js","../../chunks/ssr/[root-of-the-server]__1103g-m._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03-z2qq.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/_global-error/page/app-paths-manifest.json b/build/.next/server/app/_global-error/page/app-paths-manifest.json new file mode 100644 index 0000000..0b587b9 --- /dev/null +++ b/build/.next/server/app/_global-error/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/_global-error/page": "app/_global-error/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/_global-error/page/build-manifest.json b/build/.next/server/app/_global-error/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/_global-error/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/_global-error/page/next-font-manifest.json b/build/.next/server/app/_global-error/page/next-font-manifest.json new file mode 100644 index 0000000..e0cc400 --- /dev/null +++ b/build/.next/server/app/_global-error/page/next-font-manifest.json @@ -0,0 +1,6 @@ +{ + "pages": {}, + "app": {}, + "appUsingSizeAdjust": false, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/_global-error/page/react-loadable-manifest.json b/build/.next/server/app/_global-error/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/_global-error/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/_global-error/page/server-reference-manifest.json b/build/.next/server/app/_global-error/page/server-reference-manifest.json new file mode 100644 index 0000000..27a92af --- /dev/null +++ b/build/.next/server/app/_global-error/page/server-reference-manifest.json @@ -0,0 +1,4 @@ +{ + "node": {}, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/_global-error/page_client-reference-manifest.js b/build/.next/server/app/_global-error/page_client-reference-manifest.js new file mode 100644 index 0000000..d01d0e1 --- /dev/null +++ b/build/.next/server/app/_global-error/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/_global-error/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1103g-m._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1103g-m._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1103g-m._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1103g-m._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1103g-m._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1103g-m._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1103g-m._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1103g-m._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/node_modules/next/dist/client/components/builtin/global-error":[]},"entryJSFiles":{"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/01xlw8hd842-c.js","static/chunks/0d3shmwh5_nmn.js"]}}; + diff --git a/build/.next/server/app/_not-found.html b/build/.next/server/app/_not-found.html new file mode 100644 index 0000000..2e4061c --- /dev/null +++ b/build/.next/server/app/_not-found.html @@ -0,0 +1,680 @@ +404: This page could not be found.Doormile — Delivering Trust. Beyond Boundaries

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

404

This page could not be found.

\ No newline at end of file diff --git a/build/.next/server/app/_not-found.meta b/build/.next/server/app/_not-found.meta new file mode 100644 index 0000000..731903e --- /dev/null +++ b/build/.next/server/app/_not-found.meta @@ -0,0 +1,16 @@ +{ + "status": 404, + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/_not-found/layout,_N_T_/_not-found/page,_N_T_/_not-found" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/_not-found/__PAGE__", + "/_not-found", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/_not-found.rsc b/build/.next/server/app/_not-found.rsc new file mode 100644 index 0000000..fa5bbf9 --- /dev/null +++ b/build/.next/server/app/_not-found.rsc @@ -0,0 +1,26 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +d:"$Sreact.suspense" +10:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +12:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +14:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:2:props:children:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:2:props:children:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:2:props:children:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:2:props:children:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$Lc",null,{"children":["$","$d",null,{"name":"Next.MetadataOutlet","children":"$@e"}]}]]}],{},null,false,null]},null,false,"$@f"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L10",null,{"children":"$L11"}],["$","div",null,{"hidden":true,"children":["$","$L12",null,{"children":["$","$d",null,{"name":"Next.Metadata","children":"$L13"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$14",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +15:[] +f:"$W15" +11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +16:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +e:null +13:[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile powers last-mile logistics with MileTruth™ AI, providing connected miles, SLA protection, and carrier management."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L16","7",{}]] diff --git a/build/.next/server/app/_not-found.segments/_full.segment.rsc b/build/.next/server/app/_not-found.segments/_full.segment.rsc new file mode 100644 index 0000000..fa5bbf9 --- /dev/null +++ b/build/.next/server/app/_not-found.segments/_full.segment.rsc @@ -0,0 +1,26 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +d:"$Sreact.suspense" +10:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +12:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +14:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:2:props:children:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:2:props:children:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:2:props:children:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:2:props:children:1:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$Lc",null,{"children":["$","$d",null,{"name":"Next.MetadataOutlet","children":"$@e"}]}]]}],{},null,false,null]},null,false,"$@f"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L10",null,{"children":"$L11"}],["$","div",null,{"hidden":true,"children":["$","$L12",null,{"children":["$","$d",null,{"name":"Next.Metadata","children":"$L13"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$14",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +15:[] +f:"$W15" +11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +16:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +e:null +13:[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile powers last-mile logistics with MileTruth™ AI, providing connected miles, SLA protection, and carrier management."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L16","7",{}]] diff --git a/build/.next/server/app/_not-found.segments/_head.segment.rsc b/build/.next/server/app/_not-found.segments/_head.segment.rsc new file mode 100644 index 0000000..b08aad2 --- /dev/null +++ b/build/.next/server/app/_not-found.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile powers last-mile logistics with MileTruth™ AI, providing connected miles, SLA protection, and carrier management."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/_not-found.segments/_index.segment.rsc b/build/.next/server/app/_not-found.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/_not-found.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/_not-found.segments/_not-found.segment.rsc b/build/.next/server/app/_not-found.segments/_not-found.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/_not-found.segments/_not-found.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc b/build/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc new file mode 100644 index 0000000..8cea2b8 --- /dev/null +++ b/build/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +3:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +4:null diff --git a/build/.next/server/app/_not-found.segments/_tree.segment.rsc b/build/.next/server/app/_not-found.segments/_tree.segment.rsc new file mode 100644 index 0000000..5b975d4 --- /dev/null +++ b/build/.next/server/app/_not-found.segments/_tree.segment.rsc @@ -0,0 +1,4 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/_not-found/page.js b/build/.next/server/app/_not-found/page.js new file mode 100644 index 0000000..72512ff --- /dev/null +++ b/build/.next/server/app/_not-found/page.js @@ -0,0 +1,14 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/_not-found/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0gpipiq._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0yjki14.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0nwttba.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(73673) +module.exports=R.m(73673).exports diff --git a/build/.next/server/app/_not-found/page.js.map b/build/.next/server/app/_not-found/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/_not-found/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/_not-found/page.js.nft.json b/build/.next/server/app/_not-found/page.js.nft.json new file mode 100644 index 0000000..184159b --- /dev/null +++ b/build/.next/server/app/_not-found/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0gpipiq._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_next-internal_server_app__not-found_page_actions_0nwttba.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0yjki14.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/_not-found/page/app-paths-manifest.json b/build/.next/server/app/_not-found/page/app-paths-manifest.json new file mode 100644 index 0000000..523c2ec --- /dev/null +++ b/build/.next/server/app/_not-found/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/_not-found/page": "app/_not-found/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/_not-found/page/build-manifest.json b/build/.next/server/app/_not-found/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/_not-found/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/_not-found/page/next-font-manifest.json b/build/.next/server/app/_not-found/page/next-font-manifest.json new file mode 100644 index 0000000..1e714ce --- /dev/null +++ b/build/.next/server/app/_not-found/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/_not-found/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/_not-found/page/react-loadable-manifest.json b/build/.next/server/app/_not-found/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/_not-found/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/_not-found/page/server-reference-manifest.json b/build/.next/server/app/_not-found/page/server-reference-manifest.json new file mode 100644 index 0000000..9377eaf --- /dev/null +++ b/build/.next/server/app/_not-found/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/_not-found/page": { + "moduleId": 75341, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/_not-found/page_client-reference-manifest.js b/build/.next/server/app/_not-found/page_client-reference-manifest.js new file mode 100644 index 0000000..75f84ec --- /dev/null +++ b/build/.next/server/app/_not-found/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/_not-found/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"]}}; + diff --git a/build/.next/server/app/about-us.html b/build/.next/server/app/about-us.html new file mode 100644 index 0000000..e00a582 --- /dev/null +++ b/build/.next/server/app/about-us.html @@ -0,0 +1,2050 @@ +About Us – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

The Operators Building
Doormile

/ Doormile Approach /


The Doormile Way

Smarter, Faster, Connected Logistics

We connect first mile and last mile into one seamless system, reducing delays and improving efficiency. With real-time tracking and digital workflows,
every delivery is faster, reliable, and fully transparent.

Seamless logistics powered by real-time tracking, digital processes, and reliable delivery execution.

End-to-End Protection

End-to-end visibility ensures every shipment stays secure and on schedule.

Proactive delay prevention

Real-time monitoring helps prevent delays before they impact deliveries.

Single owner, single promise

One unified system manages the entire delivery process seamlessly.

Dynamic AI-driven adjustments

AI-powered routing adapts instantly to improve speed and efficiency.

/ Built for Electric Vehicles /
Logistics Built for EV Vehicles
EV Logistics

Operational Visibility

Real-time tracking and centralized control provide complete visibility across every shipment, vehicle, and delivery milestone.

Intelligent Routing

AI-powered route optimization reduces travel time, improves delivery accuracy, and maximizes fleet utilization.

EV-First Logistics

Purpose-built workflows for electric fleets improve battery efficiency, charging management, and sustainable operations.

Scalable Network

Flexible logistics infrastructure supports growth across cities, regions, and high-volume delivery operations without disruption.

/ DoorMile wins/

WHERE DOORMILE WINS

A side-by-side technical capabilities comparison showing how operational fleet ownership and dynamic AI planning disrupt basic aggregators.

CapabilityDoormileAggregatorsLocal CouriersSoftware Platforms
Owned fleet control✓ YesNoYesNo
Dynamic routing & dispatch✓ AdvancedBasicNoAdvanced
EV-aware planning✓ YesNoNoNo
Documentation & proof trail✓ YesPartialNoYes
Real-time tracking✓ YesYesNoYes
Verified handling✓ YesPartialNoNo
Hyperlocal learning✓ YesNoNoNo
SLA accountability✓ HighLowMediumLow
VISION / 2030

The Intelligence Grid Behind Every Urban Mile

From Hyderabad EV pilot to nationwide AI logistics intelligence by 2030

ROADMAP TO 2030
100% COMPLETE →
2026
Pilot Phase
Pilot

Launch operations in Hyderabad with dedicated EV hubs and MileTruth AI v1.0.

100+ orders/day
1 city
10+ women partners
2027
Multi-City
Scale

Expand to Bengaluru and Chennai, securing key B2B enterprise traction.

500+ orders/day
3 cities
50+ EVs
2028
Platform
Expansion

Scale to 5+ cities. Strengthen regional operations.

5000+ orders/day
5+ cities
100+ women partners
2030
Vision State
AI Pulse Layer

Nationwide AI logistics grid reaching 15+ cities, empowering female micro-entrepreneurs.

50,000+ orders/day
Rs50+ cities
2,000+ women partners
/Team /

Meet crew

Ratan Kumar
Ratan Kumar
COO & Operational Specialist
Aravinth
Aravinth
CFO & Finance Specialist
Fazul Ilahi
Fazul Ilahi
CTO & Technology Specialist
Suriya Kumar
Suriya Kumar
Engineering Head & AI Specialist

Ready to Start
Your Journey?

Join our Women Entrepreneurship program and become part of
India's fastest-growing logistics network.

\ No newline at end of file diff --git a/build/.next/server/app/about-us.meta b/build/.next/server/app/about-us.meta new file mode 100644 index 0000000..3d40f45 --- /dev/null +++ b/build/.next/server/app/about-us.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/about-us/layout,_N_T_/about-us/page,_N_T_/about-us" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/about-us/__PAGE__", + "/about-us", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/about-us.rsc b/build/.next/server/app/about-us.rsc new file mode 100644 index 0000000..026acf9 --- /dev/null +++ b/build/.next/server/app/about-us.rsc @@ -0,0 +1,173 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +19:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/0v290txaarww5.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/about-bg.webp","image"] +0:{"P":null,"c":["","about-us"],"q":"","i":false,"f":[[["",{"children":["about-us",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"about","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"86","className":"elementor elementor-86 elementor-59","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n .about-us-hero-content {\n width: 100% !important;\n text-align: center !important;\n color: #fff !important;\n padding: 0 15px !important;\n z-index: 2;\n display: flex !important;\n flex-direction: column !important;\n justify-content: center !important;\n align-items: center !important;\n height: 100% !important;\n }\n\n .about-us-hero-title {\n margin: 0 !important;\n font-family: \"Manrope\", Sans-serif !important;\n font-size: clamp(34px, 5.5vw, 68px) !important;\n font-weight: 850 !important;\n line-height: 1.1 !important;\n text-transform: uppercase !important;\n letter-spacing: -1.5px !important;\n color: #ffffff !important;\n text-align: center !important;\n }\n "}}],"$Lc"],"$Ld","$Le","$Lf","$L10","$L11","$L12"]}]}]}]}],["$L13","$L14","$L15"],"$L16"]}],{},null,false,null]},null,false,"$@17"]},null,false,null],"$L18",false]],"m":"$undefined","G":["$19",["$L1a"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1b:I[24911,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +1c:I[61867,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +1d:I[47580,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +1e:I[2012,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +21:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],""] +22:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +23:"$Sreact.suspense" +26:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +28:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"style":{"backgroundImage":"url('/images/about-bg.webp')","--hero-overlay":"linear-gradient(to bottom, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.92) 60%, rgba(0, 0, 0, 0.98) 100%)"},"className":"custom-standard-hero-card","children":["$","div",null,{"className":"about-us-hero-content","children":["$","h3",null,{"className":"about-us-hero-title","children":["The Operators Building ",["$","br",null,{}]," ",["$","span",null,{"style":{"color":"#C01227"},"children":"Doormile"}]]}]}]}]}] +d:["$","$L1b",null,{}] +e:["$","$L1c",null,{}] +f:["$","$L1d",null,{}] +10:["$","$L1e",null,{}] +1f:T102e, + /* Box this section to the same inset width the sibling sections use. + The container's "display: var(--display)" resolves to the invalid + fallback (inline) here, so max-width was being ignored and the section + spanned edge-to-edge (heading clipped at the viewport edge). Force the + flex display back on and pin the inner to the shared 1480px inset. */ + .elementor-86 .elementor-element-c2c601a { + display: flex; + } + .elementor-86 .elementor-element-c2c601a > .e-con-inner { + display: flex; + flex-direction: column; + max-width: 1480px; + width: 100%; + margin-left: auto; + margin-right: auto; + padding-left: clamp(20px, 4vw, 50px) !important; + padding-right: clamp(20px, 4vw, 50px) !important; + box-sizing: border-box; + } + + /* Breathing room above and below the "Meet our the best crew" heading. */ + .elementor-86 .elementor-element-c46350e > .elementor-widget-container { + margin-top: 40px; + margin-bottom: 56px; + } + + /* Team photos: grayscale by default, full colour on hover (matches design) */ + .team-listing-wrapper.team-grid-listing .team-item .post-media img { + filter: grayscale(100%); + transition: filter 0.45s ease; + } + .team-listing-wrapper.team-grid-listing .team-item:hover .post-media img { + filter: grayscale(0%); + } + + /* Grid: four columns that wrap, with tightened row/column gaps. */ + .team-listing-wrapper.team-grid-listing { + display: flex; + flex-wrap: wrap; + margin: 0 -16px -40px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 25%; + padding: 0 16px; + margin-bottom: 40px; + box-sizing: border-box; + } + @media (max-width: 1024px) { + .team-listing-wrapper.team-grid-listing .team-item-wrapper { width: 50%; } + } + @media (max-width: 767px) { + .elementor-86 .elementor-element-c2c601a > .e-con-inner { + padding-left: 0 !important; + padding-right: 0 !important; + padding-top: 32px !important; + padding-bottom: 32px !important; + } + .elementor-86 .elementor-element-c46350e > .elementor-widget-container { + margin-top: 24px !important; + margin-bottom: 24px !important; + } + .team-listing-wrapper.team-grid-listing { + margin: 0 0 -28px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 100%; + padding: 0; + margin-bottom: 28px; + } + } + @media (max-width: 480px) { + .team-listing-wrapper.team-grid-listing { + margin: 0 0 -28px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 100%; + padding: 0; + margin-bottom: 28px; + } + } + + /* Card: photo on top, name/position at the bottom (down to image). */ + .team-listing-wrapper.team-grid-listing .team-item { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 16px; + width: 100%; + } + /* Compact portrait photo. Extra .team-item in the selector raises the + specificity so it beats the cached vendor rule (width: 45.65%). */ + .team-listing-wrapper.team-grid-listing .team-item .team-item-media { + width: 100%; + margin: 0; + } + .team-listing-wrapper.team-grid-listing .team-item .post-media { + height: 0; + padding-top: 120%; + border-radius: 16px; + overflow: hidden; + } + .team-listing-wrapper.team-grid-listing .team-item .post-media img { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: cover; + } + .team-listing-wrapper.team-grid-listing .team-item .team-item-content { + width: 100%; + margin: 0; + } + .team-listing-wrapper.team-grid-listing .team-item .post-title .team-member-name { + color: inherit; + text-decoration: none; + } + 11:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$1f"}}],"$L20"] +12:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @media (max-width: 768px) {\n .we-container {\n margin-top: 40px !important;\n margin-bottom: 40px !important;\n padding: 0 10px !important;\n }\n .we-cta {\n padding: 48px 20px !important;\n border-radius: 22px !important;\n }\n .we-cta-title {\n font-size: clamp(28px, 6vw, 38px) !important;\n line-height: 1.25 !important;\n margin-bottom: 16px !important;\n }\n .we-cta-sub {\n font-size: 15px !important;\n line-height: 1.5 !important;\n margin-bottom: 24px !important;\n }\n }\n "}}],["$","div",null,{"className":"we-container","children":["$","div",null,{"className":"we-cta reveal","children":["$","div",null,{"className":"we-cta-inner","children":[["$","h2",null,{"className":"we-cta-title","children":["Ready to Start",["$","br",null,{}],["$","em",null,{"children":"Your Journey?"}]]}],["$","p",null,{"className":"we-cta-sub","children":["Join our Women Entrepreneurship program and become part of ",["$","br",null,{}],"India's fastest-growing logistics network."]}],["$","div",null,{"className":"we-cta-btns","children":["$","$L21",null,{"href":"/contact","className":"btn-we-primary","style":{"textDecoration":"none"},"children":["Apply Now",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","style":{"marginLeft":"8px","display":"inline-block","verticalAlign":"middle"},"children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]}]]}]}]}]] +13:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0v290txaarww5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +14:["$","script","script-0",{"src":"/_next/static/chunks/0iz6a6sot7a-u.js","async":true,"nonce":"$undefined"}] +15:["$","script","script-1",{"src":"/_next/static/chunks/0nzz4x75f.ixz.js","async":true,"nonce":"$undefined"}] +16:["$","$L22",null,{"children":["$","$23",null,{"name":"Next.MetadataOutlet","children":"$@24"}]}] +25:[] +17:"$W25" +18:["$","$1","h",{"children":[null,["$","$L26",null,{"children":"$L27"}],["$","div",null,{"hidden":true,"children":["$","$L28",null,{"children":["$","$23",null,{"name":"Next.Metadata","children":"$L29"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +1a:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +2a:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"Image"] +20:["$","div",null,{"className":"elementor-element elementor-element-c2c601a e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"c2c601a","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-3306a27 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3306a27","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-7afb238 elementor-widget elementor-widget-logico_heading","data-id":"7afb238","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/Team /"}]}]}],["$","div",null,{"style":{"alignSelf":"flex-start","width":"100%"},"className":"elementor-element elementor-element-c46350e elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"c46350e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h3",null,{"className":"logico-title","style":{"textAlign":"left"},"children":"Meet crew"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-ac909e5 elementor-widget elementor-widget-logico_team_listing","data-id":"ac909e5","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_team_listing.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-team-listing-widget","children":["$","div",null,{"className":"archive-listing","children":["$","div",null,{"className":"archive-listing-wrapper team-listing-wrapper team-grid-listing columns-4","children":[["$","div","0",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$L2a",null,{"src":"/images/Investor.webp","alt":"Ratan Kumar","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Ratan Kumar"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"COO & Operational Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}],["$","div","1",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$L2a",null,{"src":"/images/Aravinth.webp","alt":"Aravinth","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Aravinth"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"CFO & Finance Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}],["$","div","2",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":"$L2b"}]}],"$L2c"]}]}],"$L2d"]}]}]}]}]}]]}]}]}] +2b:["$","$L2a",null,{"src":"/images/Fazul.webp","alt":"Fazul Ilahi","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}] +2c:["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Fazul Ilahi"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"CTO & Technology Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}] +2d:["$","div","3",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$L2a",null,{"src":"/images/Suriya.webp","alt":"Suriya Kumar","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Suriya Kumar"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"Engineering Head & AI Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}] +27:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +2e:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +24:null +29:[["$","title","0",{"children":"About Us – Doormile"}],["$","meta","1",{"name":"description","content":"Meet the best crew and operators behind Doormile. Explore our roadmap, competitive edge, and operational excellence in EV and last-mile logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L2e","7",{}]] diff --git a/build/.next/server/app/about-us.segments/_full.segment.rsc b/build/.next/server/app/about-us.segments/_full.segment.rsc new file mode 100644 index 0000000..026acf9 --- /dev/null +++ b/build/.next/server/app/about-us.segments/_full.segment.rsc @@ -0,0 +1,173 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +19:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/0v290txaarww5.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/about-bg.webp","image"] +0:{"P":null,"c":["","about-us"],"q":"","i":false,"f":[[["",{"children":["about-us",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"about","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"86","className":"elementor elementor-86 elementor-59","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n .about-us-hero-content {\n width: 100% !important;\n text-align: center !important;\n color: #fff !important;\n padding: 0 15px !important;\n z-index: 2;\n display: flex !important;\n flex-direction: column !important;\n justify-content: center !important;\n align-items: center !important;\n height: 100% !important;\n }\n\n .about-us-hero-title {\n margin: 0 !important;\n font-family: \"Manrope\", Sans-serif !important;\n font-size: clamp(34px, 5.5vw, 68px) !important;\n font-weight: 850 !important;\n line-height: 1.1 !important;\n text-transform: uppercase !important;\n letter-spacing: -1.5px !important;\n color: #ffffff !important;\n text-align: center !important;\n }\n "}}],"$Lc"],"$Ld","$Le","$Lf","$L10","$L11","$L12"]}]}]}]}],["$L13","$L14","$L15"],"$L16"]}],{},null,false,null]},null,false,"$@17"]},null,false,null],"$L18",false]],"m":"$undefined","G":["$19",["$L1a"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1b:I[24911,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +1c:I[61867,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +1d:I[47580,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +1e:I[2012,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +21:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],""] +22:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +23:"$Sreact.suspense" +26:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +28:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"style":{"backgroundImage":"url('/images/about-bg.webp')","--hero-overlay":"linear-gradient(to bottom, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.92) 60%, rgba(0, 0, 0, 0.98) 100%)"},"className":"custom-standard-hero-card","children":["$","div",null,{"className":"about-us-hero-content","children":["$","h3",null,{"className":"about-us-hero-title","children":["The Operators Building ",["$","br",null,{}]," ",["$","span",null,{"style":{"color":"#C01227"},"children":"Doormile"}]]}]}]}]}] +d:["$","$L1b",null,{}] +e:["$","$L1c",null,{}] +f:["$","$L1d",null,{}] +10:["$","$L1e",null,{}] +1f:T102e, + /* Box this section to the same inset width the sibling sections use. + The container's "display: var(--display)" resolves to the invalid + fallback (inline) here, so max-width was being ignored and the section + spanned edge-to-edge (heading clipped at the viewport edge). Force the + flex display back on and pin the inner to the shared 1480px inset. */ + .elementor-86 .elementor-element-c2c601a { + display: flex; + } + .elementor-86 .elementor-element-c2c601a > .e-con-inner { + display: flex; + flex-direction: column; + max-width: 1480px; + width: 100%; + margin-left: auto; + margin-right: auto; + padding-left: clamp(20px, 4vw, 50px) !important; + padding-right: clamp(20px, 4vw, 50px) !important; + box-sizing: border-box; + } + + /* Breathing room above and below the "Meet our the best crew" heading. */ + .elementor-86 .elementor-element-c46350e > .elementor-widget-container { + margin-top: 40px; + margin-bottom: 56px; + } + + /* Team photos: grayscale by default, full colour on hover (matches design) */ + .team-listing-wrapper.team-grid-listing .team-item .post-media img { + filter: grayscale(100%); + transition: filter 0.45s ease; + } + .team-listing-wrapper.team-grid-listing .team-item:hover .post-media img { + filter: grayscale(0%); + } + + /* Grid: four columns that wrap, with tightened row/column gaps. */ + .team-listing-wrapper.team-grid-listing { + display: flex; + flex-wrap: wrap; + margin: 0 -16px -40px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 25%; + padding: 0 16px; + margin-bottom: 40px; + box-sizing: border-box; + } + @media (max-width: 1024px) { + .team-listing-wrapper.team-grid-listing .team-item-wrapper { width: 50%; } + } + @media (max-width: 767px) { + .elementor-86 .elementor-element-c2c601a > .e-con-inner { + padding-left: 0 !important; + padding-right: 0 !important; + padding-top: 32px !important; + padding-bottom: 32px !important; + } + .elementor-86 .elementor-element-c46350e > .elementor-widget-container { + margin-top: 24px !important; + margin-bottom: 24px !important; + } + .team-listing-wrapper.team-grid-listing { + margin: 0 0 -28px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 100%; + padding: 0; + margin-bottom: 28px; + } + } + @media (max-width: 480px) { + .team-listing-wrapper.team-grid-listing { + margin: 0 0 -28px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 100%; + padding: 0; + margin-bottom: 28px; + } + } + + /* Card: photo on top, name/position at the bottom (down to image). */ + .team-listing-wrapper.team-grid-listing .team-item { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 16px; + width: 100%; + } + /* Compact portrait photo. Extra .team-item in the selector raises the + specificity so it beats the cached vendor rule (width: 45.65%). */ + .team-listing-wrapper.team-grid-listing .team-item .team-item-media { + width: 100%; + margin: 0; + } + .team-listing-wrapper.team-grid-listing .team-item .post-media { + height: 0; + padding-top: 120%; + border-radius: 16px; + overflow: hidden; + } + .team-listing-wrapper.team-grid-listing .team-item .post-media img { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: cover; + } + .team-listing-wrapper.team-grid-listing .team-item .team-item-content { + width: 100%; + margin: 0; + } + .team-listing-wrapper.team-grid-listing .team-item .post-title .team-member-name { + color: inherit; + text-decoration: none; + } + 11:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$1f"}}],"$L20"] +12:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @media (max-width: 768px) {\n .we-container {\n margin-top: 40px !important;\n margin-bottom: 40px !important;\n padding: 0 10px !important;\n }\n .we-cta {\n padding: 48px 20px !important;\n border-radius: 22px !important;\n }\n .we-cta-title {\n font-size: clamp(28px, 6vw, 38px) !important;\n line-height: 1.25 !important;\n margin-bottom: 16px !important;\n }\n .we-cta-sub {\n font-size: 15px !important;\n line-height: 1.5 !important;\n margin-bottom: 24px !important;\n }\n }\n "}}],["$","div",null,{"className":"we-container","children":["$","div",null,{"className":"we-cta reveal","children":["$","div",null,{"className":"we-cta-inner","children":[["$","h2",null,{"className":"we-cta-title","children":["Ready to Start",["$","br",null,{}],["$","em",null,{"children":"Your Journey?"}]]}],["$","p",null,{"className":"we-cta-sub","children":["Join our Women Entrepreneurship program and become part of ",["$","br",null,{}],"India's fastest-growing logistics network."]}],["$","div",null,{"className":"we-cta-btns","children":["$","$L21",null,{"href":"/contact","className":"btn-we-primary","style":{"textDecoration":"none"},"children":["Apply Now",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","style":{"marginLeft":"8px","display":"inline-block","verticalAlign":"middle"},"children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]}]]}]}]}]] +13:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0v290txaarww5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +14:["$","script","script-0",{"src":"/_next/static/chunks/0iz6a6sot7a-u.js","async":true,"nonce":"$undefined"}] +15:["$","script","script-1",{"src":"/_next/static/chunks/0nzz4x75f.ixz.js","async":true,"nonce":"$undefined"}] +16:["$","$L22",null,{"children":["$","$23",null,{"name":"Next.MetadataOutlet","children":"$@24"}]}] +25:[] +17:"$W25" +18:["$","$1","h",{"children":[null,["$","$L26",null,{"children":"$L27"}],["$","div",null,{"hidden":true,"children":["$","$L28",null,{"children":["$","$23",null,{"name":"Next.Metadata","children":"$L29"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +1a:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +2a:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"Image"] +20:["$","div",null,{"className":"elementor-element elementor-element-c2c601a e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"c2c601a","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-3306a27 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3306a27","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-7afb238 elementor-widget elementor-widget-logico_heading","data-id":"7afb238","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/Team /"}]}]}],["$","div",null,{"style":{"alignSelf":"flex-start","width":"100%"},"className":"elementor-element elementor-element-c46350e elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"c46350e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h3",null,{"className":"logico-title","style":{"textAlign":"left"},"children":"Meet crew"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-ac909e5 elementor-widget elementor-widget-logico_team_listing","data-id":"ac909e5","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_team_listing.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-team-listing-widget","children":["$","div",null,{"className":"archive-listing","children":["$","div",null,{"className":"archive-listing-wrapper team-listing-wrapper team-grid-listing columns-4","children":[["$","div","0",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$L2a",null,{"src":"/images/Investor.webp","alt":"Ratan Kumar","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Ratan Kumar"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"COO & Operational Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}],["$","div","1",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$L2a",null,{"src":"/images/Aravinth.webp","alt":"Aravinth","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Aravinth"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"CFO & Finance Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}],["$","div","2",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":"$L2b"}]}],"$L2c"]}]}],"$L2d"]}]}]}]}]}]]}]}]}] +2b:["$","$L2a",null,{"src":"/images/Fazul.webp","alt":"Fazul Ilahi","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}] +2c:["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Fazul Ilahi"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"CTO & Technology Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}] +2d:["$","div","3",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$L2a",null,{"src":"/images/Suriya.webp","alt":"Suriya Kumar","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Suriya Kumar"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"Engineering Head & AI Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}] +27:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +2e:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +24:null +29:[["$","title","0",{"children":"About Us – Doormile"}],["$","meta","1",{"name":"description","content":"Meet the best crew and operators behind Doormile. Explore our roadmap, competitive edge, and operational excellence in EV and last-mile logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L2e","7",{}]] diff --git a/build/.next/server/app/about-us.segments/_head.segment.rsc b/build/.next/server/app/about-us.segments/_head.segment.rsc new file mode 100644 index 0000000..de95da6 --- /dev/null +++ b/build/.next/server/app/about-us.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"About Us – Doormile"}],["$","meta","1",{"name":"description","content":"Meet the best crew and operators behind Doormile. Explore our roadmap, competitive edge, and operational excellence in EV and last-mile logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/about-us.segments/_index.segment.rsc b/build/.next/server/app/about-us.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/about-us.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/about-us.segments/_tree.segment.rsc b/build/.next/server/app/about-us.segments/_tree.segment.rsc new file mode 100644 index 0000000..4090afa --- /dev/null +++ b/build/.next/server/app/about-us.segments/_tree.segment.rsc @@ -0,0 +1,11 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/0v290txaarww5.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/about-bg.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"about-us","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/about-us.segments/about-us.segment.rsc b/build/.next/server/app/about-us.segments/about-us.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/about-us.segments/about-us.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/about-us.segments/about-us/__PAGE__.segment.rsc b/build/.next/server/app/about-us.segments/about-us/__PAGE__.segment.rsc new file mode 100644 index 0000000..760b8b8 --- /dev/null +++ b/build/.next/server/app/about-us.segments/about-us/__PAGE__.segment.rsc @@ -0,0 +1,138 @@ +1:"$Sreact.fragment" +2:I[24911,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +3:I[61867,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +4:I[47580,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +5:I[2012,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"default"] +d:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"Image"] +11:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],""] +12:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +13:"$Sreact.suspense" +:HL["/_next/static/chunks/0v290txaarww5.css","style"] +6:T102e, + /* Box this section to the same inset width the sibling sections use. + The container's "display: var(--display)" resolves to the invalid + fallback (inline) here, so max-width was being ignored and the section + spanned edge-to-edge (heading clipped at the viewport edge). Force the + flex display back on and pin the inner to the shared 1480px inset. */ + .elementor-86 .elementor-element-c2c601a { + display: flex; + } + .elementor-86 .elementor-element-c2c601a > .e-con-inner { + display: flex; + flex-direction: column; + max-width: 1480px; + width: 100%; + margin-left: auto; + margin-right: auto; + padding-left: clamp(20px, 4vw, 50px) !important; + padding-right: clamp(20px, 4vw, 50px) !important; + box-sizing: border-box; + } + + /* Breathing room above and below the "Meet our the best crew" heading. */ + .elementor-86 .elementor-element-c46350e > .elementor-widget-container { + margin-top: 40px; + margin-bottom: 56px; + } + + /* Team photos: grayscale by default, full colour on hover (matches design) */ + .team-listing-wrapper.team-grid-listing .team-item .post-media img { + filter: grayscale(100%); + transition: filter 0.45s ease; + } + .team-listing-wrapper.team-grid-listing .team-item:hover .post-media img { + filter: grayscale(0%); + } + + /* Grid: four columns that wrap, with tightened row/column gaps. */ + .team-listing-wrapper.team-grid-listing { + display: flex; + flex-wrap: wrap; + margin: 0 -16px -40px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 25%; + padding: 0 16px; + margin-bottom: 40px; + box-sizing: border-box; + } + @media (max-width: 1024px) { + .team-listing-wrapper.team-grid-listing .team-item-wrapper { width: 50%; } + } + @media (max-width: 767px) { + .elementor-86 .elementor-element-c2c601a > .e-con-inner { + padding-left: 0 !important; + padding-right: 0 !important; + padding-top: 32px !important; + padding-bottom: 32px !important; + } + .elementor-86 .elementor-element-c46350e > .elementor-widget-container { + margin-top: 24px !important; + margin-bottom: 24px !important; + } + .team-listing-wrapper.team-grid-listing { + margin: 0 0 -28px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 100%; + padding: 0; + margin-bottom: 28px; + } + } + @media (max-width: 480px) { + .team-listing-wrapper.team-grid-listing { + margin: 0 0 -28px; + } + .team-listing-wrapper.team-grid-listing .team-item-wrapper { + width: 100%; + padding: 0; + margin-bottom: 28px; + } + } + + /* Card: photo on top, name/position at the bottom (down to image). */ + .team-listing-wrapper.team-grid-listing .team-item { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 16px; + width: 100%; + } + /* Compact portrait photo. Extra .team-item in the selector raises the + specificity so it beats the cached vendor rule (width: 45.65%). */ + .team-listing-wrapper.team-grid-listing .team-item .team-item-media { + width: 100%; + margin: 0; + } + .team-listing-wrapper.team-grid-listing .team-item .post-media { + height: 0; + padding-top: 120%; + border-radius: 16px; + overflow: hidden; + } + .team-listing-wrapper.team-grid-listing .team-item .post-media img { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: cover; + } + .team-listing-wrapper.team-grid-listing .team-item .team-item-content { + width: 100%; + margin: 0; + } + .team-listing-wrapper.team-grid-listing .team-item .post-title .team-member-name { + color: inherit; + text-decoration: none; + } + 0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"about","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"86","className":"elementor elementor-86 elementor-59","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n .about-us-hero-content {\n width: 100% !important;\n text-align: center !important;\n color: #fff !important;\n padding: 0 15px !important;\n z-index: 2;\n display: flex !important;\n flex-direction: column !important;\n justify-content: center !important;\n align-items: center !important;\n height: 100% !important;\n }\n\n .about-us-hero-title {\n margin: 0 !important;\n font-family: \"Manrope\", Sans-serif !important;\n font-size: clamp(34px, 5.5vw, 68px) !important;\n font-weight: 850 !important;\n line-height: 1.1 !important;\n text-transform: uppercase !important;\n letter-spacing: -1.5px !important;\n color: #ffffff !important;\n text-align: center !important;\n }\n "}}],["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"style":{"backgroundImage":"url('/images/about-bg.webp')","--hero-overlay":"linear-gradient(to bottom, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.92) 60%, rgba(0, 0, 0, 0.98) 100%)"},"className":"custom-standard-hero-card","children":["$","div",null,{"className":"about-us-hero-content","children":["$","h3",null,{"className":"about-us-hero-title","children":["The Operators Building ",["$","br",null,{}]," ",["$","span",null,{"style":{"color":"#C01227"},"children":"Doormile"}]]}]}]}]}]],["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{}],["$","$L5",null,{}],[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$6"}}],"$L7"],"$L8"]}]}]}]}],["$L9","$La","$Lb"],"$Lc"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +7:["$","div",null,{"className":"elementor-element elementor-element-c2c601a e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"c2c601a","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-3306a27 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3306a27","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-7afb238 elementor-widget elementor-widget-logico_heading","data-id":"7afb238","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/Team /"}]}]}],["$","div",null,{"style":{"alignSelf":"flex-start","width":"100%"},"className":"elementor-element elementor-element-c46350e elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"c46350e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h3",null,{"className":"logico-title","style":{"textAlign":"left"},"children":"Meet crew"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-ac909e5 elementor-widget elementor-widget-logico_team_listing","data-id":"ac909e5","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_team_listing.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-team-listing-widget","children":["$","div",null,{"className":"archive-listing","children":["$","div",null,{"className":"archive-listing-wrapper team-listing-wrapper team-grid-listing columns-4","children":[["$","div","0",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$Ld",null,{"src":"/images/Investor.webp","alt":"Ratan Kumar","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Ratan Kumar"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"COO & Operational Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}],["$","div","1",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$Ld",null,{"src":"/images/Aravinth.webp","alt":"Aravinth","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Aravinth"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"CFO & Finance Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}],["$","div","2",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":"$Le"}]}],"$Lf"]}]}],"$L10"]}]}]}]}]}]]}]}]}] +8:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @media (max-width: 768px) {\n .we-container {\n margin-top: 40px !important;\n margin-bottom: 40px !important;\n padding: 0 10px !important;\n }\n .we-cta {\n padding: 48px 20px !important;\n border-radius: 22px !important;\n }\n .we-cta-title {\n font-size: clamp(28px, 6vw, 38px) !important;\n line-height: 1.25 !important;\n margin-bottom: 16px !important;\n }\n .we-cta-sub {\n font-size: 15px !important;\n line-height: 1.5 !important;\n margin-bottom: 24px !important;\n }\n }\n "}}],["$","div",null,{"className":"we-container","children":["$","div",null,{"className":"we-cta reveal","children":["$","div",null,{"className":"we-cta-inner","children":[["$","h2",null,{"className":"we-cta-title","children":["Ready to Start",["$","br",null,{}],["$","em",null,{"children":"Your Journey?"}]]}],["$","p",null,{"className":"we-cta-sub","children":["Join our Women Entrepreneurship program and become part of ",["$","br",null,{}],"India's fastest-growing logistics network."]}],["$","div",null,{"className":"we-cta-btns","children":["$","$L11",null,{"href":"/contact","className":"btn-we-primary","style":{"textDecoration":"none"},"children":["Apply Now",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","style":{"marginLeft":"8px","display":"inline-block","verticalAlign":"middle"},"children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]}]]}]}]}]] +9:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0v290txaarww5.css","precedence":"next"}] +a:["$","script","script-0",{"src":"/_next/static/chunks/0iz6a6sot7a-u.js","async":true}] +b:["$","script","script-1",{"src":"/_next/static/chunks/0nzz4x75f.ixz.js","async":true}] +c:["$","$L12",null,{"children":["$","$13",null,{"name":"Next.MetadataOutlet","children":"$@14"}]}] +e:["$","$Ld",null,{"src":"/images/Fazul.webp","alt":"Fazul Ilahi","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}] +f:["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Fazul Ilahi"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"CTO & Technology Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}] +10:["$","div","3",{"className":"team-item-wrapper post-2866 team type-team status-publish has-post-thumbnail hentry","children":["$","div",null,{"className":"team-item","children":[["$","div",null,{"className":"team-item-media","children":["$","div",null,{"className":"post-media","children":["$","$Ld",null,{"src":"/images/Suriya.webp","alt":"Suriya Kumar","width":300,"height":360,"style":{"objectFit":"cover","width":"100%","height":"100%"}}]}]}],["$","div",null,{"className":"team-item-content","children":[["$","div",null,{"className":"post-title","children":["$","span",null,{"className":"team-member-name","children":"Suriya Kumar"}]}],["$","div",null,{"className":"team-item-position","dangerouslySetInnerHTML":{"__html":"Engineering Head & AI Specialist"}}],["$","div",null,{"className":"team-item-socials","children":["$","ul",null,{"className":"team-socials wrapper-socials","children":["$","li",null,{"children":["$","a",null,{"href":"https://www.linkedin.com/","target":"_blank","rel":"noreferrer","className":"fab fa-linkedin-in"}]}]}]}]]}]]}]}] +14:null diff --git a/build/.next/server/app/about-us/page.js b/build/.next/server/app/about-us/page.js new file mode 100644 index 0000000..6327ce1 --- /dev/null +++ b/build/.next/server/app/about-us/page.js @@ -0,0 +1,16 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/about-us/page.js") +R.c("server/chunks/ssr/src_030_reo._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0bmtoj~._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qo6y.1.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_about-us_page_actions_10el~1u.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(39996) +module.exports=R.m(39996).exports diff --git a/build/.next/server/app/about-us/page.js.map b/build/.next/server/app/about-us/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/about-us/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/about-us/page.js.nft.json b/build/.next/server/app/about-us/page.js.nft.json new file mode 100644 index 0000000..2f182a6 --- /dev/null +++ b/build/.next/server/app/about-us/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0bmtoj~._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_next-internal_server_app_about-us_page_actions_10el~1u.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qo6y.1.js","../../chunks/ssr/src_030_reo._.js","../../chunks/ssr/src_components_sections_0tf4kw_._.js","../../chunks/ssr/src_components_sections_0vgb-z3._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/about-us/page/app-paths-manifest.json b/build/.next/server/app/about-us/page/app-paths-manifest.json new file mode 100644 index 0000000..6b38b87 --- /dev/null +++ b/build/.next/server/app/about-us/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/about-us/page": "app/about-us/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/about-us/page/build-manifest.json b/build/.next/server/app/about-us/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/about-us/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/about-us/page/next-font-manifest.json b/build/.next/server/app/about-us/page/next-font-manifest.json new file mode 100644 index 0000000..9ee5686 --- /dev/null +++ b/build/.next/server/app/about-us/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/about-us/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/about-us/page/react-loadable-manifest.json b/build/.next/server/app/about-us/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/about-us/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/about-us/page/server-reference-manifest.json b/build/.next/server/app/about-us/page/server-reference-manifest.json new file mode 100644 index 0000000..20391ea --- /dev/null +++ b/build/.next/server/app/about-us/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/about-us/page": { + "moduleId": 16945, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/about-us/page_client-reference-manifest.js b/build/.next/server/app/about-us/page_client-reference-manifest.js new file mode 100644 index 0000000..7b84dcb --- /dev/null +++ b/build/.next/server/app/about-us/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/about-us/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/sections/TheDoormileWay.tsx ":{"id":24911,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/src/components/sections/TheDoormileWay.tsx":{"id":24911,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/src/components/sections/EVLogisticSection.tsx ":{"id":61867,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/src/components/sections/EVLogisticSection.tsx":{"id":61867,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/src/components/sections/CompetitiveEdge.tsx ":{"id":47580,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/src/components/sections/CompetitiveEdge.tsx":{"id":47580,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/src/components/sections/IntelligenceGrid.tsx ":{"id":2012,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/src/components/sections/IntelligenceGrid.tsx":{"id":2012,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js ":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js ":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0iz6a6sot7a-u.js","/_next/static/chunks/0nzz4x75f.ixz.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"24911":{"*":{"id":67736,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_0vgb-z3._.js","server/chunks/ssr/src_components_sections_0tf4kw_._.js"],"async":false}},"61867":{"*":{"id":50034,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_0vgb-z3._.js","server/chunks/ssr/src_components_sections_0tf4kw_._.js"],"async":false}},"47580":{"*":{"id":6159,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_0vgb-z3._.js","server/chunks/ssr/src_components_sections_0tf4kw_._.js"],"async":false}},"2012":{"*":{"id":99084,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_0vgb-z3._.js","server/chunks/ssr/src_components_sections_0tf4kw_._.js"],"async":false}},"5500":{"*":{"id":67161,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_0vgb-z3._.js","server/chunks/ssr/src_components_sections_0tf4kw_._.js"],"async":false}},"22016":{"*":{"id":38246,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_0vgb-z3._.js","server/chunks/ssr/src_components_sections_0tf4kw_._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"24911":{"*":{"id":16205,"name":"*","chunks":[],"async":false}},"61867":{"*":{"id":85769,"name":"*","chunks":[],"async":false}},"47580":{"*":{"id":72493,"name":"*","chunks":[],"async":false}},"2012":{"*":{"id":6479,"name":"*","chunks":[],"async":false}},"5500":{"*":{"id":43489,"name":"*","chunks":[],"async":false}},"22016":{"*":{"id":84707,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/about-us/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false},{"path":"static/chunks/0v290txaarww5.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/about-us/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/0iz6a6sot7a-u.js","static/chunks/0nzz4x75f.ixz.js"]}}; + diff --git a/build/.next/server/app/air-freight.html b/build/.next/server/app/air-freight.html new file mode 100644 index 0000000..c44eb8b --- /dev/null +++ b/build/.next/server/app/air-freight.html @@ -0,0 +1 @@ +Doormile — Delivering Trust. Beyond Boundaries \ No newline at end of file diff --git a/build/.next/server/app/air-freight.meta b/build/.next/server/app/air-freight.meta new file mode 100644 index 0000000..192f6f3 --- /dev/null +++ b/build/.next/server/app/air-freight.meta @@ -0,0 +1,17 @@ +{ + "status": 308, + "headers": { + "location": "/doormile-wings", + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/air-freight/layout,_N_T_/air-freight/page,_N_T_/air-freight" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/air-freight/__PAGE__", + "/air-freight", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/air-freight.rsc b/build/.next/server/app/air-freight.rsc new file mode 100644 index 0000000..23e4663 --- /dev/null +++ b/build/.next/server/app/air-freight.rsc @@ -0,0 +1,32 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","air-freight"],"q":"","i":false,"f":[[["",{"children":["air-freight",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",null,["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +c:E{"digest":"NEXT_REDIRECT;replace;/doormile-wings;308;"} +16:[] +10:"$W16" +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +17:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile powers last-mile logistics with MileTruth™ AI, providing connected miles, SLA protection, and carrier management."}],["$","meta","2",{"name":"robots","content":"noindex, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/doormile-wings"}],["$","link","4",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","5",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","6",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","7",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L17","8",{}]] diff --git a/build/.next/server/app/air-freight.segments/_full.segment.rsc b/build/.next/server/app/air-freight.segments/_full.segment.rsc new file mode 100644 index 0000000..23e4663 --- /dev/null +++ b/build/.next/server/app/air-freight.segments/_full.segment.rsc @@ -0,0 +1,32 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","air-freight"],"q":"","i":false,"f":[[["",{"children":["air-freight",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",null,["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +c:E{"digest":"NEXT_REDIRECT;replace;/doormile-wings;308;"} +16:[] +10:"$W16" +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +17:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile powers last-mile logistics with MileTruth™ AI, providing connected miles, SLA protection, and carrier management."}],["$","meta","2",{"name":"robots","content":"noindex, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/doormile-wings"}],["$","link","4",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","5",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","6",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","7",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L17","8",{}]] diff --git a/build/.next/server/app/air-freight.segments/_head.segment.rsc b/build/.next/server/app/air-freight.segments/_head.segment.rsc new file mode 100644 index 0000000..a4894d4 --- /dev/null +++ b/build/.next/server/app/air-freight.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile powers last-mile logistics with MileTruth™ AI, providing connected miles, SLA protection, and carrier management."}],["$","meta","2",{"name":"robots","content":"noindex, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/doormile-wings"}],["$","link","4",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","5",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","6",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","7",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","8",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/air-freight.segments/_index.segment.rsc b/build/.next/server/app/air-freight.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/air-freight.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/air-freight.segments/_tree.segment.rsc b/build/.next/server/app/air-freight.segments/_tree.segment.rsc new file mode 100644 index 0000000..c8273f7 --- /dev/null +++ b/build/.next/server/app/air-freight.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"air-freight","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/air-freight.segments/air-freight.segment.rsc b/build/.next/server/app/air-freight.segments/air-freight.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/air-freight.segments/air-freight.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/air-freight.segments/air-freight/__PAGE__.segment.rsc b/build/.next/server/app/air-freight.segments/air-freight/__PAGE__.segment.rsc new file mode 100644 index 0000000..cb983a1 --- /dev/null +++ b/build/.next/server/app/air-freight.segments/air-freight/__PAGE__.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +4:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":["$L2",null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +5:null +2:E{"digest":"NEXT_REDIRECT;replace;/doormile-wings;308;"} diff --git a/build/.next/server/app/air-freight/page.js b/build/.next/server/app/air-freight/page.js new file mode 100644 index 0000000..4923cf7 --- /dev/null +++ b/build/.next/server/app/air-freight/page.js @@ -0,0 +1,16 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/air-freight/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0vr5sgo._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_05za6s2.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_11dij6w._.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_air-freight_page_actions_12f7kao.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(91827) +module.exports=R.m(91827).exports diff --git a/build/.next/server/app/air-freight/page.js.map b/build/.next/server/app/air-freight/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/air-freight/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/air-freight/page.js.nft.json b/build/.next/server/app/air-freight/page.js.nft.json new file mode 100644 index 0000000..f33ba70 --- /dev/null +++ b/build/.next/server/app/air-freight/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[root-of-the-server]__0vr5sgo._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_next-internal_server_app_air-freight_page_actions_12f7kao.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_11dij6w._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_05za6s2.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/air-freight/page/app-paths-manifest.json b/build/.next/server/app/air-freight/page/app-paths-manifest.json new file mode 100644 index 0000000..8f8c580 --- /dev/null +++ b/build/.next/server/app/air-freight/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/air-freight/page": "app/air-freight/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/air-freight/page/build-manifest.json b/build/.next/server/app/air-freight/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/air-freight/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/air-freight/page/next-font-manifest.json b/build/.next/server/app/air-freight/page/next-font-manifest.json new file mode 100644 index 0000000..d17c792 --- /dev/null +++ b/build/.next/server/app/air-freight/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/air-freight/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/air-freight/page/react-loadable-manifest.json b/build/.next/server/app/air-freight/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/air-freight/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/air-freight/page/server-reference-manifest.json b/build/.next/server/app/air-freight/page/server-reference-manifest.json new file mode 100644 index 0000000..8dc41e8 --- /dev/null +++ b/build/.next/server/app/air-freight/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/air-freight/page": { + "moduleId": 67113, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/air-freight/page_client-reference-manifest.js b/build/.next/server/app/air-freight/page_client-reference-manifest.js new file mode 100644 index 0000000..522b576 --- /dev/null +++ b/build/.next/server/app/air-freight/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/air-freight/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"]}}; + diff --git a/build/.next/server/app/blog.html b/build/.next/server/app/blog.html new file mode 100644 index 0000000..cc1ca4b --- /dev/null +++ b/build/.next/server/app/blog.html @@ -0,0 +1,863 @@ +Blog – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Delivering Trust.
Beyond Boundaries

\ No newline at end of file diff --git a/build/.next/server/app/blog.meta b/build/.next/server/app/blog.meta new file mode 100644 index 0000000..eab8343 --- /dev/null +++ b/build/.next/server/app/blog.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/page,_N_T_/blog" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/__PAGE__", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog.rsc b/build/.next/server/app/blog.rsc new file mode 100644 index 0000000..0670a04 --- /dev/null +++ b/build/.next/server/app/blog.rsc @@ -0,0 +1,207 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +11:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/home2-banner-1.webp","image"] +0:{"P":null,"c":["","blog"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"blogs","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"104","className":"elementor elementor-104","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n .blogs-hero-title {\n color: #ffffff !important;\n font-family: var(--font-manrope), sans-serif !important;\n font-size: clamp(34px, 5.5vw, 68px) !important;\n font-weight: 850 !important;\n line-height: 1.08 !important;\n text-transform: uppercase !important;\n letter-spacing: -1.5px !important;\n margin: 0 !important;\n }\n .blogs-hero-content {\n position: relative !important;\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n flex-direction: column !important;\n max-width: 1000px !important;\n margin: 0 auto !important;\n padding: 0 15px !important;\n box-sizing: border-box !important;\n }\n "}}],"$Lc"],"$Ld"]}]}]}]}],null,"$Le"]}],{},null,false,null]},null,false,"$@f"]},null,false,null],"$L10",false]],"m":"$undefined","G":["$11",["$L12"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +15:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +16:"$Sreact.suspense" +19:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1b:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"style":{"backgroundImage":"url(/images/home2-banner-1.webp)","backgroundPosition":"center center","backgroundRepeat":"no-repeat","backgroundSize":"cover"},"className":"custom-standard-hero-card","children":["$","div",null,{"className":"blogs-hero-content","children":["$","div",null,{"style":{"textAlign":"center","color":"#fff","zIndex":5},"children":["$","h1",null,{"className":"blogs-hero-title","children":["Delivering Trust.",["$","br",null,{}],["$","span",null,{"style":{"color":"#C01227"},"children":"Beyond Boundaries"}]]}]}]}]}]}] +13:T17ff, + .custom-blog-grid { + display: grid !important; + grid-template-columns: repeat(3, 1fr) !important; + gap: 40px !important; + width: 100% !important; + max-width: 1200px !important; + margin: 0 auto !important; + padding: 40px 20px !important; + } + + @media (max-width: 1024px) { + .custom-blog-grid { + grid-template-columns: repeat(2, 1fr) !important; + } + } + @media (max-width: 768px) { + .elementor-104 .elementor-element.elementor-element-c70681e { + margin-top: var(--space-section) !important; + margin-bottom: 16px !important; + } + .custom-blog-grid { + grid-template-columns: 1fr !important; + gap: 28px !important; + padding: 24px 20px !important; + } + } + + @media (max-width: 767px) { + .elementor-104 .elementor-element.elementor-element-c70681e { + --padding-left: 10px !important; + --padding-right: 10px !important; + padding-left: 10px !important; + padding-right: 10px !important; + } + .elementor-104 .elementor-element.elementor-element-3dec5cf { + --padding-left: 0px !important; + --padding-right: 0px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + .elementor-104 .elementor-element.elementor-element-aa12479, + .elementor-104 .elementor-element.elementor-element-aa12479 > .elementor-widget-container, + .elementor-104 .archive-listing, + .elementor-104 .custom-blog-grid { + width: 100% !important; + max-width: 100% !important; + } + .elementor-104 .custom-blog-grid { + padding-left: 0 !important; + padding-right: 0 !important; + } + } + + .custom-blog-card { + display: flex !important; + flex-direction: column !important; + justify-content: space-between !important; + height: 100% !important; + background: #ffffff !important; + border: 1px solid rgba(0, 0, 0, 0.08) !important; + border-radius: 28px !important; + padding: 28px !important; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important; + transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease !important; + cursor: pointer !important; + } + + .custom-blog-card:hover { + transform: translateY(-8px) !important; + box-shadow: 0 20px 40px rgba(192, 18, 39, 0.12) !important; + border-color: rgba(192, 18, 39, 0.2) !important; + } + + .custom-blog-title { + font-size: 20px !important; + font-weight: 800 !important; + color: #1e293b !important; + line-height: 1.35 !important; + text-transform: none !important; + letter-spacing: -0.4px !important; + margin: 0 0 12px 0 !important; + display: -webkit-box !important; + -webkit-line-clamp: 2 !important; + -webkit-box-orient: vertical !important; + overflow: hidden !important; + transition: color 0.2s ease !important; + font-family: var(--font-manrope), sans-serif !important; + } + + .custom-blog-card:hover .custom-blog-title { + color: #c01227 !important; + } + + .custom-blog-excerpt { + font-size: 13.5px !important; + font-weight: 500 !important; + color: #64748b !important; + line-height: 1.6 !important; + margin: 0 0 18px 0 !important; + text-transform: none !important; + font-family: var(--font-manrope), sans-serif !important; + } + + /* Bottom block pinned to the card base. Keeps Read More + image at the + same vertical position across cards with different text lengths. */ + .custom-blog-bottom { + display: flex !important; + flex-direction: column !important; + margin-top: auto !important; + } + + .custom-blog-readmore { + display: inline-flex !important; + align-items: center !important; + align-self: flex-start !important; + gap: 6px !important; + font-size: 13px !important; + font-weight: 800 !important; + color: #c01227 !important; + text-transform: uppercase !important; + letter-spacing: 0.5px !important; + margin: 0 0 24px 0 !important; + font-family: var(--font-manrope), sans-serif !important; + } + + .custom-blog-readmore-arrow { + transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) !important; + } + + .custom-blog-card:hover .custom-blog-readmore-arrow { + transform: translateX(5px) !important; + } + + .custom-blog-img-container { + position: relative !important; + width: 100% !important; + aspect-ratio: 4 / 3 !important; + border-radius: 20px !important; + overflow: hidden !important; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05) !important; + } + + .custom-blog-badge { + position: absolute !important; + top: 14px !important; + left: 14px !important; + z-index: 5 !important; + background: #c01227 !important; + color: #ffffff !important; + font-size: 9px !important; + font-weight: 800 !important; + text-transform: uppercase !important; + letter-spacing: 1.2px !important; + padding: 4px 10px !important; + border-radius: 6px !important; + box-shadow: 0 4px 10px rgba(192, 18, 39, 0.2) !important; + font-family: var(--font-manrope), sans-serif !important; + } + d:["$","div",null,{"className":"elementor-element elementor-element-c70681e e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"c70681e","data-element_type":"container","data-e-type":"container","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$13"}}],"$L14"]}] +e:["$","$L15",null,{"children":["$","$16",null,{"name":"Next.MetadataOutlet","children":"$@17"}]}] +18:[] +f:"$W18" +10:["$","$1","h",{"children":[null,["$","$L19",null,{"children":"$L1a"}],["$","div",null,{"hidden":true,"children":["$","$L1b",null,{"children":["$","$16",null,{"name":"Next.Metadata","children":"$L1c"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +12:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +1d:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ScrollReveal"] +1e:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],""] +1f:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"Image"] +14:["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-3dec5cf e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3dec5cf","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-aa12479 elementor-widget elementor-widget-logico_blog_listing","data-id":"aa12479","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_blog_listing.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"archive-listing","children":["$","div",null,{"className":"custom-blog-grid","children":[["$","$L1d","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"custom-blog-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Technology"}]]}]]}]]}]}],["$","$L1d","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"custom-blog-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Case Study"}]]}]]}]]}]}],["$","$L1d","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"custom-blog-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}]]}],"$L20"]}]}],"$L21","$L22","$L23","$L24","$L25","$L26"]}]}]}]}]}]}] +20:["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"MileTruth"}]]}]]}] +21:["$","$L1d","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"EV Fleet"}]]}]]}]]}]}] +22:["$","$L1d","why-mathematical-precision-beats-heuristics-in-routing",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Technology"}]]}]]}]]}]}] +23:["$","$L1d","fleet-reduction-without-compromising-delivery-volume",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Fleet Reduction Without Compromising Delivery Volume"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Fleet Management"}]]}]]}]]}]}] +24:["$","$L1d","building-a-greener-city-the-future-of-urban-logistics",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Building a Greener City: The Future of Urban Logistics"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Sustainability"}]]}]]}]]}]}] +25:["$","$L1d","how-doormile-maintains-99-9-sla-compliance-at-scale",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","p",null,{"className":"custom-blog-excerpt","children":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Operations"}]]}]]}]]}]}] +26:["$","$L1d","battery-simulation-the-secret-to-ev-route-pre-validation",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"EV Fleet"}]]}]]}]]}]}] +1a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +27:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +17:null +1c:[["$","title","0",{"children":"Blog – Doormile"}],["$","meta","1",{"name":"description","content":"Practical notes on delivery planning, EV fleet operations, route optimisation, charging, and last-mile performance from the Doormile team."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L27","7",{}]] diff --git a/build/.next/server/app/blog.segments/_full.segment.rsc b/build/.next/server/app/blog.segments/_full.segment.rsc new file mode 100644 index 0000000..0670a04 --- /dev/null +++ b/build/.next/server/app/blog.segments/_full.segment.rsc @@ -0,0 +1,207 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +11:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/home2-banner-1.webp","image"] +0:{"P":null,"c":["","blog"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"blogs","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"104","className":"elementor elementor-104","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n .blogs-hero-title {\n color: #ffffff !important;\n font-family: var(--font-manrope), sans-serif !important;\n font-size: clamp(34px, 5.5vw, 68px) !important;\n font-weight: 850 !important;\n line-height: 1.08 !important;\n text-transform: uppercase !important;\n letter-spacing: -1.5px !important;\n margin: 0 !important;\n }\n .blogs-hero-content {\n position: relative !important;\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n flex-direction: column !important;\n max-width: 1000px !important;\n margin: 0 auto !important;\n padding: 0 15px !important;\n box-sizing: border-box !important;\n }\n "}}],"$Lc"],"$Ld"]}]}]}]}],null,"$Le"]}],{},null,false,null]},null,false,"$@f"]},null,false,null],"$L10",false]],"m":"$undefined","G":["$11",["$L12"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +15:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +16:"$Sreact.suspense" +19:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1b:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"style":{"backgroundImage":"url(/images/home2-banner-1.webp)","backgroundPosition":"center center","backgroundRepeat":"no-repeat","backgroundSize":"cover"},"className":"custom-standard-hero-card","children":["$","div",null,{"className":"blogs-hero-content","children":["$","div",null,{"style":{"textAlign":"center","color":"#fff","zIndex":5},"children":["$","h1",null,{"className":"blogs-hero-title","children":["Delivering Trust.",["$","br",null,{}],["$","span",null,{"style":{"color":"#C01227"},"children":"Beyond Boundaries"}]]}]}]}]}]}] +13:T17ff, + .custom-blog-grid { + display: grid !important; + grid-template-columns: repeat(3, 1fr) !important; + gap: 40px !important; + width: 100% !important; + max-width: 1200px !important; + margin: 0 auto !important; + padding: 40px 20px !important; + } + + @media (max-width: 1024px) { + .custom-blog-grid { + grid-template-columns: repeat(2, 1fr) !important; + } + } + @media (max-width: 768px) { + .elementor-104 .elementor-element.elementor-element-c70681e { + margin-top: var(--space-section) !important; + margin-bottom: 16px !important; + } + .custom-blog-grid { + grid-template-columns: 1fr !important; + gap: 28px !important; + padding: 24px 20px !important; + } + } + + @media (max-width: 767px) { + .elementor-104 .elementor-element.elementor-element-c70681e { + --padding-left: 10px !important; + --padding-right: 10px !important; + padding-left: 10px !important; + padding-right: 10px !important; + } + .elementor-104 .elementor-element.elementor-element-3dec5cf { + --padding-left: 0px !important; + --padding-right: 0px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + .elementor-104 .elementor-element.elementor-element-aa12479, + .elementor-104 .elementor-element.elementor-element-aa12479 > .elementor-widget-container, + .elementor-104 .archive-listing, + .elementor-104 .custom-blog-grid { + width: 100% !important; + max-width: 100% !important; + } + .elementor-104 .custom-blog-grid { + padding-left: 0 !important; + padding-right: 0 !important; + } + } + + .custom-blog-card { + display: flex !important; + flex-direction: column !important; + justify-content: space-between !important; + height: 100% !important; + background: #ffffff !important; + border: 1px solid rgba(0, 0, 0, 0.08) !important; + border-radius: 28px !important; + padding: 28px !important; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important; + transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease !important; + cursor: pointer !important; + } + + .custom-blog-card:hover { + transform: translateY(-8px) !important; + box-shadow: 0 20px 40px rgba(192, 18, 39, 0.12) !important; + border-color: rgba(192, 18, 39, 0.2) !important; + } + + .custom-blog-title { + font-size: 20px !important; + font-weight: 800 !important; + color: #1e293b !important; + line-height: 1.35 !important; + text-transform: none !important; + letter-spacing: -0.4px !important; + margin: 0 0 12px 0 !important; + display: -webkit-box !important; + -webkit-line-clamp: 2 !important; + -webkit-box-orient: vertical !important; + overflow: hidden !important; + transition: color 0.2s ease !important; + font-family: var(--font-manrope), sans-serif !important; + } + + .custom-blog-card:hover .custom-blog-title { + color: #c01227 !important; + } + + .custom-blog-excerpt { + font-size: 13.5px !important; + font-weight: 500 !important; + color: #64748b !important; + line-height: 1.6 !important; + margin: 0 0 18px 0 !important; + text-transform: none !important; + font-family: var(--font-manrope), sans-serif !important; + } + + /* Bottom block pinned to the card base. Keeps Read More + image at the + same vertical position across cards with different text lengths. */ + .custom-blog-bottom { + display: flex !important; + flex-direction: column !important; + margin-top: auto !important; + } + + .custom-blog-readmore { + display: inline-flex !important; + align-items: center !important; + align-self: flex-start !important; + gap: 6px !important; + font-size: 13px !important; + font-weight: 800 !important; + color: #c01227 !important; + text-transform: uppercase !important; + letter-spacing: 0.5px !important; + margin: 0 0 24px 0 !important; + font-family: var(--font-manrope), sans-serif !important; + } + + .custom-blog-readmore-arrow { + transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) !important; + } + + .custom-blog-card:hover .custom-blog-readmore-arrow { + transform: translateX(5px) !important; + } + + .custom-blog-img-container { + position: relative !important; + width: 100% !important; + aspect-ratio: 4 / 3 !important; + border-radius: 20px !important; + overflow: hidden !important; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05) !important; + } + + .custom-blog-badge { + position: absolute !important; + top: 14px !important; + left: 14px !important; + z-index: 5 !important; + background: #c01227 !important; + color: #ffffff !important; + font-size: 9px !important; + font-weight: 800 !important; + text-transform: uppercase !important; + letter-spacing: 1.2px !important; + padding: 4px 10px !important; + border-radius: 6px !important; + box-shadow: 0 4px 10px rgba(192, 18, 39, 0.2) !important; + font-family: var(--font-manrope), sans-serif !important; + } + d:["$","div",null,{"className":"elementor-element elementor-element-c70681e e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"c70681e","data-element_type":"container","data-e-type":"container","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$13"}}],"$L14"]}] +e:["$","$L15",null,{"children":["$","$16",null,{"name":"Next.MetadataOutlet","children":"$@17"}]}] +18:[] +f:"$W18" +10:["$","$1","h",{"children":[null,["$","$L19",null,{"children":"$L1a"}],["$","div",null,{"hidden":true,"children":["$","$L1b",null,{"children":["$","$16",null,{"name":"Next.Metadata","children":"$L1c"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +12:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +1d:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ScrollReveal"] +1e:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],""] +1f:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"Image"] +14:["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-3dec5cf e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3dec5cf","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-aa12479 elementor-widget elementor-widget-logico_blog_listing","data-id":"aa12479","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_blog_listing.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"archive-listing","children":["$","div",null,{"className":"custom-blog-grid","children":[["$","$L1d","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"custom-blog-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Technology"}]]}]]}]]}]}],["$","$L1d","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"custom-blog-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Case Study"}]]}]]}]]}]}],["$","$L1d","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"custom-blog-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}]]}],"$L20"]}]}],"$L21","$L22","$L23","$L24","$L25","$L26"]}]}]}]}]}]}] +20:["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"MileTruth"}]]}]]}] +21:["$","$L1d","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"EV Fleet"}]]}]]}]]}]}] +22:["$","$L1d","why-mathematical-precision-beats-heuristics-in-routing",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Technology"}]]}]]}]]}]}] +23:["$","$L1d","fleet-reduction-without-compromising-delivery-volume",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Fleet Reduction Without Compromising Delivery Volume"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Fleet Management"}]]}]]}]]}]}] +24:["$","$L1d","building-a-greener-city-the-future-of-urban-logistics",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Building a Greener City: The Future of Urban Logistics"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Sustainability"}]]}]]}]]}]}] +25:["$","$L1d","how-doormile-maintains-99-9-sla-compliance-at-scale",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","p",null,{"className":"custom-blog-excerpt","children":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Operations"}]]}]]}]]}]}] +26:["$","$L1d","battery-simulation-the-secret-to-ev-route-pre-validation",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L1e",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L1f",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"EV Fleet"}]]}]]}]]}]}] +1a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +27:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +17:null +1c:[["$","title","0",{"children":"Blog – Doormile"}],["$","meta","1",{"name":"description","content":"Practical notes on delivery planning, EV fleet operations, route optimisation, charging, and last-mile performance from the Doormile team."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L27","7",{}]] diff --git a/build/.next/server/app/blog.segments/_head.segment.rsc b/build/.next/server/app/blog.segments/_head.segment.rsc new file mode 100644 index 0000000..548af7a --- /dev/null +++ b/build/.next/server/app/blog.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Blog – Doormile"}],["$","meta","1",{"name":"description","content":"Practical notes on delivery planning, EV fleet operations, route optimisation, charging, and last-mile performance from the Doormile team."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog.segments/_index.segment.rsc b/build/.next/server/app/blog.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog.segments/_tree.segment.rsc b/build/.next/server/app/blog.segments/_tree.segment.rsc new file mode 100644 index 0000000..6aaa8bb --- /dev/null +++ b/build/.next/server/app/blog.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/home2-banner-1.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog.segments/blog.segment.rsc b/build/.next/server/app/blog.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog.segments/blog/__PAGE__.segment.rsc b/build/.next/server/app/blog.segments/blog/__PAGE__.segment.rsc new file mode 100644 index 0000000..da4a877 --- /dev/null +++ b/build/.next/server/app/blog.segments/blog/__PAGE__.segment.rsc @@ -0,0 +1,176 @@ +1:"$Sreact.fragment" +5:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ScrollReveal"] +6:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],""] +7:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"Image"] +f:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +10:"$Sreact.suspense" +2:T17ff, + .custom-blog-grid { + display: grid !important; + grid-template-columns: repeat(3, 1fr) !important; + gap: 40px !important; + width: 100% !important; + max-width: 1200px !important; + margin: 0 auto !important; + padding: 40px 20px !important; + } + + @media (max-width: 1024px) { + .custom-blog-grid { + grid-template-columns: repeat(2, 1fr) !important; + } + } + @media (max-width: 768px) { + .elementor-104 .elementor-element.elementor-element-c70681e { + margin-top: var(--space-section) !important; + margin-bottom: 16px !important; + } + .custom-blog-grid { + grid-template-columns: 1fr !important; + gap: 28px !important; + padding: 24px 20px !important; + } + } + + @media (max-width: 767px) { + .elementor-104 .elementor-element.elementor-element-c70681e { + --padding-left: 10px !important; + --padding-right: 10px !important; + padding-left: 10px !important; + padding-right: 10px !important; + } + .elementor-104 .elementor-element.elementor-element-3dec5cf { + --padding-left: 0px !important; + --padding-right: 0px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + .elementor-104 .elementor-element.elementor-element-aa12479, + .elementor-104 .elementor-element.elementor-element-aa12479 > .elementor-widget-container, + .elementor-104 .archive-listing, + .elementor-104 .custom-blog-grid { + width: 100% !important; + max-width: 100% !important; + } + .elementor-104 .custom-blog-grid { + padding-left: 0 !important; + padding-right: 0 !important; + } + } + + .custom-blog-card { + display: flex !important; + flex-direction: column !important; + justify-content: space-between !important; + height: 100% !important; + background: #ffffff !important; + border: 1px solid rgba(0, 0, 0, 0.08) !important; + border-radius: 28px !important; + padding: 28px !important; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important; + transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s ease !important; + cursor: pointer !important; + } + + .custom-blog-card:hover { + transform: translateY(-8px) !important; + box-shadow: 0 20px 40px rgba(192, 18, 39, 0.12) !important; + border-color: rgba(192, 18, 39, 0.2) !important; + } + + .custom-blog-title { + font-size: 20px !important; + font-weight: 800 !important; + color: #1e293b !important; + line-height: 1.35 !important; + text-transform: none !important; + letter-spacing: -0.4px !important; + margin: 0 0 12px 0 !important; + display: -webkit-box !important; + -webkit-line-clamp: 2 !important; + -webkit-box-orient: vertical !important; + overflow: hidden !important; + transition: color 0.2s ease !important; + font-family: var(--font-manrope), sans-serif !important; + } + + .custom-blog-card:hover .custom-blog-title { + color: #c01227 !important; + } + + .custom-blog-excerpt { + font-size: 13.5px !important; + font-weight: 500 !important; + color: #64748b !important; + line-height: 1.6 !important; + margin: 0 0 18px 0 !important; + text-transform: none !important; + font-family: var(--font-manrope), sans-serif !important; + } + + /* Bottom block pinned to the card base. Keeps Read More + image at the + same vertical position across cards with different text lengths. */ + .custom-blog-bottom { + display: flex !important; + flex-direction: column !important; + margin-top: auto !important; + } + + .custom-blog-readmore { + display: inline-flex !important; + align-items: center !important; + align-self: flex-start !important; + gap: 6px !important; + font-size: 13px !important; + font-weight: 800 !important; + color: #c01227 !important; + text-transform: uppercase !important; + letter-spacing: 0.5px !important; + margin: 0 0 24px 0 !important; + font-family: var(--font-manrope), sans-serif !important; + } + + .custom-blog-readmore-arrow { + transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) !important; + } + + .custom-blog-card:hover .custom-blog-readmore-arrow { + transform: translateX(5px) !important; + } + + .custom-blog-img-container { + position: relative !important; + width: 100% !important; + aspect-ratio: 4 / 3 !important; + border-radius: 20px !important; + overflow: hidden !important; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05) !important; + } + + .custom-blog-badge { + position: absolute !important; + top: 14px !important; + left: 14px !important; + z-index: 5 !important; + background: #c01227 !important; + color: #ffffff !important; + font-size: 9px !important; + font-weight: 800 !important; + text-transform: uppercase !important; + letter-spacing: 1.2px !important; + padding: 4px 10px !important; + border-radius: 6px !important; + box-shadow: 0 4px 10px rgba(192, 18, 39, 0.2) !important; + font-family: var(--font-manrope), sans-serif !important; + } + 0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"blogs","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"104","className":"elementor elementor-104","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n .blogs-hero-title {\n color: #ffffff !important;\n font-family: var(--font-manrope), sans-serif !important;\n font-size: clamp(34px, 5.5vw, 68px) !important;\n font-weight: 850 !important;\n line-height: 1.08 !important;\n text-transform: uppercase !important;\n letter-spacing: -1.5px !important;\n margin: 0 !important;\n }\n .blogs-hero-content {\n position: relative !important;\n width: 100% !important;\n height: 100% !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n flex-direction: column !important;\n max-width: 1000px !important;\n margin: 0 auto !important;\n padding: 0 15px !important;\n box-sizing: border-box !important;\n }\n "}}],["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"style":{"backgroundImage":"url(/images/home2-banner-1.webp)","backgroundPosition":"center center","backgroundRepeat":"no-repeat","backgroundSize":"cover"},"className":"custom-standard-hero-card","children":["$","div",null,{"className":"blogs-hero-content","children":["$","div",null,{"style":{"textAlign":"center","color":"#fff","zIndex":5},"children":["$","h1",null,{"className":"blogs-hero-title","children":["Delivering Trust.",["$","br",null,{}],["$","span",null,{"style":{"color":"#C01227"},"children":"Beyond Boundaries"}]]}]}]}]}]}]],["$","div",null,{"className":"elementor-element elementor-element-c70681e e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"c70681e","data-element_type":"container","data-e-type":"container","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3"]}]]}]}]}]}],null,"$L4"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-3dec5cf e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3dec5cf","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-aa12479 elementor-widget elementor-widget-logico_blog_listing","data-id":"aa12479","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_blog_listing.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"archive-listing","children":["$","div",null,{"className":"custom-blog-grid","children":[["$","$L5","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"custom-blog-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Technology"}]]}]]}]]}]}],["$","$L5","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"custom-blog-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Case Study"}]]}]]}]]}]}],["$","$L5","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"custom-blog-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}]]}],"$L8"]}]}],"$L9","$La","$Lb","$Lc","$Ld","$Le"]}]}]}]}]}]}] +4:["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}] +8:["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"MileTruth"}]]}]]}] +9:["$","$L5","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"EV Fleet"}]]}]]}]]}]}] +a:["$","$L5","why-mathematical-precision-beats-heuristics-in-routing",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Technology"}]]}]]}]]}]}] +b:["$","$L5","fleet-reduction-without-compromising-delivery-volume",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Fleet Reduction Without Compromising Delivery Volume"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Fleet Management"}]]}]]}]]}]}] +c:["$","$L5","building-a-greener-city-the-future-of-urban-logistics",{"delay":0,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Building a Greener City: The Future of Urban Logistics"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Sustainability"}]]}]]}]]}]}] +d:["$","$L5","how-doormile-maintains-99-9-sla-compliance-at-scale",{"delay":0.08,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","p",null,{"className":"custom-blog-excerpt","children":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"Operations"}]]}]]}]]}]}] +e:["$","$L5","battery-simulation-the-secret-to-ev-route-pre-validation",{"delay":0.16,"duration":0.8,"yOffset":35,"children":["$","$L6",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"custom-blog-card","style":{"textDecoration":"none"},"children":[["$","div",null,{"className":"flex flex-col","children":[["$","h3",null,{"className":"custom-blog-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","p",null,{"className":"custom-blog-excerpt","children":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}]]}],["$","div",null,{"className":"custom-blog-bottom","children":[["$","span",null,{"className":"custom-blog-readmore","children":["Read More",["$","svg",null,{"className":"custom-blog-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","div",null,{"className":"custom-blog-img-container","children":[["$","$L7",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, 33vw"}],["$","span",null,{"className":"custom-blog-badge","children":"EV Fleet"}]]}]]}]]}]}] +11:null diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.html b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.html new file mode 100644 index 0000000..8796451 --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.html @@ -0,0 +1,1168 @@ +42% Less Distance: Insights from Our Hyderabad Hub – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Case Study

42% Less Distance: Insights from Our Hyderabad Hub

Doormile Team2 min read

Numbers settle arguments. At our Hyderabad hub, the goal was simple: reduce avoidable distance without missing customer commitments. The result was a 42% reduction in total distance travelled.

Hyderabad is not an easy city for delivery planning. Dense commercial areas, fast-growing suburbs, flyover work, narrow service lanes, apartment security checks, and sudden traffic build-up can all change the day.

The baseline

Before MileTruth, the hub planned routes in the usual way. Zones were drawn from experience, dispatchers sequenced stops manually, and riders adjusted on the road when something changed.

That process worked, but it carried hidden costs. Two riders might cross the same area in the same hour. A vehicle might take a longer loop to avoid one late stop. A dispatcher might hold back an order because the best vehicle was not obvious in the moment.

  • Zone-based allocation that missed nearby cross-zone drops
  • Manual stop sequencing during busy dispatch windows
  • ETAs checked after routing instead of before dispatch
  • Traffic and delay handling that depended on phone calls from riders

What changed

The main change was treating the day's orders as one connected plan instead of separate zone lists. The route plan considered distance, rider capacity, delivery windows, traffic, and vehicle availability together.

During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, we reduced missed delivery windows and improved on-time performance.

Hyderabad delivery hub routing analysis
Planning the day's deliveries together removed repeated cross-town travel.

The results

  • 42% reduction in total distance travelled across the hub
  • 37% fewer vehicles required for the same delivery volume
  • No SLA misses during the measured deployment window
  • Lower fuel use and fewer unnecessary kilometres per parcel

The improvement did not come from asking riders to work harder. It came from giving the team a better route plan before the vehicles left.

Hyderabad Hub Operations

Why this applies beyond one hub

The Hyderabad result was not a one-city exception. Most hubs deal with the same issues: overlapping routes, conservative sequencing, traffic surprises, charging constraints, and last-minute order changes.

A 42% cut in distance changes the cost of running the operation. It also gives dispatchers more breathing room when the day gets messy.

\ No newline at end of file diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.meta b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.meta new file mode 100644 index 0000000..486c73c --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/42-less-distance-insights-from-our-hyderabad-hub" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.rsc b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.rsc new file mode 100644 index 0000000..4cef614 --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.rsc @@ -0,0 +1,547 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","42-less-distance-insights-from-our-hyderabad-hub"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","42-less-distance-insights-from-our-hyderabad-hub","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-15.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"42% Less Distance: Insights from Our Hyderabad Hub\",\"description\":\"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning.\",\"image\":[\"https://doormile.com/images/blog-post-pic-15.webp\"],\"datePublished\":\"2025-09-18T00:00:00.000Z\",\"dateModified\":\"2025-09-18T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub\"},\"articleSection\":\"Case Study\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"42% Less Distance: Insights from Our Hyderabad Hub\",\"item\":\"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-15.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-15.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Case Study"}],["$","h1",null,{"className":"dm-banner-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-09-18","children":"Sep 18, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Numbers settle arguments. At our Hyderabad hub, the goal was simple: reduce avoidable distance without missing customer commitments. The result was a 42% reduction in total distance travelled."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Hyderabad is not an easy city for delivery planning. Dense commercial areas, fast-growing suburbs, flyover work, narrow service lanes, apartment security checks, and sudden traffic build-up can all change the day."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The baseline"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Before MileTruth, the hub planned routes in the usual way. Zones were drawn from experience, dispatchers sequenced stops manually, and riders adjusted on the road when something changed."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"That process worked, but it carried hidden costs. Two riders might cross the same area in the same hour. A vehicle might take a longer loop to avoid one late stop. A dispatcher might hold back an order because the best vehicle was not obvious in the moment."}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Zone-based allocation that missed nearby cross-zone drops"}],["$","li","1",{"children":"Manual stop sequencing during busy dispatch windows"}],["$","li","2",{"children":"ETAs checked after routing instead of before dispatch"}],["$","li","3",{"children":"Traffic and delay handling that depended on phone calls from riders"}]]}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"What changed"}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The main change was treating the day's orders as one connected plan instead of separate zone lists. The route plan considered distance, rider capacity, delivery windows, traffic, and vehicle availability together."}]}],"$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23","$L24"]}]]}],"$L25"]}]]}] +26:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$26"}}],"$L27"]}] +28:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +29:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, we reduced missed delivery windows and improved on-time performance."}]}] +1e:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L28",null,{"src":"/images/last-mile-approach.webp","alt":"Hyderabad delivery hub routing analysis","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"Planning the day's deliveries together removed repeated cross-town travel."}]]}]}] +1f:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The results"}]}] +20:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"42% reduction in total distance travelled across the hub"}],["$","li","1",{"children":"37% fewer vehicles required for the same delivery volume"}],["$","li","2",{"children":"No SLA misses during the measured deployment window"}],["$","li","3",{"children":"Lower fuel use and fewer unnecessary kilometres per parcel"}]]}]}] +21:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"The improvement did not come from asking riders to work harder. It came from giving the team a better route plan before the vehicles left."}],["$","cite",null,{"children":"Hyderabad Hub Operations"}]]}]}] +22:["$","$L1c","12",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Why this applies beyond one hub"}]}] +23:["$","$L1c","13",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The Hyderabad result was not a one-city exception. Most hubs deal with the same issues: overlapping routes, conservative sequencing, traffic surprises, charging constraints, and last-minute order changes."}]}] +24:["$","$L1c","14",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A 42% cut in distance changes the cost of running the operation. It also gives dispatchers more breathing room when the day gets messy."}]}] +25:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L29",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L28",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],"$L2a"]}]}],"$L2b","$L2c","$L2d"]}]]}],"$L2e"]}]}] +27:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]]}],["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"MileTruth"}],["$","span",null,{"className":"dm-prevnext-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L28",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L28",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],"$L2f","$L30"]}]]}]}],"$L31"]}]]}],"$L32"]}] +2a:["$","span",null,{"className":"dm-blog-category-count","children":1}] +2b:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2c:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2d:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2e:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2f:["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}] +30:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +31:["$","$L1c","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L28",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +32:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +33:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"42% Less Distance: Insights from Our Hyderabad Hub – Doormile"}],["$","meta","1",{"name":"description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Case Study,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub"}],["$","meta","6",{"property":"og:title","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","7",{"property":"og:description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-15.webp"}],["$","meta","11",{"property":"og:image:alt","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-09-18T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","17",{"name":"twitter:description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-15.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L33","23",{}]] diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_full.segment.rsc b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_full.segment.rsc new file mode 100644 index 0000000..4cef614 --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_full.segment.rsc @@ -0,0 +1,547 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","42-less-distance-insights-from-our-hyderabad-hub"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","42-less-distance-insights-from-our-hyderabad-hub","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-15.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"42% Less Distance: Insights from Our Hyderabad Hub\",\"description\":\"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning.\",\"image\":[\"https://doormile.com/images/blog-post-pic-15.webp\"],\"datePublished\":\"2025-09-18T00:00:00.000Z\",\"dateModified\":\"2025-09-18T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub\"},\"articleSection\":\"Case Study\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"42% Less Distance: Insights from Our Hyderabad Hub\",\"item\":\"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-15.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-15.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Case Study"}],["$","h1",null,{"className":"dm-banner-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-09-18","children":"Sep 18, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Numbers settle arguments. At our Hyderabad hub, the goal was simple: reduce avoidable distance without missing customer commitments. The result was a 42% reduction in total distance travelled."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Hyderabad is not an easy city for delivery planning. Dense commercial areas, fast-growing suburbs, flyover work, narrow service lanes, apartment security checks, and sudden traffic build-up can all change the day."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The baseline"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Before MileTruth, the hub planned routes in the usual way. Zones were drawn from experience, dispatchers sequenced stops manually, and riders adjusted on the road when something changed."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"That process worked, but it carried hidden costs. Two riders might cross the same area in the same hour. A vehicle might take a longer loop to avoid one late stop. A dispatcher might hold back an order because the best vehicle was not obvious in the moment."}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Zone-based allocation that missed nearby cross-zone drops"}],["$","li","1",{"children":"Manual stop sequencing during busy dispatch windows"}],["$","li","2",{"children":"ETAs checked after routing instead of before dispatch"}],["$","li","3",{"children":"Traffic and delay handling that depended on phone calls from riders"}]]}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"What changed"}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The main change was treating the day's orders as one connected plan instead of separate zone lists. The route plan considered distance, rider capacity, delivery windows, traffic, and vehicle availability together."}]}],"$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23","$L24"]}]]}],"$L25"]}]]}] +26:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$26"}}],"$L27"]}] +28:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +29:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, we reduced missed delivery windows and improved on-time performance."}]}] +1e:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L28",null,{"src":"/images/last-mile-approach.webp","alt":"Hyderabad delivery hub routing analysis","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"Planning the day's deliveries together removed repeated cross-town travel."}]]}]}] +1f:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The results"}]}] +20:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"42% reduction in total distance travelled across the hub"}],["$","li","1",{"children":"37% fewer vehicles required for the same delivery volume"}],["$","li","2",{"children":"No SLA misses during the measured deployment window"}],["$","li","3",{"children":"Lower fuel use and fewer unnecessary kilometres per parcel"}]]}]}] +21:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"The improvement did not come from asking riders to work harder. It came from giving the team a better route plan before the vehicles left."}],["$","cite",null,{"children":"Hyderabad Hub Operations"}]]}]}] +22:["$","$L1c","12",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Why this applies beyond one hub"}]}] +23:["$","$L1c","13",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The Hyderabad result was not a one-city exception. Most hubs deal with the same issues: overlapping routes, conservative sequencing, traffic surprises, charging constraints, and last-minute order changes."}]}] +24:["$","$L1c","14",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A 42% cut in distance changes the cost of running the operation. It also gives dispatchers more breathing room when the day gets messy."}]}] +25:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L29",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L28",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],"$L2a"]}]}],"$L2b","$L2c","$L2d"]}]]}],"$L2e"]}]}] +27:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]]}],["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"MileTruth"}],["$","span",null,{"className":"dm-prevnext-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L28",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L28",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L28",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],"$L2f","$L30"]}]]}]}],"$L31"]}]]}],"$L32"]}] +2a:["$","span",null,{"className":"dm-blog-category-count","children":1}] +2b:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2c:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2d:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2e:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2f:["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}] +30:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +31:["$","$L1c","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L28",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +32:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +33:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"42% Less Distance: Insights from Our Hyderabad Hub – Doormile"}],["$","meta","1",{"name":"description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Case Study,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub"}],["$","meta","6",{"property":"og:title","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","7",{"property":"og:description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-15.webp"}],["$","meta","11",{"property":"og:image:alt","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-09-18T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","17",{"name":"twitter:description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-15.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L33","23",{}]] diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_head.segment.rsc b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_head.segment.rsc new file mode 100644 index 0000000..44c036f --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"42% Less Distance: Insights from Our Hyderabad Hub – Doormile"}],["$","meta","1",{"name":"description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Case Study,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub"}],["$","meta","6",{"property":"og:title","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","7",{"property":"og:description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-15.webp"}],["$","meta","11",{"property":"og:image:alt","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-09-18T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","meta","17",{"name":"twitter:description","content":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-15.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_index.segment.rsc b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_tree.segment.rsc b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_tree.segment.rsc new file mode 100644 index 0000000..7787788 --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/blog-post-pic-15.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"42-less-distance-insights-from-our-hyderabad-hub","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog.segment.rsc b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..6506741 --- /dev/null +++ b/build/.next/server/app/blog/42-less-distance-insights-from-our-hyderabad-hub.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,522 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +15:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +16:"$Sreact.suspense" +18:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +19:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/blog-post-pic-15.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"42% Less Distance: Insights from Our Hyderabad Hub\",\"description\":\"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning.\",\"image\":[\"https://doormile.com/images/blog-post-pic-15.webp\"],\"datePublished\":\"2025-09-18T00:00:00.000Z\",\"dateModified\":\"2025-09-18T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub\"},\"articleSection\":\"Case Study\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"42% Less Distance: Insights from Our Hyderabad Hub\",\"item\":\"https://doormile.com/blog/42-less-distance-insights-from-our-hyderabad-hub\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-15.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-15.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Case Study"}],["$","h1",null,{"className":"dm-banner-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-09-18","children":"Sep 18, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Numbers settle arguments. At our Hyderabad hub, the goal was simple: reduce avoidable distance without missing customer commitments. The result was a 42% reduction in total distance travelled."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Hyderabad is not an easy city for delivery planning. Dense commercial areas, fast-growing suburbs, flyover work, narrow service lanes, apartment security checks, and sudden traffic build-up can all change the day."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The baseline"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Before MileTruth, the hub planned routes in the usual way. Zones were drawn from experience, dispatchers sequenced stops manually, and riders adjusted on the road when something changed."}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"That process worked, but it carried hidden costs. Two riders might cross the same area in the same hour. A vehicle might take a longer loop to avoid one late stop. A dispatcher might hold back an order because the best vehicle was not obvious in the moment."}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Zone-based allocation that missed nearby cross-zone drops"}],["$","li","1",{"children":"Manual stop sequencing during busy dispatch windows"}],["$","li","2",{"children":"ETAs checked after routing instead of before dispatch"}],["$","li","3",{"children":"Traffic and delay handling that depended on phone calls from riders"}]]}]}],["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"What changed"}]}],["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The main change was treating the day's orders as one connected plan instead of separate zone lists. The route plan considered distance, rider capacity, delivery windows, traffic, and vehicle availability together."}]}],"$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11"]}]]}],"$L12"]}]]}] +13:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$13"}}],"$L14"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L15",null,{"children":["$","$16",null,{"name":"Next.MetadataOutlet","children":"$@17"}]}] +a:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, we reduced missed delivery windows and improved on-time performance."}]}] +b:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L18",null,{"src":"/images/last-mile-approach.webp","alt":"Hyderabad delivery hub routing analysis","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"Planning the day's deliveries together removed repeated cross-town travel."}]]}]}] +c:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The results"}]}] +d:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"42% reduction in total distance travelled across the hub"}],["$","li","1",{"children":"37% fewer vehicles required for the same delivery volume"}],["$","li","2",{"children":"No SLA misses during the measured deployment window"}],["$","li","3",{"children":"Lower fuel use and fewer unnecessary kilometres per parcel"}]]}]}] +e:["$","$L9","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"The improvement did not come from asking riders to work harder. It came from giving the team a better route plan before the vehicles left."}],["$","cite",null,{"children":"Hyderabad Hub Operations"}]]}]}] +f:["$","$L9","12",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Why this applies beyond one hub"}]}] +10:["$","$L9","13",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The Hyderabad result was not a one-city exception. Most hubs deal with the same issues: overlapping routes, conservative sequencing, traffic surprises, charging constraints, and last-minute order changes."}]}] +11:["$","$L9","14",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A 42% cut in distance changes the cost of running the operation. It also gives dispatchers more breathing room when the day gets messy."}]}] +12:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L19",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L18",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L18",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L18",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L8",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L18",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],"$L1a"]}]}],"$L1b","$L1c","$L1d"]}]]}],"$L1e"]}]}] +14:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L18",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]]}],["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"MileTruth"}],["$","span",null,{"className":"dm-prevnext-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L18",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L18",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L18",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],"$L1f","$L20"]}]]}]}],"$L21"]}]]}],"$L22"]}] +17:null +1a:["$","span",null,{"className":"dm-blog-category-count","children":1}] +1b:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1c:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1d:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1e:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1f:["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}] +20:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +21:["$","$L9","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L18",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +22:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/blog/[slug]/page.js b/build/.next/server/app/blog/[slug]/page.js new file mode 100644 index 0000000..99642ce --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page.js @@ -0,0 +1,18 @@ +var R=require("../../../chunks/ssr/[turbopack]_runtime.js")("server/app/blog/[slug]/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ujg1rs._.js") +R.c("server/chunks/ssr/src_0nu2mva._.js") +R.c("server/chunks/ssr/_0sw0r2k._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_11dij6w._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a~j._2.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_blog_[slug]_page_actions_0t.ya_n.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(47413) +module.exports=R.m(47413).exports diff --git a/build/.next/server/app/blog/[slug]/page.js.map b/build/.next/server/app/blog/[slug]/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/[slug]/page.js.nft.json b/build/.next/server/app/blog/[slug]/page.js.nft.json new file mode 100644 index 0000000..007bf17 --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../../chunks/ssr/[root-of-the-server]__0ujg1rs._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_0p0sfo8._.js","../../../chunks/ssr/_0sw0r2k._.js","../../../chunks/ssr/_next-internal_server_app_blog_[slug]_page_actions_0t.ya_n.js","../../../chunks/ssr/node_modules_0oplp32._.js","../../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../../chunks/ssr/node_modules_next_dist_11dij6w._.js","../../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a~j._2.js","../../../chunks/ssr/src_0nu2mva._.js","../../../chunks/ssr/src_components_blog_BlogSearch_tsx_0yt9s_9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/blog/[slug]/page/app-paths-manifest.json b/build/.next/server/app/blog/[slug]/page/app-paths-manifest.json new file mode 100644 index 0000000..4a1de84 --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/blog/[slug]/page": "app/blog/[slug]/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/blog/[slug]/page/build-manifest.json b/build/.next/server/app/blog/[slug]/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/[slug]/page/next-font-manifest.json b/build/.next/server/app/blog/[slug]/page/next-font-manifest.json new file mode 100644 index 0000000..aa182e4 --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/blog/[slug]/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/blog/[slug]/page/react-loadable-manifest.json b/build/.next/server/app/blog/[slug]/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/blog/[slug]/page/server-reference-manifest.json b/build/.next/server/app/blog/[slug]/page/server-reference-manifest.json new file mode 100644 index 0000000..b41012e --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/blog/[slug]/page": { + "moduleId": 68232, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/blog/[slug]/page_client-reference-manifest.js b/build/.next/server/app/blog/[slug]/page_client-reference-manifest.js new file mode 100644 index 0000000..6c58a85 --- /dev/null +++ b/build/.next/server/app/blog/[slug]/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/blog/[slug]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js ":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js ":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"async":false},"[project]/src/animations/Reveal.tsx ":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"async":false},"[project]/src/animations/Reveal.tsx":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"async":false},"[project]/src/components/blog/BlogSearch.tsx ":{"id":23096,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"async":false},"[project]/src/components/blog/BlogSearch.tsx":{"id":23096,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"22016":{"*":{"id":38246,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_blog_BlogSearch_tsx_0yt9s_9._.js"],"async":false}},"5500":{"*":{"id":67161,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_blog_BlogSearch_tsx_0yt9s_9._.js"],"async":false}},"2018":{"*":{"id":36002,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_blog_BlogSearch_tsx_0yt9s_9._.js"],"async":false}},"23096":{"*":{"id":89104,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_blog_BlogSearch_tsx_0yt9s_9._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"22016":{"*":{"id":84707,"name":"*","chunks":[],"async":false}},"5500":{"*":{"id":43489,"name":"*","chunks":[],"async":false}},"2018":{"*":{"id":9386,"name":"*","chunks":[],"async":false}},"23096":{"*":{"id":84047,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/blog/[slug]/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/blog/[slug]/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/16tb205t0~jhb.js"]}}; + diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.html b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.html new file mode 100644 index 0000000..24c0d35 --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.html @@ -0,0 +1,1168 @@ +Battery Simulation: The Secret to EV Route Pre-Validation – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

EV Fleet

Battery Simulation: The Secret to EV Route Pre-Validation

Doormile Team2 min read

A stranded EV is not just a late delivery. It means a vehicle is out of service, a customer is waiting, and the hub has to arrange recovery. Range checks need to happen before dispatch.

In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Battery Simulation: The Secret to EV Route Pre-Validation looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub.

Why this matters for fleet teams

Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day.

  • Fewer vehicles needed for the same number of drops
  • Lower cost per drop through better stop sequencing
  • ETAs that match traffic, distance, and delivery windows
  • Less fuel or charge used per completed order

From orders to dispatch

A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road.

Battery Simulation: The Secret to EV Route Pre-Validation
EV Fleet: route planning decisions made before dispatch.

A route should be checked before the rider leaves, not explained after the customer calls.

Doormile Operations

Putting it into practice

The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time.

  1. Benchmark today's distance, fleet size, and on-time rate.
  2. Include vehicle capacity, delivery windows, rider shifts, and battery charge.
  3. Check routes against traffic and customer commitments before dispatch.
  4. Compare the next dispatch cycle against the old plan.

Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead.

\ No newline at end of file diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.meta b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.meta new file mode 100644 index 0000000..56430fc --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/battery-simulation-the-secret-to-ev-route-pre-validation" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.rsc b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.rsc new file mode 100644 index 0000000..0b69507 --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.rsc @@ -0,0 +1,544 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","battery-simulation-the-secret-to-ev-route-pre-validation"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","battery-simulation-the-secret-to-ev-route-pre-validation","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-3.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Battery Simulation: The Secret to EV Route Pre-Validation\",\"description\":\"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan.\",\"image\":[\"https://doormile.com/images/blog-post-pic-3.webp\"],\"datePublished\":\"2025-06-12T00:00:00.000Z\",\"dateModified\":\"2025-06-12T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation\"},\"articleSection\":\"EV Fleet\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Battery Simulation: The Secret to EV Route Pre-Validation\",\"item\":\"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-3.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-3.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"EV Fleet"}],["$","h1",null,{"className":"dm-banner-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-06-12","children":"Jun 12, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"A stranded EV is not just a late delivery. It means a vehicle is out of service, a customer is waiting, and the hub has to arrange recovery. Range checks need to happen before dispatch."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Battery Simulation: The Secret to EV Route Pre-Validation looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$L1d","$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +1e:["$","figcaption",null,{"children":"EV Fleet: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Operations"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]]}],["$","span",null,{"className":"dm-prevnext-placeholder"}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":["$L2d","$L2e"]}]}]]}]]}],"$L2f"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}] +2e:["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2f:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +30:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Battery Simulation: The Secret to EV Route Pre-Validation – Doormile"}],["$","meta","1",{"name":"description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"EV Fleet,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation"}],["$","meta","6",{"property":"og:title","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","7",{"property":"og:description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-3.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-06-12T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","17",{"name":"twitter:description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-3.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L30","23",{}]] diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_full.segment.rsc b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_full.segment.rsc new file mode 100644 index 0000000..0b69507 --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_full.segment.rsc @@ -0,0 +1,544 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","battery-simulation-the-secret-to-ev-route-pre-validation"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","battery-simulation-the-secret-to-ev-route-pre-validation","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-3.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Battery Simulation: The Secret to EV Route Pre-Validation\",\"description\":\"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan.\",\"image\":[\"https://doormile.com/images/blog-post-pic-3.webp\"],\"datePublished\":\"2025-06-12T00:00:00.000Z\",\"dateModified\":\"2025-06-12T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation\"},\"articleSection\":\"EV Fleet\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Battery Simulation: The Secret to EV Route Pre-Validation\",\"item\":\"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-3.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-3.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"EV Fleet"}],["$","h1",null,{"className":"dm-banner-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-06-12","children":"Jun 12, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"A stranded EV is not just a late delivery. It means a vehicle is out of service, a customer is waiting, and the hub has to arrange recovery. Range checks need to happen before dispatch."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Battery Simulation: The Secret to EV Route Pre-Validation looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$L1d","$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +1e:["$","figcaption",null,{"children":"EV Fleet: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Operations"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]]}],["$","span",null,{"className":"dm-prevnext-placeholder"}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":["$L2d","$L2e"]}]}]]}]]}],"$L2f"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}] +2e:["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2f:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +30:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Battery Simulation: The Secret to EV Route Pre-Validation – Doormile"}],["$","meta","1",{"name":"description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"EV Fleet,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation"}],["$","meta","6",{"property":"og:title","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","7",{"property":"og:description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-3.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-06-12T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","17",{"name":"twitter:description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-3.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L30","23",{}]] diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_head.segment.rsc b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_head.segment.rsc new file mode 100644 index 0000000..d371dab --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Battery Simulation: The Secret to EV Route Pre-Validation – Doormile"}],["$","meta","1",{"name":"description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"EV Fleet,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation"}],["$","meta","6",{"property":"og:title","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","7",{"property":"og:description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-3.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-06-12T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","meta","17",{"name":"twitter:description","content":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-3.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_index.segment.rsc b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_tree.segment.rsc b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_tree.segment.rsc new file mode 100644 index 0000000..c03f7f1 --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/blog-post-pic-3.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"battery-simulation-the-secret-to-ev-route-pre-validation","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog.segment.rsc b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..6feef7c --- /dev/null +++ b/build/.next/server/app/blog/battery-simulation-the-secret-to-ev-route-pre-validation.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,519 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +15:"$Sreact.suspense" +17:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +18:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/blog-post-pic-3.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Battery Simulation: The Secret to EV Route Pre-Validation\",\"description\":\"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan.\",\"image\":[\"https://doormile.com/images/blog-post-pic-3.webp\"],\"datePublished\":\"2025-06-12T00:00:00.000Z\",\"dateModified\":\"2025-06-12T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation\"},\"articleSection\":\"EV Fleet\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Battery Simulation: The Secret to EV Route Pre-Validation\",\"item\":\"https://doormile.com/blog/battery-simulation-the-secret-to-ev-route-pre-validation\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-3.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-3.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"EV Fleet"}],["$","h1",null,{"className":"dm-banner-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-06-12","children":"Jun 12, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"A stranded EV is not just a late delivery. It means a vehicle is out of service, a customer is waiting, and the hub has to arrange recovery. Range checks need to happen before dispatch."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Battery Simulation: The Secret to EV Route Pre-Validation looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$La","$Lb"]}]}],"$Lc","$Ld","$Le","$Lf","$L10"]}]]}],"$L11"]}]]}] +12:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$12"}}],"$L13"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}] +a:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L17",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +b:["$","figcaption",null,{"children":"EV Fleet: route planning decisions made before dispatch."}] +c:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +d:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +e:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +f:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +10:["$","$L9","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +11:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L18",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L19","$L1a","$L1b"]}]]}],"$L1c"]}]}] +13:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L8",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Operations"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]]}],["$","span",null,{"className":"dm-prevnext-placeholder"}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":["$L1d","$L1e"]}]}]]}]]}],"$L1f"]}] +16:null +19:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1a:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1b:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1d:["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}] +1e:["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1f:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.html b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.html new file mode 100644 index 0000000..11c6e55 --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.html @@ -0,0 +1,1168 @@ +Building a Greener City: The Future of Urban Logistics – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Sustainability

Building a Greener City: The Future of Urban Logistics

Doormile Team2 min read

Cleaner delivery is becoming an operating requirement, not just a brand message. It depends on EV adoption and route plans that make those vehicles practical every day.

In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Building a Greener City: The Future of Urban Logistics looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub.

Why this matters for fleet teams

Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day.

  • Fewer vehicles needed for the same number of drops
  • Lower cost per drop through better stop sequencing
  • ETAs that match traffic, distance, and delivery windows
  • Less fuel or charge used per completed order

From orders to dispatch

A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road.

Building a Greener City: The Future of Urban Logistics
Sustainability: route planning decisions made before dispatch.

A route should be checked before the rider leaves, not explained after the customer calls.

Doormile Operations

Putting it into practice

The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time.

  1. Benchmark today's distance, fleet size, and on-time rate.
  2. Include vehicle capacity, delivery windows, rider shifts, and battery charge.
  3. Check routes against traffic and customer commitments before dispatch.
  4. Compare the next dispatch cycle against the old plan.

Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead.

\ No newline at end of file diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.meta b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.meta new file mode 100644 index 0000000..8271596 --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/building-a-greener-city-the-future-of-urban-logistics" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.rsc b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.rsc new file mode 100644 index 0000000..8f2c8dd --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.rsc @@ -0,0 +1,545 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","building-a-greener-city-the-future-of-urban-logistics"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","building-a-greener-city-the-future-of-urban-logistics","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-6.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Building a Greener City: The Future of Urban Logistics\",\"description\":\"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge.\",\"image\":[\"https://doormile.com/images/blog-post-pic-6.webp\"],\"datePublished\":\"2025-07-10T00:00:00.000Z\",\"dateModified\":\"2025-07-10T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics\"},\"articleSection\":\"Sustainability\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Building a Greener City: The Future of Urban Logistics\",\"item\":\"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-6.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-6.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Sustainability"}],["$","h1",null,{"className":"dm-banner-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Building a Greener City: The Future of Urban Logistics"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-07-10","children":"Jul 10, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Cleaner delivery is becoming an operating requirement, not just a brand message. It depends on EV adoption and route plans that make those vehicles practical every day."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Building a Greener City: The Future of Urban Logistics looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$L1d","$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +1e:["$","figcaption",null,{"children":"Sustainability: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Fleet Management"}],["$","span",null,{"className":"dm-prevnext-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]]}],["$","$L1b",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Operations"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L2d","$L2e"]}]]}]}],"$L2f"]}]]}],"$L30"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +2f:["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +30:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +31:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Building a Greener City: The Future of Urban Logistics – Doormile"}],["$","meta","1",{"name":"description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Sustainability,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics"}],["$","meta","6",{"property":"og:title","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","7",{"property":"og:description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-6.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-07-10T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","17",{"name":"twitter:description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-6.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L31","23",{}]] diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_full.segment.rsc b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_full.segment.rsc new file mode 100644 index 0000000..8f2c8dd --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_full.segment.rsc @@ -0,0 +1,545 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","building-a-greener-city-the-future-of-urban-logistics"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","building-a-greener-city-the-future-of-urban-logistics","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-6.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Building a Greener City: The Future of Urban Logistics\",\"description\":\"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge.\",\"image\":[\"https://doormile.com/images/blog-post-pic-6.webp\"],\"datePublished\":\"2025-07-10T00:00:00.000Z\",\"dateModified\":\"2025-07-10T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics\"},\"articleSection\":\"Sustainability\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Building a Greener City: The Future of Urban Logistics\",\"item\":\"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-6.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-6.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Sustainability"}],["$","h1",null,{"className":"dm-banner-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Building a Greener City: The Future of Urban Logistics"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-07-10","children":"Jul 10, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Cleaner delivery is becoming an operating requirement, not just a brand message. It depends on EV adoption and route plans that make those vehicles practical every day."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Building a Greener City: The Future of Urban Logistics looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$L1d","$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +1e:["$","figcaption",null,{"children":"Sustainability: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Fleet Management"}],["$","span",null,{"className":"dm-prevnext-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]]}],["$","$L1b",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Operations"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L2d","$L2e"]}]]}]}],"$L2f"]}]]}],"$L30"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +2f:["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +30:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +31:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Building a Greener City: The Future of Urban Logistics – Doormile"}],["$","meta","1",{"name":"description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Sustainability,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics"}],["$","meta","6",{"property":"og:title","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","7",{"property":"og:description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-6.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-07-10T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","17",{"name":"twitter:description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-6.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L31","23",{}]] diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_head.segment.rsc b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_head.segment.rsc new file mode 100644 index 0000000..8373244 --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Building a Greener City: The Future of Urban Logistics – Doormile"}],["$","meta","1",{"name":"description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Sustainability,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics"}],["$","meta","6",{"property":"og:title","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","7",{"property":"og:description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-6.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-07-10T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Building a Greener City: The Future of Urban Logistics"}],["$","meta","17",{"name":"twitter:description","content":"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-6.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_index.segment.rsc b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_tree.segment.rsc b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_tree.segment.rsc new file mode 100644 index 0000000..277436f --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/blog-post-pic-6.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"building-a-greener-city-the-future-of-urban-logistics","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog.segment.rsc b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..4ca872b --- /dev/null +++ b/build/.next/server/app/blog/building-a-greener-city-the-future-of-urban-logistics.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,520 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +15:"$Sreact.suspense" +17:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +18:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/blog-post-pic-6.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Building a Greener City: The Future of Urban Logistics\",\"description\":\"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge.\",\"image\":[\"https://doormile.com/images/blog-post-pic-6.webp\"],\"datePublished\":\"2025-07-10T00:00:00.000Z\",\"dateModified\":\"2025-07-10T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics\"},\"articleSection\":\"Sustainability\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Building a Greener City: The Future of Urban Logistics\",\"item\":\"https://doormile.com/blog/building-a-greener-city-the-future-of-urban-logistics\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-6.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-6.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Sustainability"}],["$","h1",null,{"className":"dm-banner-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Building a Greener City: The Future of Urban Logistics"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-07-10","children":"Jul 10, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Cleaner delivery is becoming an operating requirement, not just a brand message. It depends on EV adoption and route plans that make those vehicles practical every day."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Building a Greener City: The Future of Urban Logistics looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$La","$Lb"]}]}],"$Lc","$Ld","$Le","$Lf","$L10"]}]]}],"$L11"]}]]}] +12:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$12"}}],"$L13"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}] +a:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L17",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +b:["$","figcaption",null,{"children":"Sustainability: route planning decisions made before dispatch."}] +c:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +d:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +e:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +f:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +10:["$","$L9","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +11:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L18",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L19","$L1a","$L1b"]}]]}],"$L1c"]}]}] +13:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L8",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Fleet Management"}],["$","span",null,{"className":"dm-prevnext-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]]}],["$","$L8",null,{"href":"/blog/how-doormile-maintains-99-9-sla-compliance-at-scale","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Operations"}],["$","span",null,{"className":"dm-prevnext-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L1d","$L1e"]}]]}]}],"$L1f"]}]]}],"$L20"]}] +16:null +19:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1a:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1b:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +1e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +1f:["$","$L9","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +20:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.html b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.html new file mode 100644 index 0000000..c41bda7 --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.html @@ -0,0 +1,1168 @@ +Fleet Reduction Without Compromising Delivery Volume – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Fleet Management

Fleet Reduction Without Compromising Delivery Volume

Doormile Team2 min read

Cutting vehicles usually means cutting capacity unless the removed kilometres were never needed. Better route planning turns wasted distance into operating headroom.

In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Fleet Reduction Without Compromising Delivery Volume looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub.

Why this matters for fleet teams

Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day.

  • Fewer vehicles needed for the same number of drops
  • Lower cost per drop through better stop sequencing
  • ETAs that match traffic, distance, and delivery windows
  • Less fuel or charge used per completed order

From orders to dispatch

A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road.

Fleet Reduction Without Compromising Delivery Volume
Fleet Management: route planning decisions made before dispatch.

A route should be checked before the rider leaves, not explained after the customer calls.

Doormile Operations

Putting it into practice

The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time.

  1. Benchmark today's distance, fleet size, and on-time rate.
  2. Include vehicle capacity, delivery windows, rider shifts, and battery charge.
  3. Check routes against traffic and customer commitments before dispatch.
  4. Compare the next dispatch cycle against the old plan.

Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead.

\ No newline at end of file diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.meta b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.meta new file mode 100644 index 0000000..9897afa --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/fleet-reduction-without-compromising-delivery-volume" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.rsc b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.rsc new file mode 100644 index 0000000..233c318 --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.rsc @@ -0,0 +1,546 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","fleet-reduction-without-compromising-delivery-volume"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","fleet-reduction-without-compromising-delivery-volume","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-8.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Fleet Reduction Without Compromising Delivery Volume\",\"description\":\"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes.\",\"image\":[\"https://doormile.com/images/blog-post-pic-8.webp\"],\"datePublished\":\"2025-07-24T00:00:00.000Z\",\"dateModified\":\"2025-07-24T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume\"},\"articleSection\":\"Fleet Management\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Fleet Reduction Without Compromising Delivery Volume\",\"item\":\"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-8.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-8.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Fleet Management"}],["$","h1",null,{"className":"dm-banner-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-07-24","children":"Jul 24, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Cutting vehicles usually means cutting capacity unless the removed kilometres were never needed. Better route planning turns wasted distance into operating headroom."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Fleet Reduction Without Compromising Delivery Volume looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$L1d","$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +1e:["$","figcaption",null,{"children":"Fleet Management: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]]}],["$","$L1b",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Sustainability"}],["$","span",null,{"className":"dm-prevnext-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":["$L2d","$L2e","$L2f"]}]]}]}],"$L30"]}]]}],"$L31"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}] +2e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +30:["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +31:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +32:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Fleet Reduction Without Compromising Delivery Volume – Doormile"}],["$","meta","1",{"name":"description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Fleet Management,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume"}],["$","meta","6",{"property":"og:title","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","7",{"property":"og:description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-8.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-07-24T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","17",{"name":"twitter:description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-8.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L32","23",{}]] diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_full.segment.rsc b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_full.segment.rsc new file mode 100644 index 0000000..233c318 --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_full.segment.rsc @@ -0,0 +1,546 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","fleet-reduction-without-compromising-delivery-volume"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","fleet-reduction-without-compromising-delivery-volume","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-8.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Fleet Reduction Without Compromising Delivery Volume\",\"description\":\"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes.\",\"image\":[\"https://doormile.com/images/blog-post-pic-8.webp\"],\"datePublished\":\"2025-07-24T00:00:00.000Z\",\"dateModified\":\"2025-07-24T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume\"},\"articleSection\":\"Fleet Management\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Fleet Reduction Without Compromising Delivery Volume\",\"item\":\"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-8.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-8.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Fleet Management"}],["$","h1",null,{"className":"dm-banner-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-07-24","children":"Jul 24, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Cutting vehicles usually means cutting capacity unless the removed kilometres were never needed. Better route planning turns wasted distance into operating headroom."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Fleet Reduction Without Compromising Delivery Volume looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$L1d","$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +1e:["$","figcaption",null,{"children":"Fleet Management: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]]}],["$","$L1b",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Sustainability"}],["$","span",null,{"className":"dm-prevnext-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":["$L2d","$L2e","$L2f"]}]]}]}],"$L30"]}]]}],"$L31"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}] +2e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +30:["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +31:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +32:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Fleet Reduction Without Compromising Delivery Volume – Doormile"}],["$","meta","1",{"name":"description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Fleet Management,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume"}],["$","meta","6",{"property":"og:title","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","7",{"property":"og:description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-8.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-07-24T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","17",{"name":"twitter:description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-8.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L32","23",{}]] diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_head.segment.rsc b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_head.segment.rsc new file mode 100644 index 0000000..1446084 --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Fleet Reduction Without Compromising Delivery Volume – Doormile"}],["$","meta","1",{"name":"description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Fleet Management,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume"}],["$","meta","6",{"property":"og:title","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","7",{"property":"og:description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-8.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-07-24T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Fleet Reduction Without Compromising Delivery Volume"}],["$","meta","17",{"name":"twitter:description","content":"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-8.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_index.segment.rsc b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_tree.segment.rsc b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_tree.segment.rsc new file mode 100644 index 0000000..015b37d --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/blog-post-pic-8.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"fleet-reduction-without-compromising-delivery-volume","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog.segment.rsc b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..7cb353e --- /dev/null +++ b/build/.next/server/app/blog/fleet-reduction-without-compromising-delivery-volume.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,521 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +15:"$Sreact.suspense" +17:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +18:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/blog-post-pic-8.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Fleet Reduction Without Compromising Delivery Volume\",\"description\":\"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes.\",\"image\":[\"https://doormile.com/images/blog-post-pic-8.webp\"],\"datePublished\":\"2025-07-24T00:00:00.000Z\",\"dateModified\":\"2025-07-24T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume\"},\"articleSection\":\"Fleet Management\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Fleet Reduction Without Compromising Delivery Volume\",\"item\":\"https://doormile.com/blog/fleet-reduction-without-compromising-delivery-volume\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-8.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-8.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Fleet Management"}],["$","h1",null,{"className":"dm-banner-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-07-24","children":"Jul 24, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Cutting vehicles usually means cutting capacity unless the removed kilometres were never needed. Better route planning turns wasted distance into operating headroom."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Fleet Reduction Without Compromising Delivery Volume looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$La","$Lb"]}]}],"$Lc","$Ld","$Le","$Lf","$L10"]}]]}],"$L11"]}]]}] +12:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$12"}}],"$L13"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}] +a:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L17",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +b:["$","figcaption",null,{"children":"Fleet Management: route planning decisions made before dispatch."}] +c:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +d:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +e:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +f:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +10:["$","$L9","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +11:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L18",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L19","$L1a","$L1b"]}]]}],"$L1c"]}]}] +13:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L8",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]]}],["$","$L8",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Sustainability"}],["$","span",null,{"className":"dm-prevnext-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":["$L1d","$L1e","$L1f"]}]]}]}],"$L20"]}]]}],"$L21"]}] +16:null +19:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1a:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1b:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1d:["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}] +1e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +1f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +20:["$","$L9","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +21:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.html b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.html new file mode 100644 index 0000000..af527ba --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.html @@ -0,0 +1,1168 @@ +How Better Planning Improves Last-Mile EV Delivery – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Technology

How Better Planning Improves Last-Mile EV Delivery

Doormile Team2 min read

The last mile is already difficult to plan. With electric vehicles, the team also has to think about battery range, charging time, rider load, traffic, and delivery windows. Good planning turns those moving parts into a workable dispatch plan.

For a long time, last-mile planning depended on dispatchers, spreadsheets, and local experience. That experience still matters. The problem is that it gets stretched thin when order volume rises and the fleet includes EVs.

The shift from fixed rules to daily planning

A fixed-zone plan may look clean in the morning, but the road rarely follows the plan. A rider may get delayed near Hitec City, a gated community may hold a vehicle for ten extra minutes, or a battery may drain faster because the load is heavier than usual.

  • Order volumes by area, time slot, and customer type
  • Travel times based on the city's actual traffic patterns
  • Battery use by vehicle type, rider load, and route length
  • Feedback from completed deliveries, failed attempts, and late arrivals

Adjusting during the day

The first plan is only the starting point. By 11 a.m., traffic may change, a high-priority order may arrive, or one vehicle may return with less charge than expected. The dispatch team needs a way to adjust without rebuilding the whole day by hand.

During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, the hub reduced missed delivery windows and improved on-time performance.

Electric delivery vehicle routing visualisation
EV route plans need to account for range, load, traffic, and charging time before riders leave the hub.

With EVs, a route is only useful if the vehicle can finish it and still return safely.

Doormile Operations

What this means for operators

For a fleet manager, this is not about fancy software. It is about fewer emergency calls, fewer mid-route swaps, and fewer customers asking why their delivery missed the promised window.

  1. Record delivery times, failed attempts, traffic delays, and charging cycles.
  2. Build travel-time estimates from the areas your riders actually serve.
  3. Check every route against battery capacity before dispatch.
  4. Replan when traffic, orders, or vehicle availability changes.

The fleets that improve fastest are usually not the ones adding vehicles first. They are the ones removing wasted distance, planning charging properly, and giving riders routes they can complete on time.

\ No newline at end of file diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.meta b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.meta new file mode 100644 index 0000000..b18c238 --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/how-ai-is-transforming-last-mile-ev-delivery" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.rsc b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.rsc new file mode 100644 index 0000000..36c7686 --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.rsc @@ -0,0 +1,545 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","how-ai-is-transforming-last-mile-ev-delivery"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","how-ai-is-transforming-last-mile-ev-delivery","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-17.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"How Better Planning Improves Last-Mile EV Delivery\",\"description\":\"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles.\",\"image\":[\"https://doormile.com/images/blog-post-pic-17.webp\"],\"datePublished\":\"2025-10-02T00:00:00.000Z\",\"dateModified\":\"2025-10-02T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery\"},\"articleSection\":\"Technology\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Better Planning Improves Last-Mile EV Delivery\",\"item\":\"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-17.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-17.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Technology"}],["$","h1",null,{"className":"dm-banner-title","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-10-02","children":"Oct 2, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"The last mile is already difficult to plan. With electric vehicles, the team also has to think about battery range, charging time, rider load, traffic, and delivery windows. Good planning turns those moving parts into a workable dispatch plan."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"For a long time, last-mile planning depended on dispatchers, spreadsheets, and local experience. That experience still matters. The problem is that it gets stretched thin when order volume rises and the fleet includes EVs."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The shift from fixed rules to daily planning"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A fixed-zone plan may look clean in the morning, but the road rarely follows the plan. A rider may get delayed near Hitec City, a gated community may hold a vehicle for ten extra minutes, or a battery may drain faster because the load is heavier than usual."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Order volumes by area, time slot, and customer type"}],["$","li","1",{"children":"Travel times based on the city's actual traffic patterns"}],["$","li","2",{"children":"Battery use by vehicle type, rider load, and route length"}],["$","li","3",{"children":"Feedback from completed deliveries, failed attempts, and late arrivals"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Adjusting during the day"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The first plan is only the starting point. By 11 a.m., traffic may change, a high-priority order may arrive, or one vehicle may return with less charge than expected. The dispatch team needs a way to adjust without rebuilding the whole day by hand."}]}],"$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, the hub reduced missed delivery windows and improved on-time performance."}]}] +1e:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"Electric delivery vehicle routing visualisation","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"EV route plans need to account for range, load, traffic, and charging time before riders leave the hub."}]]}]}] +1f:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"With EVs, a route is only useful if the vehicle can finish it and still return safely."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"What this means for operators"}]}] +21:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"For a fleet manager, this is not about fancy software. It is about fewer emergency calls, fewer mid-route swaps, and fewer customers asking why their delivery missed the promised window."}]}] +22:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Record delivery times, failed attempts, traffic delays, and charging cycles."}],["$","li","1",{"children":"Build travel-time estimates from the areas your riders actually serve."}],["$","li","2",{"children":"Check every route against battery capacity before dispatch."}],["$","li","3",{"children":"Replan when traffic, orders, or vehicle availability changes."}]]}]}] +23:["$","$L1c","12",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The fleets that improve fastest are usually not the ones adding vehicles first. They are the ones removing wasted distance, planning charging properly, and giving riders routes they can complete on time."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],"$L29"]}]}],"$L2a","$L2b","$L2c"]}]]}],"$L2d"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","span",null,{"className":"dm-prevnext-placeholder"}],["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Case Study"}],["$","span",null,{"className":"dm-prevnext-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","why-mathematical-precision-beats-heuristics-in-routing",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":["$L2e","$L2f"]}]}]]}]]}],"$L30"]}] +29:["$","span",null,{"className":"dm-blog-category-count","children":1}] +2a:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2c:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2d:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2e:["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}] +2f:["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +30:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +31:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"How Better Planning Improves Last-Mile EV Delivery – Doormile"}],["$","meta","1",{"name":"description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Technology,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery"}],["$","meta","6",{"property":"og:title","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","7",{"property":"og:description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-17.webp"}],["$","meta","11",{"property":"og:image:alt","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-10-02T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","17",{"name":"twitter:description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-17.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L31","23",{}]] diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_full.segment.rsc b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_full.segment.rsc new file mode 100644 index 0000000..36c7686 --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_full.segment.rsc @@ -0,0 +1,545 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","how-ai-is-transforming-last-mile-ev-delivery"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","how-ai-is-transforming-last-mile-ev-delivery","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-17.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"How Better Planning Improves Last-Mile EV Delivery\",\"description\":\"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles.\",\"image\":[\"https://doormile.com/images/blog-post-pic-17.webp\"],\"datePublished\":\"2025-10-02T00:00:00.000Z\",\"dateModified\":\"2025-10-02T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery\"},\"articleSection\":\"Technology\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Better Planning Improves Last-Mile EV Delivery\",\"item\":\"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-17.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-17.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Technology"}],["$","h1",null,{"className":"dm-banner-title","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-10-02","children":"Oct 2, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"The last mile is already difficult to plan. With electric vehicles, the team also has to think about battery range, charging time, rider load, traffic, and delivery windows. Good planning turns those moving parts into a workable dispatch plan."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"For a long time, last-mile planning depended on dispatchers, spreadsheets, and local experience. That experience still matters. The problem is that it gets stretched thin when order volume rises and the fleet includes EVs."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The shift from fixed rules to daily planning"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A fixed-zone plan may look clean in the morning, but the road rarely follows the plan. A rider may get delayed near Hitec City, a gated community may hold a vehicle for ten extra minutes, or a battery may drain faster because the load is heavier than usual."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Order volumes by area, time slot, and customer type"}],["$","li","1",{"children":"Travel times based on the city's actual traffic patterns"}],["$","li","2",{"children":"Battery use by vehicle type, rider load, and route length"}],["$","li","3",{"children":"Feedback from completed deliveries, failed attempts, and late arrivals"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Adjusting during the day"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The first plan is only the starting point. By 11 a.m., traffic may change, a high-priority order may arrive, or one vehicle may return with less charge than expected. The dispatch team needs a way to adjust without rebuilding the whole day by hand."}]}],"$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, the hub reduced missed delivery windows and improved on-time performance."}]}] +1e:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"Electric delivery vehicle routing visualisation","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"EV route plans need to account for range, load, traffic, and charging time before riders leave the hub."}]]}]}] +1f:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"With EVs, a route is only useful if the vehicle can finish it and still return safely."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"What this means for operators"}]}] +21:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"For a fleet manager, this is not about fancy software. It is about fewer emergency calls, fewer mid-route swaps, and fewer customers asking why their delivery missed the promised window."}]}] +22:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Record delivery times, failed attempts, traffic delays, and charging cycles."}],["$","li","1",{"children":"Build travel-time estimates from the areas your riders actually serve."}],["$","li","2",{"children":"Check every route against battery capacity before dispatch."}],["$","li","3",{"children":"Replan when traffic, orders, or vehicle availability changes."}]]}]}] +23:["$","$L1c","12",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The fleets that improve fastest are usually not the ones adding vehicles first. They are the ones removing wasted distance, planning charging properly, and giving riders routes they can complete on time."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],"$L29"]}]}],"$L2a","$L2b","$L2c"]}]]}],"$L2d"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","span",null,{"className":"dm-prevnext-placeholder"}],["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Case Study"}],["$","span",null,{"className":"dm-prevnext-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","why-mathematical-precision-beats-heuristics-in-routing",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":["$L2e","$L2f"]}]}]]}]]}],"$L30"]}] +29:["$","span",null,{"className":"dm-blog-category-count","children":1}] +2a:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2c:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2d:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2e:["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}] +2f:["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +30:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +31:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"How Better Planning Improves Last-Mile EV Delivery – Doormile"}],["$","meta","1",{"name":"description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Technology,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery"}],["$","meta","6",{"property":"og:title","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","7",{"property":"og:description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-17.webp"}],["$","meta","11",{"property":"og:image:alt","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-10-02T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","17",{"name":"twitter:description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-17.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L31","23",{}]] diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_head.segment.rsc b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_head.segment.rsc new file mode 100644 index 0000000..289cdc0 --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"How Better Planning Improves Last-Mile EV Delivery – Doormile"}],["$","meta","1",{"name":"description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Technology,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery"}],["$","meta","6",{"property":"og:title","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","7",{"property":"og:description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-17.webp"}],["$","meta","11",{"property":"og:image:alt","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-10-02T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"How Better Planning Improves Last-Mile EV Delivery"}],["$","meta","17",{"name":"twitter:description","content":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-17.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_index.segment.rsc b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_tree.segment.rsc b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_tree.segment.rsc new file mode 100644 index 0000000..dcd2dcd --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/blog-post-pic-17.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"how-ai-is-transforming-last-mile-ev-delivery","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog.segment.rsc b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..c211513 --- /dev/null +++ b/build/.next/server/app/blog/how-ai-is-transforming-last-mile-ev-delivery.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,520 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +15:"$Sreact.suspense" +17:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +18:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/blog-post-pic-17.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"How Better Planning Improves Last-Mile EV Delivery\",\"description\":\"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles.\",\"image\":[\"https://doormile.com/images/blog-post-pic-17.webp\"],\"datePublished\":\"2025-10-02T00:00:00.000Z\",\"dateModified\":\"2025-10-02T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery\"},\"articleSection\":\"Technology\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Better Planning Improves Last-Mile EV Delivery\",\"item\":\"https://doormile.com/blog/how-ai-is-transforming-last-mile-ev-delivery\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-17.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-17.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Technology"}],["$","h1",null,{"className":"dm-banner-title","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"How Better Planning Improves Last-Mile EV Delivery"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-10-02","children":"Oct 2, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"The last mile is already difficult to plan. With electric vehicles, the team also has to think about battery range, charging time, rider load, traffic, and delivery windows. Good planning turns those moving parts into a workable dispatch plan."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"For a long time, last-mile planning depended on dispatchers, spreadsheets, and local experience. That experience still matters. The problem is that it gets stretched thin when order volume rises and the fleet includes EVs."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The shift from fixed rules to daily planning"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A fixed-zone plan may look clean in the morning, but the road rarely follows the plan. A rider may get delayed near Hitec City, a gated community may hold a vehicle for ten extra minutes, or a battery may drain faster because the load is heavier than usual."}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Order volumes by area, time slot, and customer type"}],["$","li","1",{"children":"Travel times based on the city's actual traffic patterns"}],["$","li","2",{"children":"Battery use by vehicle type, rider load, and route length"}],["$","li","3",{"children":"Feedback from completed deliveries, failed attempts, and late arrivals"}]]}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Adjusting during the day"}]}],["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The first plan is only the starting point. By 11 a.m., traffic may change, a high-priority order may arrive, or one vehicle may return with less charge than expected. The dispatch team needs a way to adjust without rebuilding the whole day by hand."}]}],"$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10"]}]]}],"$L11"]}]]}] +12:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$12"}}],"$L13"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}] +a:["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, the hub reduced missed delivery windows and improved on-time performance."}]}] +b:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"Electric delivery vehicle routing visualisation","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"EV route plans need to account for range, load, traffic, and charging time before riders leave the hub."}]]}]}] +c:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"With EVs, a route is only useful if the vehicle can finish it and still return safely."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +d:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"What this means for operators"}]}] +e:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"For a fleet manager, this is not about fancy software. It is about fewer emergency calls, fewer mid-route swaps, and fewer customers asking why their delivery missed the promised window."}]}] +f:["$","$L9","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Record delivery times, failed attempts, traffic delays, and charging cycles."}],["$","li","1",{"children":"Build travel-time estimates from the areas your riders actually serve."}],["$","li","2",{"children":"Check every route against battery capacity before dispatch."}],["$","li","3",{"children":"Replan when traffic, orders, or vehicle availability changes."}]]}]}] +10:["$","$L9","12",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The fleets that improve fastest are usually not the ones adding vehicles first. They are the ones removing wasted distance, planning charging properly, and giving riders routes they can complete on time."}]}] +11:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L18",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L8",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],"$L19"]}]}],"$L1a","$L1b","$L1c"]}]]}],"$L1d"]}]}] +13:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","span",null,{"className":"dm-prevnext-placeholder"}],["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Case Study"}],["$","span",null,{"className":"dm-prevnext-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","why-mathematical-precision-beats-heuristics-in-routing",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":["$L1e","$L1f"]}]}]]}]]}],"$L20"]}] +16:null +19:["$","span",null,{"className":"dm-blog-category-count","children":1}] +1a:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1b:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1c:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1d:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1e:["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}] +1f:["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +20:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.html b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.html new file mode 100644 index 0000000..c4e49e3 --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.html @@ -0,0 +1,1168 @@ +How Doormile Maintains 99.9% SLA Compliance at Scale – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Operations

How Doormile Maintains 99.9% SLA Compliance at Scale

Doormile Team2 min read

Strong SLA performance is not luck. It comes from planning the day so late deliveries are the exception, not the expected risk.

In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. How Doormile Maintains 99.9% SLA Compliance at Scale looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub.

Why this matters for fleet teams

Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day.

  • Fewer vehicles needed for the same number of drops
  • Lower cost per drop through better stop sequencing
  • ETAs that match traffic, distance, and delivery windows
  • Less fuel or charge used per completed order

From orders to dispatch

A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road.

How Doormile Maintains 99.9% SLA Compliance at Scale
Operations: route planning decisions made before dispatch.

A route should be checked before the rider leaves, not explained after the customer calls.

Doormile Operations

Putting it into practice

The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time.

  1. Benchmark today's distance, fleet size, and on-time rate.
  2. Include vehicle capacity, delivery windows, rider shifts, and battery charge.
  3. Check routes against traffic and customer commitments before dispatch.
  4. Compare the next dispatch cycle against the old plan.

Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead.

\ No newline at end of file diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.meta b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.meta new file mode 100644 index 0000000..7863d97 --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/how-doormile-maintains-99-9-sla-compliance-at-scale" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.rsc b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.rsc new file mode 100644 index 0000000..8c500ae --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.rsc @@ -0,0 +1,546 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","how-doormile-maintains-99-9-sla-compliance-at-scale"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","how-doormile-maintains-99-9-sla-compliance-at-scale","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/last-mile-approach.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"How Doormile Maintains 99.9% SLA Compliance at Scale\",\"description\":\"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day.\",\"image\":[\"https://doormile.com/images/last-mile-approach.webp\"],\"datePublished\":\"2025-06-26T00:00:00.000Z\",\"dateModified\":\"2025-06-26T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale\"},\"articleSection\":\"Operations\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Doormile Maintains 99.9% SLA Compliance at Scale\",\"item\":\"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/last-mile-approach.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/last-mile-approach.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Operations"}],["$","h1",null,{"className":"dm-banner-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-06-26","children":"Jun 26, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Strong SLA performance is not luck. It comes from planning the day so late deliveries are the exception, not the expected risk."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. How Doormile Maintains 99.9% SLA Compliance at Scale looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":"$L1d"}],"$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L27",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}] +1e:["$","figcaption",null,{"children":"Operations: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Sustainability"}],["$","span",null,{"className":"dm-prevnext-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}]]}],["$","$L1b",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":["$L2d","$L2e","$L2f"]}]]}]}],"$L30"]}]]}],"$L31"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}] +2e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +30:["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +31:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +32:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"How Doormile Maintains 99.9% SLA Compliance at Scale – Doormile"}],["$","meta","1",{"name":"description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Operations,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale"}],["$","meta","6",{"property":"og:title","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","7",{"property":"og:description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/last-mile-approach.webp"}],["$","meta","11",{"property":"og:image:alt","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-06-26T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","17",{"name":"twitter:description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/last-mile-approach.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L32","23",{}]] diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_full.segment.rsc b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_full.segment.rsc new file mode 100644 index 0000000..8c500ae --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_full.segment.rsc @@ -0,0 +1,546 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","how-doormile-maintains-99-9-sla-compliance-at-scale"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","how-doormile-maintains-99-9-sla-compliance-at-scale","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/last-mile-approach.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"How Doormile Maintains 99.9% SLA Compliance at Scale\",\"description\":\"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day.\",\"image\":[\"https://doormile.com/images/last-mile-approach.webp\"],\"datePublished\":\"2025-06-26T00:00:00.000Z\",\"dateModified\":\"2025-06-26T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale\"},\"articleSection\":\"Operations\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Doormile Maintains 99.9% SLA Compliance at Scale\",\"item\":\"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/last-mile-approach.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/last-mile-approach.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Operations"}],["$","h1",null,{"className":"dm-banner-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-06-26","children":"Jun 26, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Strong SLA performance is not luck. It comes from planning the day so late deliveries are the exception, not the expected risk."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. How Doormile Maintains 99.9% SLA Compliance at Scale looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":"$L1d"}],"$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L27",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}] +1e:["$","figcaption",null,{"children":"Operations: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Sustainability"}],["$","span",null,{"className":"dm-prevnext-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}]]}],["$","$L1b",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":["$L2d","$L2e","$L2f"]}]]}]}],"$L30"]}]]}],"$L31"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}] +2e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +30:["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +31:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +32:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"How Doormile Maintains 99.9% SLA Compliance at Scale – Doormile"}],["$","meta","1",{"name":"description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Operations,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale"}],["$","meta","6",{"property":"og:title","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","7",{"property":"og:description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/last-mile-approach.webp"}],["$","meta","11",{"property":"og:image:alt","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-06-26T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","17",{"name":"twitter:description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/last-mile-approach.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L32","23",{}]] diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_head.segment.rsc b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_head.segment.rsc new file mode 100644 index 0000000..39e033d --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"How Doormile Maintains 99.9% SLA Compliance at Scale – Doormile"}],["$","meta","1",{"name":"description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Operations,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale"}],["$","meta","6",{"property":"og:title","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","7",{"property":"og:description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/last-mile-approach.webp"}],["$","meta","11",{"property":"og:image:alt","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-06-26T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"How Doormile Maintains 99.9% SLA Compliance at Scale"}],["$","meta","17",{"name":"twitter:description","content":"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/last-mile-approach.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_index.segment.rsc b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_tree.segment.rsc b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_tree.segment.rsc new file mode 100644 index 0000000..80d2465 --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/last-mile-approach.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"how-doormile-maintains-99-9-sla-compliance-at-scale","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog.segment.rsc b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..7f04254 --- /dev/null +++ b/build/.next/server/app/blog/how-doormile-maintains-99-9-sla-compliance-at-scale.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,521 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +15:"$Sreact.suspense" +17:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +18:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/last-mile-approach.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"How Doormile Maintains 99.9% SLA Compliance at Scale\",\"description\":\"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day.\",\"image\":[\"https://doormile.com/images/last-mile-approach.webp\"],\"datePublished\":\"2025-06-26T00:00:00.000Z\",\"dateModified\":\"2025-06-26T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale\"},\"articleSection\":\"Operations\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Doormile Maintains 99.9% SLA Compliance at Scale\",\"item\":\"https://doormile.com/blog/how-doormile-maintains-99-9-sla-compliance-at-scale\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/last-mile-approach.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/last-mile-approach.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Operations"}],["$","h1",null,{"className":"dm-banner-title","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"How Doormile Maintains 99.9% SLA Compliance at Scale"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-06-26","children":"Jun 26, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Strong SLA performance is not luck. It comes from planning the day so late deliveries are the exception, not the expected risk."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. How Doormile Maintains 99.9% SLA Compliance at Scale looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":"$La"}],"$Lb"]}]}],"$Lc","$Ld","$Le","$Lf","$L10"]}]]}],"$L11"]}]]}] +12:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$12"}}],"$L13"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}] +a:["$","$L17",null,{"src":"/images/last-mile-approach.webp","alt":"How Doormile Maintains 99.9% SLA Compliance at Scale","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}] +b:["$","figcaption",null,{"children":"Operations: route planning decisions made before dispatch."}] +c:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +d:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +e:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +f:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +10:["$","$L9","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +11:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L18",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L19","$L1a","$L1b"]}]]}],"$L1c"]}]}] +13:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L8",null,{"href":"/blog/building-a-greener-city-the-future-of-urban-logistics","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-6.webp","alt":"Building a Greener City: The Future of Urban Logistics","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Sustainability"}],["$","span",null,{"className":"dm-prevnext-title","children":"Building a Greener City: The Future of Urban Logistics"}]]}]]}],["$","$L8",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":["$L1d","$L1e","$L1f"]}]]}]}],"$L20"]}]]}],"$L21"]}] +16:null +19:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1a:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1b:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1d:["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}] +1e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +1f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +20:["$","$L9","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +21:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.html b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.html new file mode 100644 index 0000000..fb059ac --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.html @@ -0,0 +1,1168 @@ +MileTruth™: 10 Stages to Smarter Dispatch – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

MileTruth

MileTruth™: 10 Stages to Smarter Dispatch

Doormile Team2 min read

Behind every Doormile dispatch is a step-by-step route planning process. Each stage removes a common source of error before the plan reaches the rider.

A dispatch plan has to be fast, but it also has to be usable. A quick route that ignores a bad address, low battery, or tight delivery window creates problems later in the day.

The ten stages

  1. Order intake: new orders, rider availability, and vehicle status are collected.
  2. Address check: delivery points, time windows, and service notes are verified.
  3. Stop planning: each stop gets an expected service time and delivery priority.
  4. Travel-time check: routes are compared against time-of-day traffic.
  5. Constraint check: capacity, shift time, customer windows, and range are applied.
  6. Route options: several possible plans are built for the same order set.
  7. Plan selection: the lowest-cost workable route plan is selected.
  8. Battery check: EV routes are checked against real charge capacity.
  9. ETA check: promised delivery times are verified before dispatch.
  10. Dispatch output: the final route is sent to the operations team.

Why staging matters

When everything is checked in one step, small errors slip through. A wrong pin, a missing apartment note, or a low battery warning can reach the rider and become a customer issue.

MileTruth routing pipeline diagram
A staged dispatch process catches address, range, and ETA issues before riders leave.

Each stage should remove one kind of mistake. By dispatch time, the route should already be practical.

MileTruth Engineering

Comparing route options

The useful part is not only building one route. It is comparing a few workable route options before choosing the plan. One option may save distance, another may protect a tight delivery window, and another may keep an EV closer to a charger.

  • Several route plans checked before dispatch
  • Distance, time windows, capacity, and range considered together
  • Range and ETA checked before the route reaches the rider
  • Fast output that still leaves room for dispatcher review

The goal is simple: give the dispatch team a route plan they can trust before the first vehicle leaves the hub.

\ No newline at end of file diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.meta b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.meta new file mode 100644 index 0000000..2ea5ec3 --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/miletruth-ai-10-stages-to-smarter-dispatch" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.rsc b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.rsc new file mode 100644 index 0000000..efb84d1 --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.rsc @@ -0,0 +1,546 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","miletruth-ai-10-stages-to-smarter-dispatch"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","miletruth-ai-10-stages-to-smarter-dispatch","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-31.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"MileTruth™: 10 Stages to Smarter Dispatch\",\"description\":\"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub.\",\"image\":[\"https://doormile.com/images/blog-post-pic-31.webp\"],\"datePublished\":\"2025-09-05T00:00:00.000Z\",\"dateModified\":\"2025-09-05T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch\"},\"articleSection\":\"MileTruth\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MileTruth™: 10 Stages to Smarter Dispatch\",\"item\":\"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-31.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-31.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"MileTruth"}],["$","h1",null,{"className":"dm-banner-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-09-05","children":"Sep 5, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Behind every Doormile dispatch is a step-by-step route planning process. Each stage removes a common source of error before the plan reaches the rider."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A dispatch plan has to be fast, but it also has to be usable. A quick route that ignores a bad address, low battery, or tight delivery window creates problems later in the day."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The ten stages"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Order intake: new orders, rider availability, and vehicle status are collected."}],["$","li","1",{"children":"Address check: delivery points, time windows, and service notes are verified."}],["$","li","2",{"children":"Stop planning: each stop gets an expected service time and delivery priority."}],["$","li","3",{"children":"Travel-time check: routes are compared against time-of-day traffic."}],["$","li","4",{"children":"Constraint check: capacity, shift time, customer windows, and range are applied."}],["$","li","5",{"children":"Route options: several possible plans are built for the same order set."}],["$","li","6",{"children":"Plan selection: the lowest-cost workable route plan is selected."}],["$","li","7",{"children":"Battery check: EV routes are checked against real charge capacity."}],["$","li","8",{"children":"ETA check: promised delivery times are verified before dispatch."}],["$","li","9",{"children":"Dispatch output: the final route is sent to the operations team."}]]}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Why staging matters"}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"When everything is checked in one step, small errors slip through. A wrong pin, a missing apartment note, or a low battery warning can reach the rider and become a customer issue."}]}],"$L1d","$L1e","$L1f","$L20","$L21","$L22"]}]]}],"$L23"]}]]}] +24:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$24"}}],"$L25"]}] +26:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +27:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L26",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth routing pipeline diagram","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"A staged dispatch process catches address, range, and ETA issues before riders leave."}]]}]}] +1e:["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"Each stage should remove one kind of mistake. By dispatch time, the route should already be practical."}],["$","cite",null,{"children":"MileTruth Engineering"}]]}]}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Comparing route options"}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The useful part is not only building one route. It is comparing a few workable route options before choosing the plan. One option may save distance, another may protect a tight delivery window, and another may keep an EV closer to a charger."}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Several route plans checked before dispatch"}],["$","li","1",{"children":"Distance, time windows, capacity, and range considered together"}],["$","li","2",{"children":"Range and ETA checked before the route reaches the rider"}],["$","li","3",{"children":"Fast output that still leaves room for dispatcher review"}]]}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The goal is simple: give the dispatch team a route plan they can trust before the first vehicle leaves the hub."}]}] +23:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L27",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L26",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L26",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L26",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L26",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":["$L28","$L29"]}]}],"$L2a","$L2b","$L2c"]}]]}],"$L2d"]}]}] +25:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L26",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Case Study"}],["$","span",null,{"className":"dm-prevnext-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]]}],["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L26",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L26",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L26",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L2e","$L2f"]}]]}]}],"$L30"]}]]}],"$L31"]}] +28:["$","span",null,{"children":"MileTruth"}] +29:["$","span",null,{"className":"dm-blog-category-count","children":1}] +2a:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2c:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2d:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +30:["$","$L1c","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L26",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +31:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +32:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"MileTruth™: 10 Stages to Smarter Dispatch – Doormile"}],["$","meta","1",{"name":"description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"MileTruth,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch"}],["$","meta","6",{"property":"og:title","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","7",{"property":"og:description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-31.webp"}],["$","meta","11",{"property":"og:image:alt","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-09-05T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","17",{"name":"twitter:description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-31.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L32","23",{}]] diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_full.segment.rsc b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_full.segment.rsc new file mode 100644 index 0000000..efb84d1 --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_full.segment.rsc @@ -0,0 +1,546 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","miletruth-ai-10-stages-to-smarter-dispatch"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","miletruth-ai-10-stages-to-smarter-dispatch","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-31.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"MileTruth™: 10 Stages to Smarter Dispatch\",\"description\":\"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub.\",\"image\":[\"https://doormile.com/images/blog-post-pic-31.webp\"],\"datePublished\":\"2025-09-05T00:00:00.000Z\",\"dateModified\":\"2025-09-05T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch\"},\"articleSection\":\"MileTruth\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MileTruth™: 10 Stages to Smarter Dispatch\",\"item\":\"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-31.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-31.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"MileTruth"}],["$","h1",null,{"className":"dm-banner-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-09-05","children":"Sep 5, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Behind every Doormile dispatch is a step-by-step route planning process. Each stage removes a common source of error before the plan reaches the rider."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A dispatch plan has to be fast, but it also has to be usable. A quick route that ignores a bad address, low battery, or tight delivery window creates problems later in the day."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The ten stages"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Order intake: new orders, rider availability, and vehicle status are collected."}],["$","li","1",{"children":"Address check: delivery points, time windows, and service notes are verified."}],["$","li","2",{"children":"Stop planning: each stop gets an expected service time and delivery priority."}],["$","li","3",{"children":"Travel-time check: routes are compared against time-of-day traffic."}],["$","li","4",{"children":"Constraint check: capacity, shift time, customer windows, and range are applied."}],["$","li","5",{"children":"Route options: several possible plans are built for the same order set."}],["$","li","6",{"children":"Plan selection: the lowest-cost workable route plan is selected."}],["$","li","7",{"children":"Battery check: EV routes are checked against real charge capacity."}],["$","li","8",{"children":"ETA check: promised delivery times are verified before dispatch."}],["$","li","9",{"children":"Dispatch output: the final route is sent to the operations team."}]]}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Why staging matters"}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"When everything is checked in one step, small errors slip through. A wrong pin, a missing apartment note, or a low battery warning can reach the rider and become a customer issue."}]}],"$L1d","$L1e","$L1f","$L20","$L21","$L22"]}]]}],"$L23"]}]]}] +24:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$24"}}],"$L25"]}] +26:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +27:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L26",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth routing pipeline diagram","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"A staged dispatch process catches address, range, and ETA issues before riders leave."}]]}]}] +1e:["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"Each stage should remove one kind of mistake. By dispatch time, the route should already be practical."}],["$","cite",null,{"children":"MileTruth Engineering"}]]}]}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Comparing route options"}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The useful part is not only building one route. It is comparing a few workable route options before choosing the plan. One option may save distance, another may protect a tight delivery window, and another may keep an EV closer to a charger."}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Several route plans checked before dispatch"}],["$","li","1",{"children":"Distance, time windows, capacity, and range considered together"}],["$","li","2",{"children":"Range and ETA checked before the route reaches the rider"}],["$","li","3",{"children":"Fast output that still leaves room for dispatcher review"}]]}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The goal is simple: give the dispatch team a route plan they can trust before the first vehicle leaves the hub."}]}] +23:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L27",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L26",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L26",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L26",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L26",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":["$L28","$L29"]}]}],"$L2a","$L2b","$L2c"]}]]}],"$L2d"]}]}] +25:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L26",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Case Study"}],["$","span",null,{"className":"dm-prevnext-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]]}],["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L26",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L26",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L26",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L2e","$L2f"]}]]}]}],"$L30"]}]]}],"$L31"]}] +28:["$","span",null,{"children":"MileTruth"}] +29:["$","span",null,{"className":"dm-blog-category-count","children":1}] +2a:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2c:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2d:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +30:["$","$L1c","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L26",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +31:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +32:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"MileTruth™: 10 Stages to Smarter Dispatch – Doormile"}],["$","meta","1",{"name":"description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"MileTruth,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch"}],["$","meta","6",{"property":"og:title","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","7",{"property":"og:description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-31.webp"}],["$","meta","11",{"property":"og:image:alt","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-09-05T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","17",{"name":"twitter:description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-31.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L32","23",{}]] diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_head.segment.rsc b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_head.segment.rsc new file mode 100644 index 0000000..ea69851 --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MileTruth™: 10 Stages to Smarter Dispatch – Doormile"}],["$","meta","1",{"name":"description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"MileTruth,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch"}],["$","meta","6",{"property":"og:title","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","7",{"property":"og:description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-31.webp"}],["$","meta","11",{"property":"og:image:alt","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-09-05T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","meta","17",{"name":"twitter:description","content":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-31.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_index.segment.rsc b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_tree.segment.rsc b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_tree.segment.rsc new file mode 100644 index 0000000..c7ca164 --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/blog-post-pic-31.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"miletruth-ai-10-stages-to-smarter-dispatch","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog.segment.rsc b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..796cee8 --- /dev/null +++ b/build/.next/server/app/blog/miletruth-ai-10-stages-to-smarter-dispatch.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,521 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +14:"$Sreact.suspense" +16:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +17:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/blog-post-pic-31.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"MileTruth™: 10 Stages to Smarter Dispatch\",\"description\":\"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub.\",\"image\":[\"https://doormile.com/images/blog-post-pic-31.webp\"],\"datePublished\":\"2025-09-05T00:00:00.000Z\",\"dateModified\":\"2025-09-05T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch\"},\"articleSection\":\"MileTruth\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MileTruth™: 10 Stages to Smarter Dispatch\",\"item\":\"https://doormile.com/blog/miletruth-ai-10-stages-to-smarter-dispatch\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-31.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-31.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"MileTruth"}],["$","h1",null,{"className":"dm-banner-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-09-05","children":"Sep 5, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Behind every Doormile dispatch is a step-by-step route planning process. Each stage removes a common source of error before the plan reaches the rider."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A dispatch plan has to be fast, but it also has to be usable. A quick route that ignores a bad address, low battery, or tight delivery window creates problems later in the day."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"The ten stages"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Order intake: new orders, rider availability, and vehicle status are collected."}],["$","li","1",{"children":"Address check: delivery points, time windows, and service notes are verified."}],["$","li","2",{"children":"Stop planning: each stop gets an expected service time and delivery priority."}],["$","li","3",{"children":"Travel-time check: routes are compared against time-of-day traffic."}],["$","li","4",{"children":"Constraint check: capacity, shift time, customer windows, and range are applied."}],["$","li","5",{"children":"Route options: several possible plans are built for the same order set."}],["$","li","6",{"children":"Plan selection: the lowest-cost workable route plan is selected."}],["$","li","7",{"children":"Battery check: EV routes are checked against real charge capacity."}],["$","li","8",{"children":"ETA check: promised delivery times are verified before dispatch."}],["$","li","9",{"children":"Dispatch output: the final route is sent to the operations team."}]]}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"Why staging matters"}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"When everything is checked in one step, small errors slip through. A wrong pin, a missing apartment note, or a low battery warning can reach the rider and become a customer issue."}]}],"$La","$Lb","$Lc","$Ld","$Le","$Lf"]}]]}],"$L10"]}]]}] +11:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$11"}}],"$L12"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L13",null,{"children":["$","$14",null,{"name":"Next.MetadataOutlet","children":"$@15"}]}] +a:["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":["$","$L16",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth routing pipeline diagram","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}],["$","figcaption",null,{"children":"A staged dispatch process catches address, range, and ETA issues before riders leave."}]]}]}] +b:["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"Each stage should remove one kind of mistake. By dispatch time, the route should already be practical."}],["$","cite",null,{"children":"MileTruth Engineering"}]]}]}] +c:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Comparing route options"}]}] +d:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The useful part is not only building one route. It is comparing a few workable route options before choosing the plan. One option may save distance, another may protect a tight delivery window, and another may keep an EV closer to a charger."}]}] +e:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Several route plans checked before dispatch"}],["$","li","1",{"children":"Distance, time windows, capacity, and range considered together"}],["$","li","2",{"children":"Range and ETA checked before the route reaches the rider"}],["$","li","3",{"children":"Fast output that still leaves room for dispatcher review"}]]}]}] +f:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The goal is simple: give the dispatch team a route plan they can trust before the first vehicle leaves the hub."}]}] +10:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L17",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L16",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L16",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L16",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L8",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L16",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":["$L18","$L19"]}]}],"$L1a","$L1b","$L1c"]}]]}],"$L1d"]}]}] +12:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L16",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Case Study"}],["$","span",null,{"className":"dm-prevnext-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}]]}]]}],["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L16",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L16",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L16",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L1e","$L1f"]}]]}]}],"$L20"]}]]}],"$L21"]}] +15:null +18:["$","span",null,{"children":"MileTruth"}] +19:["$","span",null,{"className":"dm-blog-category-count","children":1}] +1a:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1b:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1c:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1d:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1e:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +1f:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +20:["$","$L9","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L16",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +21:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/blog/page.js b/build/.next/server/app/blog/page.js new file mode 100644 index 0000000..795cb12 --- /dev/null +++ b/build/.next/server/app/blog/page.js @@ -0,0 +1,16 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/blog/page.js") +R.c("server/chunks/ssr/_0sw0r2k._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0800b30._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kg5hi0.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_blog_page_actions_0s90404.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(87282) +module.exports=R.m(87282).exports diff --git a/build/.next/server/app/blog/page.js.map b/build/.next/server/app/blog/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/blog/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/page.js.nft.json b/build/.next/server/app/blog/page.js.nft.json new file mode 100644 index 0000000..5f5b2c8 --- /dev/null +++ b/build/.next/server/app/blog/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0800b30._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_0sw0r2k._.js","../../chunks/ssr/_next-internal_server_app_blog_page_actions_0s90404.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kg5hi0.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/blog/page/app-paths-manifest.json b/build/.next/server/app/blog/page/app-paths-manifest.json new file mode 100644 index 0000000..9661d98 --- /dev/null +++ b/build/.next/server/app/blog/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/blog/page": "app/blog/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/blog/page/build-manifest.json b/build/.next/server/app/blog/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/blog/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/page/next-font-manifest.json b/build/.next/server/app/blog/page/next-font-manifest.json new file mode 100644 index 0000000..9df6a95 --- /dev/null +++ b/build/.next/server/app/blog/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/blog/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/blog/page/react-loadable-manifest.json b/build/.next/server/app/blog/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/blog/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/blog/page/server-reference-manifest.json b/build/.next/server/app/blog/page/server-reference-manifest.json new file mode 100644 index 0000000..9847a9b --- /dev/null +++ b/build/.next/server/app/blog/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/blog/page": { + "moduleId": 62245, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/blog/page_client-reference-manifest.js b/build/.next/server/app/blog/page_client-reference-manifest.js new file mode 100644 index 0000000..69a1976 --- /dev/null +++ b/build/.next/server/app/blog/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/blog/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js ":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js ":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/Reveal.tsx ":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/Reveal.tsx":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"5500":{"*":{"id":67161,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"22016":{"*":{"id":38246,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"2018":{"*":{"id":36002,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"5500":{"*":{"id":43489,"name":"*","chunks":[],"async":false}},"22016":{"*":{"id":84707,"name":"*","chunks":[],"async":false}},"2018":{"*":{"id":9386,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/blog/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/blog/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"]}}; + diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.html b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.html new file mode 100644 index 0000000..9a6a793 --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.html @@ -0,0 +1,1168 @@ +The EV Paradox: Solving Range Anxiety for Urban Fleets – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

EV Fleet

The EV Paradox: Solving Range Anxiety for Urban Fleets

Doormile Team2 min read

Electric fleets can lower running costs, but range becomes a daily planning constraint. The route has to match the battery, the load, the traffic, and the return plan.

In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. The EV Paradox: Solving Range Anxiety for Urban Fleets looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub.

Why this matters for fleet teams

Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day.

  • Fewer vehicles needed for the same number of drops
  • Lower cost per drop through better stop sequencing
  • ETAs that match traffic, distance, and delivery windows
  • Less fuel or charge used per completed order

From orders to dispatch

A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road.

The EV Paradox: Solving Range Anxiety for Urban Fleets
EV Fleet: route planning decisions made before dispatch.

A route should be checked before the rider leaves, not explained after the customer calls.

Doormile Operations

Putting it into practice

The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time.

  1. Benchmark today's distance, fleet size, and on-time rate.
  2. Include vehicle capacity, delivery windows, rider shifts, and battery charge.
  3. Check routes against traffic and customer commitments before dispatch.
  4. Compare the next dispatch cycle against the old plan.

Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead.

\ No newline at end of file diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.meta b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.meta new file mode 100644 index 0000000..c2c850c --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.rsc b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.rsc new file mode 100644 index 0000000..64f54a1 --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.rsc @@ -0,0 +1,545 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","the-ev-paradox-solving-range-anxiety-for-urban-fleets"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","the-ev-paradox-solving-range-anxiety-for-urban-fleets","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/ev-paradox.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"The EV Paradox: Solving Range Anxiety for Urban Fleets\",\"description\":\"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch.\",\"image\":[\"https://doormile.com/images/ev-paradox.webp\"],\"datePublished\":\"2025-08-21T00:00:00.000Z\",\"dateModified\":\"2025-08-21T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets\"},\"articleSection\":\"EV Fleet\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The EV Paradox: Solving Range Anxiety for Urban Fleets\",\"item\":\"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/ev-paradox.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/ev-paradox.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"EV Fleet"}],["$","h1",null,{"className":"dm-banner-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-08-21","children":"Aug 21, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Electric fleets can lower running costs, but range becomes a daily planning constraint. The route has to match the battery, the load, the traffic, and the return plan."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. The EV Paradox: Solving Range Anxiety for Urban Fleets looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$L1d","$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +1e:["$","figcaption",null,{"children":"EV Fleet: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"MileTruth"}],["$","span",null,{"className":"dm-prevnext-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]]}],["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","battery-simulation-the-secret-to-ev-route-pre-validation",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],"$L2d","$L2e"]}]]}]}],"$L2f"]}]]}],"$L30"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}] +2e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +2f:["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +30:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +31:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"The EV Paradox: Solving Range Anxiety for Urban Fleets – Doormile"}],["$","meta","1",{"name":"description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"EV Fleet,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets"}],["$","meta","6",{"property":"og:title","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","7",{"property":"og:description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/ev-paradox.webp"}],["$","meta","11",{"property":"og:image:alt","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-08-21T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","17",{"name":"twitter:description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/ev-paradox.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L31","23",{}]] diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_full.segment.rsc b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_full.segment.rsc new file mode 100644 index 0000000..64f54a1 --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_full.segment.rsc @@ -0,0 +1,545 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","the-ev-paradox-solving-range-anxiety-for-urban-fleets"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","the-ev-paradox-solving-range-anxiety-for-urban-fleets","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/ev-paradox.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"The EV Paradox: Solving Range Anxiety for Urban Fleets\",\"description\":\"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch.\",\"image\":[\"https://doormile.com/images/ev-paradox.webp\"],\"datePublished\":\"2025-08-21T00:00:00.000Z\",\"dateModified\":\"2025-08-21T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets\"},\"articleSection\":\"EV Fleet\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The EV Paradox: Solving Range Anxiety for Urban Fleets\",\"item\":\"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/ev-paradox.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/ev-paradox.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"EV Fleet"}],["$","h1",null,{"className":"dm-banner-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-08-21","children":"Aug 21, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Electric fleets can lower running costs, but range becomes a daily planning constraint. The route has to match the battery, the load, the traffic, and the return plan."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. The EV Paradox: Solving Range Anxiety for Urban Fleets looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$L1d","$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +1e:["$","figcaption",null,{"children":"EV Fleet: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"MileTruth"}],["$","span",null,{"className":"dm-prevnext-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]]}],["$","$L1b",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","battery-simulation-the-secret-to-ev-route-pre-validation",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],"$L2d","$L2e"]}]]}]}],"$L2f"]}]]}],"$L30"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}] +2e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +2f:["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +30:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +31:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"The EV Paradox: Solving Range Anxiety for Urban Fleets – Doormile"}],["$","meta","1",{"name":"description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"EV Fleet,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets"}],["$","meta","6",{"property":"og:title","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","7",{"property":"og:description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/ev-paradox.webp"}],["$","meta","11",{"property":"og:image:alt","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-08-21T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","17",{"name":"twitter:description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/ev-paradox.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L31","23",{}]] diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_head.segment.rsc b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_head.segment.rsc new file mode 100644 index 0000000..bc0660e --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"The EV Paradox: Solving Range Anxiety for Urban Fleets – Doormile"}],["$","meta","1",{"name":"description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"EV Fleet,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets"}],["$","meta","6",{"property":"og:title","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","7",{"property":"og:description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/ev-paradox.webp"}],["$","meta","11",{"property":"og:image:alt","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-08-21T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","meta","17",{"name":"twitter:description","content":"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/ev-paradox.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_index.segment.rsc b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_tree.segment.rsc b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_tree.segment.rsc new file mode 100644 index 0000000..2f95800 --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/ev-paradox.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"the-ev-paradox-solving-range-anxiety-for-urban-fleets","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog.segment.rsc b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..3f35965 --- /dev/null +++ b/build/.next/server/app/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,520 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +15:"$Sreact.suspense" +17:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +18:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/ev-paradox.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"The EV Paradox: Solving Range Anxiety for Urban Fleets\",\"description\":\"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch.\",\"image\":[\"https://doormile.com/images/ev-paradox.webp\"],\"datePublished\":\"2025-08-21T00:00:00.000Z\",\"dateModified\":\"2025-08-21T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets\"},\"articleSection\":\"EV Fleet\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The EV Paradox: Solving Range Anxiety for Urban Fleets\",\"item\":\"https://doormile.com/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/ev-paradox.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/ev-paradox.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"EV Fleet"}],["$","h1",null,{"className":"dm-banner-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-08-21","children":"Aug 21, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Electric fleets can lower running costs, but range becomes a daily planning constraint. The route has to match the battery, the load, the traffic, and the return plan."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. The EV Paradox: Solving Range Anxiety for Urban Fleets looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":["$La","$Lb"]}]}],"$Lc","$Ld","$Le","$Lf","$L10"]}]]}],"$L11"]}]]}] +12:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$12"}}],"$L13"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}] +a:["$","span",null,{"className":"dm-article-figure-img","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}]}] +b:["$","figcaption",null,{"children":"EV Fleet: route planning decisions made before dispatch."}] +c:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +d:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +e:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +f:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +10:["$","$L9","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +11:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L18",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","why-mathematical-precision-beats-heuristics-in-routing",{"children":["$","$L8",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","time",null,{"dateTime":"2025-08-07","className":"dm-blog-recent-date","children":"Aug 7, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L19","$L1a","$L1b"]}]]}],"$L1c"]}]}] +13:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"MileTruth"}],["$","span",null,{"className":"dm-prevnext-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}]]}]]}],["$","$L8",null,{"href":"/blog/why-mathematical-precision-beats-heuristics-in-routing","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Technology"}],["$","span",null,{"className":"dm-prevnext-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","battery-simulation-the-secret-to-ev-route-pre-validation",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/battery-simulation-the-secret-to-ev-route-pre-validation","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-3.webp","alt":"Battery Simulation: The Secret to EV Route Pre-Validation","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"EV Fleet"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"Battery Simulation: The Secret to EV Route Pre-Validation"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],"$L1d","$L1e"]}]]}]}],"$L1f"]}]]}],"$L20"]}] +16:null +19:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1a:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1b:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}] +1e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +1f:["$","$L9","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +20:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.html b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.html new file mode 100644 index 0000000..401d28e --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.html @@ -0,0 +1,1168 @@ +Why Mathematical Precision Beats Heuristics in Routing – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Technology

Why Mathematical Precision Beats Heuristics in Routing

Doormile Team2 min read

Simple routing rules are fast to set up, but they can quietly add distance every day. Better planning compares more route options before dispatch.

In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Why Mathematical Precision Beats Heuristics in Routing looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub.

Why this matters for fleet teams

Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day.

  • Fewer vehicles needed for the same number of drops
  • Lower cost per drop through better stop sequencing
  • ETAs that match traffic, distance, and delivery windows
  • Less fuel or charge used per completed order

From orders to dispatch

A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road.

Why Mathematical Precision Beats Heuristics in Routing
Technology: route planning decisions made before dispatch.

A route should be checked before the rider leaves, not explained after the customer calls.

Doormile Operations

Putting it into practice

The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time.

  1. Benchmark today's distance, fleet size, and on-time rate.
  2. Include vehicle capacity, delivery windows, rider shifts, and battery charge.
  3. Check routes against traffic and customer commitments before dispatch.
  4. Compare the next dispatch cycle against the old plan.

Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead.

\ No newline at end of file diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.meta b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.meta new file mode 100644 index 0000000..6130345 --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/blog/layout,_N_T_/blog/[slug]/layout,_N_T_/blog/[slug]/page,_N_T_/blog/why-mathematical-precision-beats-heuristics-in-routing" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/blog/$d$slug/__PAGE__", + "/blog/$d$slug", + "/blog", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.rsc b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.rsc new file mode 100644 index 0000000..aced1b5 --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.rsc @@ -0,0 +1,545 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","why-mathematical-precision-beats-heuristics-in-routing"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","why-mathematical-precision-beats-heuristics-in-routing","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-14.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Why Mathematical Precision Beats Heuristics in Routing\",\"description\":\"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows.\",\"image\":[\"https://doormile.com/images/blog-post-pic-14.webp\"],\"datePublished\":\"2025-08-07T00:00:00.000Z\",\"dateModified\":\"2025-08-07T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing\"},\"articleSection\":\"Technology\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Why Mathematical Precision Beats Heuristics in Routing\",\"item\":\"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-14.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-14.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Technology"}],["$","h1",null,{"className":"dm-banner-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-08-07","children":"Aug 7, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Simple routing rules are fast to set up, but they can quietly add distance every day. Better planning compares more route options before dispatch."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Why Mathematical Precision Beats Heuristics in Routing looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":"$L1d"}],"$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}] +1e:["$","figcaption",null,{"children":"Technology: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]]}],["$","$L1b",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Fleet Management"}],["$","span",null,{"className":"dm-prevnext-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L2d","$L2e"]}]]}]}],"$L2f"]}]]}],"$L30"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +2f:["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +30:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +31:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Why Mathematical Precision Beats Heuristics in Routing – Doormile"}],["$","meta","1",{"name":"description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Technology,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing"}],["$","meta","6",{"property":"og:title","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","7",{"property":"og:description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-14.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-08-07T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","17",{"name":"twitter:description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-14.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L31","23",{}]] diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_full.segment.rsc b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_full.segment.rsc new file mode 100644 index 0000000..aced1b5 --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_full.segment.rsc @@ -0,0 +1,545 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +e:"$Sreact.suspense" +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +13:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","blog","why-mathematical-precision-beats-heuristics-in-routing"],"q":"","i":false,"f":[[["",{"children":["blog",{"children":[["slug","why-mathematical-precision-beats-heuristics-in-routing","d",null],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","div",null,{"hidden":true,"children":["$","$L13",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L14"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$15",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +16:[] +10:"$W16" +:HL["/images/blog-post-pic-14.webp","image"] +17:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +c:["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Why Mathematical Precision Beats Heuristics in Routing\",\"description\":\"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows.\",\"image\":[\"https://doormile.com/images/blog-post-pic-14.webp\"],\"datePublished\":\"2025-08-07T00:00:00.000Z\",\"dateModified\":\"2025-08-07T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing\"},\"articleSection\":\"Technology\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Why Mathematical Precision Beats Heuristics in Routing\",\"item\":\"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-14.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18","$L19"]}],"$L1a"]}]}]]}] +1b:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +1c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +18:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-14.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Technology"}],["$","h1",null,{"className":"dm-banner-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]}]}] +19:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L1b",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L1b",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-08-07","children":"Aug 7, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Simple routing rules are fast to set up, but they can quietly add distance every day. Better planning compares more route options before dispatch."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L1c","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Why Mathematical Precision Beats Heuristics in Routing looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L1c","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L1c","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L1c","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L1c","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L1c","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L1c","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":"$L1d"}],"$L1e"]}]}],"$L1f","$L20","$L21","$L22","$L23"]}]]}],"$L24"]}]]}] +25:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +1a:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"]}] +27:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +28:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +1d:["$","$L27",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}] +1e:["$","figcaption",null,{"children":"Technology: route planning decisions made before dispatch."}] +1f:["$","$L1c","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +20:["$","$L1c","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +21:["$","$L1c","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +22:["$","$L1c","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +23:["$","$L1c","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +24:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L28",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L29","$L2a","$L2b"]}]]}],"$L2c"]}]}] +26:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L1b",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]]}],["$","$L1b",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Fleet Management"}],["$","span",null,{"className":"dm-prevnext-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L27",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L1c","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L1c","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L2d","$L2e"]}]]}]}],"$L2f"]}]]}],"$L30"]}] +29:["$","li","Operations",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2a:["$","li","Sustainability",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +2b:["$","li","Technology",{"children":["$","$L1b",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +2c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +2d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +2e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +2f:["$","$L1c","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L1b",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L27",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +30:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L1b",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +31:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +f:null +14:[["$","title","0",{"children":"Why Mathematical Precision Beats Heuristics in Routing – Doormile"}],["$","meta","1",{"name":"description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Technology,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing"}],["$","meta","6",{"property":"og:title","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","7",{"property":"og:description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-14.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-08-07T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","17",{"name":"twitter:description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-14.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L31","23",{}]] diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_head.segment.rsc b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_head.segment.rsc new file mode 100644 index 0000000..ee9c939 --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Why Mathematical Precision Beats Heuristics in Routing – Doormile"}],["$","meta","1",{"name":"description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","2",{"name":"author","content":"Doormile Team"}],["$","meta","3",{"name":"keywords","content":"Technology,last-mile logistics,EV fleet,MileTruth,route optimisation"}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","link","5",{"rel":"canonical","href":"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing"}],["$","meta","6",{"property":"og:title","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","7",{"property":"og:description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","8",{"property":"og:url","content":"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing"}],["$","meta","9",{"property":"og:site_name","content":"Doormile"}],["$","meta","10",{"property":"og:image","content":"https://doormile.com/images/blog-post-pic-14.webp"}],["$","meta","11",{"property":"og:image:alt","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2025-08-07T00:00:00.000Z"}],["$","meta","14",{"property":"article:author","content":"Doormile Team"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Why Mathematical Precision Beats Heuristics in Routing"}],["$","meta","17",{"name":"twitter:description","content":"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows."}],["$","meta","18",{"name":"twitter:image","content":"https://doormile.com/images/blog-post-pic-14.webp"}],["$","link","19",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","21",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","22",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","23",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_index.segment.rsc b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_tree.segment.rsc b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_tree.segment.rsc new file mode 100644 index 0000000..4127a49 --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/blog-post-pic-14.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"blog","param":null,"prefetchHints":0,"slots":{"children":{"name":"slug","param":{"type":"d","key":"why-mathematical-precision-beats-heuristics-in-routing","siblings":null},"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog.segment.rsc b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog/$d$slug.segment.rsc b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog/$d$slug.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog/$d$slug.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog/$d$slug/__PAGE__.segment.rsc b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000..45e5779 --- /dev/null +++ b/build/.next/server/app/blog/why-mathematical-precision-beats-heuristics-in-routing.segments/blog/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,520 @@ +1:"$Sreact.fragment" +8:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],""] +9:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"ScrollReveal"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +15:"$Sreact.suspense" +17:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"Image"] +18:I[23096,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/16tb205t0~jhb.js"],"default"] +:HL["/images/blog-post-pic-14.webp","image"] +2:T3d6f, + .dm-single-blog { + --dm-red: #c01227; + --dm-red-hover: #e31d32; + --dm-radius-card: 22px; + --dm-radius-img: 20px; + --dm-radius-badge: 8px; + --dm-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.05); + --dm-border: 1px solid rgba(15, 23, 42, 0.09); + --dm-space-p: 24px; + --dm-space-h: 32px; + --dm-space-img: 32px; + --dm-space-quote: 40px; + --dm-sticky-top: 138px; + --dm-measure: min(1100px, 100%); + font-family: var(--font-manrope), sans-serif; + } + + /* Heading normalization. Beat the global theme's .elementor-kit-5 h1-h6 + (120/80/60px UPPERCASE) rules with !important on our own classes. */ + .dm-single-blog :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline, + specificity 0-1-1) so blog links keep our colors and never get underlined. */ + .dm-single-blog a { text-decoration: none !important; } + + /* Page banner: tall homepage-scale frame with only badge + title inside */ + /* Compound selector (specificity 20) + !important beats the global 800px + single-class height rules so the blog banner can use viewport heights. */ + .custom-standard-hero-card.dm-banner-card { + height: 90vh !important; + min-height: 85vh !important; + } + @media (max-width: 1024px) { + .custom-standard-hero-card.dm-banner-card { height: 80vh !important; min-height: 75vh !important; } + } + @media (max-width: 600px) { + .custom-standard-hero-card.dm-banner-card { height: 78vh !important; min-height: 72vh !important; } + } + + .dm-banner-inner { + position: relative; width: 100%; height: 100%; + display: flex; flex-direction: column; align-items: center; justify-content: center; + text-align: center; gap: clamp(22px, 2.6vw, 34px); + padding: clamp(48px, 8vh, 96px) clamp(20px, 5vw, 48px); + } + + .dm-banner-category { + display: inline-block; background: var(--dm-red); color: #fff; + font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.6px; + padding: 9px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(192,18,39,0.45); + } + .dm-banner-title { + font-family: var(--font-manrope), sans-serif !important; + font-size: clamp(34px, 5vw, 60px) !important; font-weight: 850 !important; + line-height: 1.16 !important; letter-spacing: -1.2px !important; + color: #ffffff !important; margin: 0; max-width: 820px; + text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,0.38); + } + @media (max-width: 1024px) { .dm-banner-title { font-size: clamp(32px, 6vw, 48px) !important; max-width: 90%; } } + @media (max-width: 600px) { .dm-banner-title { font-size: clamp(28px, 8vw, 38px) !important; max-width: 90%; } } + + /* Content wrap begins immediately below the banner */ + /* Shared content container: the SAME max-width + horizontal padding is used + by BlogPostFooter (.dm-blog-footer-inner) so the article body, headings, + images, Prev/Next, Related Articles and the CTA banner all align to one + grid with identical left/right edges. Keep both in sync. */ + .dm-blog-wrap { + max-width: 1280px; margin: 0 auto; + /* 20px mobile padding floor → 40px on desktop; matches the footer container. */ + padding: clamp(14px, 2vw, 26px) clamp(20px, 4vw, 40px) 0; + } + @media (max-width: 767px) { + .dm-blog-wrap { + padding-left: 16px; + padding-right: 16px; + } + } + + /* ── Article meta bar (directly under the hero) ── */ + .dm-meta-bar { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; + padding: clamp(20px, 2.6vw, 30px) 0; margin-bottom: clamp(26px, 3vw, 44px); + border-bottom: 1px solid rgba(15,23,42,0.10); + } + .dm-meta-breadcrumb ol { + list-style: none; display: flex; flex-wrap: wrap; align-items: center; + gap: 8px; margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: #64748b; + } + .dm-meta-breadcrumb a { color: #64748b !important; text-decoration: none; transition: color .2s ease; } + .dm-meta-breadcrumb a:hover { color: var(--dm-red) !important; } + .dm-meta-sep { color: #cbd5e1; } + .dm-meta-current { + color: #0f172a; font-weight: 700; + max-width: min(40ch, 46vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + } + @media (max-width: 600px) { .dm-meta-current { max-width: 56vw; } } + .dm-meta-items { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; } + .dm-meta-item { + display: inline-flex; align-items: center; gap: 7px; + font-size: 13.5px; font-weight: 600; color: #475569; + } + .dm-meta-item svg { color: var(--dm-red); flex: 0 0 auto; } + .dm-meta-author { color: #0f172a; font-weight: 700; } + @media (max-width: 600px) { .dm-meta-bar { gap: 12px; } } + .dm-blog-layout { + display: grid; grid-template-columns: minmax(0,1fr) 320px; + /* Tighter gap gives the reading column more room next to the 320px sidebar. */ + gap: clamp(28px, 3vw, 56px); align-items: start; + } + @media (max-width: 1024px) { + .dm-blog-layout { grid-template-columns: 1fr; gap: 48px; } + /* Single-column (tablet/mobile): cap the reading column and centre it so the + article never sits left-aligned with a large empty right gutter. */ + .dm-blog-main { max-width: 900px; margin-inline: auto; } + } + .dm-blog-main { min-width: 0; } + + /* ── Intro lead ── */ + .dm-blog-intro { + max-width: var(--dm-measure); + font-size: clamp(18px, 1.5vw, 20px); line-height: 1.65; font-weight: 500; + color: #475569; margin: 0 0 clamp(26px, 3vw, 38px); padding-left: 20px; + border-left: 3px solid var(--dm-red); + } + + /* ── Article body ── */ + .dm-article-body { max-width: var(--dm-measure); } + .dm-article-p { + font-size: 18px !important; line-height: 1.8 !important; color: #334155; font-weight: 450; + margin: 0 0 var(--dm-space-p); + } + .dm-article-h2 { + font-size: clamp(23px, 2vw, 30px) !important; font-weight: 800 !important; letter-spacing: -.3px !important; + color: #0f172a !important; line-height: 1.3 !important; margin: 48px 0 var(--dm-space-h); + text-wrap: balance; + } + /* Each article block is wrapped in its OWN ScrollReveal
, so a bare + :first-child rule matched every heading (each is the only child of its + wrapper) and zeroed its top margin, collapsing the gap above every + section heading. Scope the reset to only the article body's first block. */ + .dm-article-body > :first-child :where(.dm-article-h2, .dm-article-h3), + .dm-article-body > .dm-article-h2:first-child, + .dm-article-body > .dm-article-h3:first-child { margin-top: 0; } + .dm-article-h3 { + font-size: clamp(19px, 1.5vw, 23px) !important; font-weight: 800 !important; letter-spacing: -.2px !important; + color: #1e293b !important; line-height: 1.34 !important; margin: 40px 0 18px; + text-wrap: balance; + } + @media (max-width: 600px) { + .dm-article-p { font-size: 16px !important; } + .dm-article-ul li, .dm-article-ol li { font-size: 15.5px; } + .dm-article-h2 { font-size: clamp(22px, 6vw, 28px) !important; margin-top: 38px; } + .dm-article-h3 { font-size: clamp(18px, 5vw, 22px) !important; } + } + + .dm-article-ul, .dm-article-ol { + /* Top margin (was 0) separates the list from the paragraph above it; + matching bottom margin keeps it clear of the next heading/paragraph. + Slightly larger than --dm-space-p so the list reads as its own block. */ + margin: clamp(26px, 2.4vw, 32px) 0 clamp(26px, 2.4vw, 32px); + padding-left: 2px; list-style: none; + display: flex; flex-direction: column; gap: 15px; + } + /* Prefixed with .dm-article-body so these beat the theme's global + ".logico-front-end ul li:before" fontello-glyph bullet (specificity 0,1,3), + which otherwise replaces our clean red dot with a misaligned checkmark glyph + and adds its own 1.7em indent. */ + .dm-article-body .dm-article-ul li, .dm-article-body .dm-article-ol li { + position: relative; padding-left: 34px; + font-size: 17px; line-height: 1.65; color: #334155; font-weight: 450; + } + .dm-article-body .dm-article-ul li::before { + content: ""; position: absolute; left: 7px; top: 10px; + width: 8px; height: 8px; border-radius: 50%; background: var(--dm-red); + /* kill any inherited fontello glyph from the global rule */ + font-size: 0; line-height: 0; + } + .dm-article-ol { counter-reset: dm-li; } + .dm-article-body .dm-article-ol li { counter-increment: dm-li; } + .dm-article-body .dm-article-ol li::before { + content: counter(dm-li); position: absolute; left: 0; top: 0; + width: 24px; height: 24px; border-radius: 7px; + background: rgba(192,18,39,0.10); color: var(--dm-red); + font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; + } + + /* ── Quote ── */ + .dm-article-quote { + position: relative; margin: var(--dm-space-quote) 0; padding: 30px 32px 30px 64px; + background: linear-gradient(135deg, #fbf2f3 0%, #fdf7f8 100%); + border-left: 4px solid var(--dm-red); border-radius: 0 18px 18px 0; + box-shadow: 0 8px 28px rgba(192, 18, 39, 0.06); + } + .dm-article-quote::before { + content: "\201C"; position: absolute; left: 22px; top: 8px; + font-family: Georgia, "Times New Roman", serif; + font-size: 64px; line-height: 1; color: rgba(192, 18, 39, 0.28); font-weight: 700; + } + .dm-article-quote p { + font-size: clamp(19px, 2vw, 23px); line-height: 1.5; font-weight: 600; + font-style: italic; color: #1e293b; margin: 0; + } + .dm-article-quote cite { + display: block; margin-top: 16px; font-size: 13px; font-weight: 700; + font-style: normal; color: var(--dm-red); text-transform: uppercase; letter-spacing: .6px; + } + @media (max-width: 600px) { .dm-article-quote { padding: 26px 22px; } .dm-article-quote::before { display: none; } } + + /* ── Images ── */ + .dm-article-figure { margin: var(--dm-space-img) 0; } + .dm-article-figure-img { + position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; + border-radius: var(--dm-radius-img); overflow: hidden; box-shadow: 0 14px 34px rgba(15,23,42,0.10); + } + .dm-article-figure figcaption { + margin-top: 14px; font-size: 13.5px; color: #94a3b8; font-weight: 500; + text-align: center; font-style: italic; + } + + /* ── Sidebar ── */ + .dm-blog-aside-wrap { position: relative; } + .dm-blog-sidebar { + display: flex; flex-direction: column; gap: 18px; + position: sticky; top: var(--dm-sticky-top); + } + @media (max-width: 1024px) { .dm-blog-sidebar { position: static; gap: 20px; } } + + .dm-blog-widget { + background: #fff; border: var(--dm-border); border-radius: var(--dm-radius-card); + padding: 20px; box-shadow: var(--dm-shadow-card); + } + .dm-blog-widget-title { + font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; + letter-spacing: .8px !important; line-height: 1.35 !important; color: #0f172a !important; + margin: 0 0 15px; padding: 0 0 12px; + border-bottom: 1px solid rgba(15,23,42,0.08); + overflow: visible; white-space: normal; word-break: normal; + } + + /* Search */ + .dm-sr-only { + position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; + overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; + } + .dm-blog-search { position: relative; } + .dm-blog-search-form { position: relative; } + .dm-blog-search-input { + width: 100%; height: 46px; border: 1.5px solid #e2e8f0; border-radius: 12px; + padding: 0 42px 0 15px; font-size: 14px; font-family: inherit; color: #0f172a; + background: #f8fafc; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; + } + .dm-blog-search-input::placeholder { color: #9c9c9c; } + .dm-blog-search-input:focus { + outline: none; border-color: var(--dm-red); background: #fff; + box-shadow: 0 0 0 3px rgba(192,18,39,0.11); + } + .dm-blog-search-icon { + position: absolute; right: 14px; top: 50%; transform: translateY(-50%); + color: #94a3b8; pointer-events: none; display: flex; + } + .dm-blog-search-results { + position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; + background: #fff; border: 1px solid rgba(15,23,42,0.10); border-radius: 14px; + box-shadow: 0 18px 42px rgba(15,23,42,0.14); overflow: hidden; + } + .dm-blog-search-results ul { list-style: none; margin: 0; padding: 6px; } + .dm-blog-search-result { + display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; + border-radius: 10px; text-decoration: none; transition: background .15s ease; + } + .dm-blog-search-result:hover { background: #f8fafc; } + .dm-blog-search-result-cat { + font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .8px; color: var(--dm-red); + } + .dm-blog-search-result-title { font-size: 13.5px; font-weight: 600; color: #1e293b; line-height: 1.35; } + .dm-blog-search-empty { margin: 0; padding: 14px 12px; font-size: 13px; color: #64748b; } + + /* Recent posts */ + .dm-blog-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 15px; } + .dm-blog-recent-item { display: flex; gap: 13px; align-items: center; text-decoration: none; } + .dm-blog-recent-thumb { + position: relative; flex: 0 0 62px; width: 62px; height: 62px; + border-radius: 13px; overflow: hidden; background: #f1f5f9; + } + .dm-blog-recent-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; } + .dm-blog-recent-title { + font-size: 13.5px; font-weight: 700; color: #1e293b; line-height: 1.35; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-blog-recent-item:hover .dm-blog-recent-title { color: var(--dm-red); } + .dm-blog-recent-date { font-size: 11.5px; font-weight: 600; color: #94a3b8; } + + /* Categories */ + .dm-blog-categories { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } + .dm-blog-category-item { + display: flex; align-items: center; justify-content: space-between; gap: 10px; + padding: 11px 2px; text-decoration: none; font-size: 14px; font-weight: 600; color: #334155 !important; + border-bottom: 1px solid rgba(15,23,42,0.06); transition: color .2s ease, padding-left .2s ease; + } + .dm-blog-categories li:last-child .dm-blog-category-item { border-bottom: none; } + .dm-blog-category-item:hover { color: var(--dm-red); padding-left: 6px; } + .dm-blog-category-item > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .dm-blog-category-count { + flex: 0 0 auto; font-size: 11px; font-weight: 800; color: #94a3b8; background: #f1f5f9; + min-width: 24px; height: 22px; border-radius: 7px; display: inline-flex; + align-items: center; justify-content: center; padding: 0 7px; + } + + /* CTA card */ + .dm-blog-cta-card { background: #1f1f1f; border-color: #1f1f1f; } + .dm-blog-cta-title { font-size: 18px !important; font-weight: 800 !important; color: #fff !important; line-height: 1.32 !important; margin: 0 0 10px; letter-spacing: -.2px !important; } + .dm-blog-cta-text { font-size: 13.5px; line-height: 1.6; color: #c7c7c7; margin: 0 0 20px; font-weight: 450; } + .dm-blog-cta-btn { + display: inline-flex; align-items: center; gap: 8px; + background: var(--dm-red); color: #fff !important; font-size: 13.5px; font-weight: 700; + padding: 12px 22px; border-radius: 12px; text-decoration: none; + transition: background .2s ease, transform .2s ease; + } + .dm-blog-cta-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Why Mathematical Precision Beats Heuristics in Routing\",\"description\":\"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows.\",\"image\":[\"https://doormile.com/images/blog-post-pic-14.webp\"],\"datePublished\":\"2025-08-07T00:00:00.000Z\",\"dateModified\":\"2025-08-07T00:00:00.000Z\",\"author\":{\"@type\":\"Organization\",\"name\":\"Doormile Team\",\"url\":\"https://doormile.com\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Doormile\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://doormile.com/images/cropped-image-2.png\"}},\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing\"},\"articleSection\":\"Technology\"}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://doormile.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://doormile.com/blog\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Why Mathematical Precision Beats Heuristics in Routing\",\"item\":\"https://doormile.com/blog/why-mathematical-precision-beats-heuristics-in-routing\"}]}"}}],["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":[["$","article",null,{"className":"dm-single-blog","children":[["$","link",null,{"rel":"preload","as":"image","href":"/images/blog-post-pic-14.webp"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3","$L4"]}],"$L5"]}]}]]}],["$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card dm-banner-card","style":{"backgroundImage":"url(/images/blog-post-pic-14.webp)","--hero-overlay":"linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.46) 55%, rgba(0,0,0,0.60) 100%)"},"children":["$","div",null,{"className":"e-con-inner dm-banner-inner","children":[["$","span",null,{"className":"dm-banner-category","children":"Technology"}],["$","h1",null,{"className":"dm-banner-title","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]}]}] +4:["$","div",null,{"className":"dm-blog-wrap","children":[["$","div",null,{"className":"dm-meta-bar","children":[["$","nav",null,{"className":"dm-meta-breadcrumb","aria-label":"Breadcrumb","children":["$","ol",null,{"children":[["$","li",null,{"children":["$","$L8",null,{"href":"/","children":"Home"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"children":["$","$L8",null,{"href":"/blog","children":"Blog"}]}],["$","li",null,{"aria-hidden":"true","className":"dm-meta-sep","children":"/"}],["$","li",null,{"aria-current":"page","className":"dm-meta-current","children":"Why Mathematical Precision Beats Heuristics in Routing"}]]}]}],["$","div",null,{"className":"dm-meta-items","children":[["$","span",null,{"className":"dm-meta-item dm-meta-author","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","path",null,{"d":"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}],["$","circle",null,{"cx":"12","cy":"7","r":"4"}]]}],"Doormile Team"]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"2"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}]]}],["$","time",null,{"dateTime":"2025-08-07","children":"Aug 7, 2025"}]]}],["$","span",null,{"className":"dm-meta-item","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","circle",null,{"cx":"12","cy":"12","r":"9"}],["$","polyline",null,{"points":"12 7 12 12 15 14"}]]}],2," min read"]}]]}]]}],["$","div",null,{"className":"dm-blog-layout","children":[["$","div",null,{"className":"dm-blog-main","children":[["$","p",null,{"className":"dm-blog-intro","children":"Simple routing rules are fast to set up, but they can quietly add distance every day. Better planning compares more route options before dispatch."}],["$","div",null,{"className":"dm-article-body","children":[["$","$L9","0",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. Why Mathematical Precision Beats Heuristics in Routing looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub."}]}],["$","$L9","1",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Why this matters for fleet teams"}]}],["$","$L9","2",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."}]}],["$","$L9","3",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ul",null,{"className":"dm-article-ul","children":[["$","li","0",{"children":"Fewer vehicles needed for the same number of drops"}],["$","li","1",{"children":"Lower cost per drop through better stop sequencing"}],["$","li","2",{"children":"ETAs that match traffic, distance, and delivery windows"}],["$","li","3",{"children":"Less fuel or charge used per completed order"}]]}]}],["$","$L9","4",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h3",null,{"className":"dm-article-h3","children":"From orders to dispatch"}]}],["$","$L9","5",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."}]}],["$","$L9","6",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","figure",null,{"className":"dm-article-figure","children":[["$","span",null,{"className":"dm-article-figure-img","children":"$La"}],"$Lb"]}]}],"$Lc","$Ld","$Le","$Lf","$L10"]}]]}],"$L11"]}]]}] +12:T2021, + .dm-blog-footer { + font-family: var(--font-manrope), sans-serif; --dm-red: #c01227; --dm-red-hover: #e31d32; + /* The global theme applies 72px top/bottom section padding — strip it so the + inner container is the single source of vertical rhythm (no double gap). */ + padding: 0 !important; + } + /* Neutralize the global theme's 120/80/60px UPPERCASE heading rules */ + .dm-blog-footer :where(h1, h2, h3, h4, h5, h6) { + font-family: var(--font-manrope), sans-serif !important; + text-transform: none !important; + font-style: normal !important; + font-weight: 800; + } + /* Neutralize the theme's .elementor-kit-5 a (red color + underline) */ + .dm-blog-footer a { text-decoration: none !important; } + /* Shared content container — mirrors SingleBlog's .dm-blog-wrap (same 1280px + max-width + 20→40px horizontal padding) so Prev/Next, Related and the CTA + align to the exact same left/right edges as the article body above. + Vertical rhythm: ~64px from the article end to the Prev/Next divider, then a + consistent ~64–72px section→section gap (no 120px+ voids). */ + .dm-blog-footer-inner { + max-width: 1280px; margin: 0 auto; + /* Compact vertical rhythm on an 8px system. Top padding sets the + article→Prev/Next gap (~24–32px); the inter-section gap sets the + Prev/Next→Related gap (~32–48px). No large arbitrary voids. */ + /* Minimal bottom padding — the global site footer already contributes its + own 20px top inset, so the CTA banner sits close to it without a void. */ + padding: clamp(24px, 3vw, 32px) clamp(20px, 4vw, 40px) clamp(8px, 1.5vw, 16px); + display: flex; flex-direction: column; gap: clamp(32px, 4vw, 48px); + } + @media (max-width: 767px) { + .dm-blog-footer-inner { + padding-left: 16px; + padding-right: 16px; + } + } + + /* Prev / Next */ + .dm-prevnext { + display: grid; grid-template-columns: 1fr 1fr; gap: 20px; + /* Halved from 40px: tight divider→cards spacing without crowding. */ + padding-top: clamp(16px, 2vw, 24px); border-top: 1px solid rgba(15,23,42,0.08); + } + @media (max-width: 640px) { .dm-prevnext { grid-template-columns: 1fr; } } + .dm-prevnext-placeholder { display: block; } + .dm-prevnext-card { + display: flex; gap: 16px; align-items: center; padding: 16px; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + text-decoration: none; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; + } + .dm-prevnext-card:hover { + transform: translateY(-4px); border-color: rgba(192,18,39,0.2); + box-shadow: 0 16px 34px rgba(192,18,39,0.10); + } + .dm-prevnext-thumb { + position: relative; flex: 0 0 80px; width: 80px; height: 80px; + border-radius: 16px; overflow: hidden; background: #f1f5f9; + } + .dm-prevnext-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; } + .dm-prevnext-next { text-align: right; } + .dm-prevnext-next .dm-prevnext-text { align-items: flex-end; } + .dm-prevnext-label { + display: inline-flex; align-items: center; gap: 6px; + font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--dm-red); + } + .dm-prevnext-cat { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .5px; } + .dm-prevnext-title { + font-size: 15.5px; font-weight: 700; color: #1e293b; line-height: 1.4; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-prevnext-card:hover .dm-prevnext-title { color: var(--dm-red); } + + /* Related */ + .dm-related-heading { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 850 !important; letter-spacing: -.4px !important; + line-height: 1.25 !important; color: #0f172a !important; margin: 0 0 24px; + } + .dm-related-grid { + display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; + } + @media (max-width: 1024px) { .dm-related-grid { grid-template-columns: repeat(2, 1fr); } } + @media (max-width: 700px) { .dm-related-grid { grid-template-columns: 1fr; gap: 24px; } } + + .dm-related-card { + display: flex; flex-direction: column; height: 100%; + background: #fff; border: 1px solid rgba(15,23,42,0.09); border-radius: 22px; + overflow: hidden; box-shadow: 0 4px 24px rgba(15,23,42,0.05); text-decoration: none; + transition: transform .4s cubic-bezier(0.2,0.8,0.2,1), box-shadow .4s ease, border-color .4s ease; + } + .dm-related-card:hover { + transform: translateY(-8px); box-shadow: 0 22px 44px rgba(192,18,39,0.13); + border-color: rgba(192,18,39,0.2); + } + .dm-related-img { + position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #f1f5f9; + } + .dm-related-img img { transition: transform .5s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-img img { transform: scale(1.05); } + .dm-related-badge { + position: absolute; top: 14px; left: 14px; z-index: 5; background: var(--dm-red); color: #fff; + font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; + padding: 5px 11px; border-radius: 8px; box-shadow: 0 4px 12px rgba(192,18,39,0.25); + } + .dm-related-body { display: flex; flex-direction: column; flex: 1; padding: 22px; } + .dm-related-card-title { + font-size: 17px !important; font-weight: 800 !important; color: #1e293b !important; line-height: 1.4 !important; + letter-spacing: -.2px !important; margin: 0 0 10px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + transition: color .2s ease; + } + .dm-related-card:hover .dm-related-card-title { color: var(--dm-red); } + .dm-related-card-excerpt { + font-size: 13.5px; font-weight: 500; color: #64748b; line-height: 1.6; margin: 0 0 18px; + display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; + } + .dm-related-readmore { + margin-top: auto; display: inline-flex; align-items: center; gap: 7px; + font-size: 12.5px; font-weight: 800; color: var(--dm-red); + text-transform: uppercase; letter-spacing: .6px; + } + .dm-related-readmore-arrow { transition: transform .3s cubic-bezier(0.2,0.8,0.2,1); } + .dm-related-card:hover .dm-related-readmore-arrow { transform: translateX(5px); } + + /* Contact CTA banner */ + .dm-blog-contact-cta { + display: flex; align-items: center; justify-content: space-between; gap: 32px; + flex-wrap: wrap; + background: linear-gradient(135deg, #1a1a1a 0%, #2d1417 100%); + border-radius: 30px; padding: clamp(32px, 4vw, 56px); + position: relative; overflow: hidden; + } + .dm-blog-contact-cta::after { + content: ""; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; + background: radial-gradient(circle, rgba(192,18,39,0.40), transparent 70%); + pointer-events: none; + } + .dm-blog-contact-cta-content { position: relative; z-index: 1; max-width: 640px; } + .dm-blog-contact-eyebrow { + display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; + letter-spacing: 1.4px; color: #ff8088; margin-bottom: 14px; + } + .dm-blog-contact-title { + font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800 !important; line-height: 1.25 !important; + letter-spacing: -.3px !important; color: #ffffff !important; margin: 0 0 12px; text-wrap: balance; + } + .dm-blog-contact-sub { + font-size: 15.5px; line-height: 1.65; color: #e2e2e2; margin: 0; font-weight: 450; + } + .dm-blog-contact-btn { + position: relative; z-index: 1; flex-shrink: 0; + display: inline-flex; align-items: center; justify-content: center; gap: 10px; + background: var(--dm-red); color: #fff !important; font-size: 15px; font-weight: 700; + padding: 16px 32px; border-radius: 16px; text-decoration: none; + box-shadow: 0 10px 26px rgba(192,18,39,0.34); + transition: background .2s ease, transform .2s ease; + } + .dm-blog-contact-btn:hover { background: var(--dm-red-hover); transform: translateY(-2px); } + @media (max-width: 720px) { + .dm-blog-contact-cta { flex-direction: column; align-items: flex-start; gap: 26px; } + .dm-blog-contact-btn { width: 100%; } + } +5:["$","section",null,{"className":"dm-blog-footer","aria-label":"More articles","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$12"}}],"$L13"]}] +6:["$","script","script-0",{"src":"/_next/static/chunks/16tb205t0~jhb.js","async":true}] +7:["$","$L14",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@16"}]}] +a:["$","$L17",null,{"src":"/images/blog-post-pic-14.webp","alt":"Why Mathematical Precision Beats Heuristics in Routing","fill":true,"sizes":"(max-width: 768px) 100vw, 760px","style":{"objectFit":"cover"}}] +b:["$","figcaption",null,{"children":"Technology: route planning decisions made before dispatch."}] +c:["$","$L9","7",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","blockquote",null,{"className":"dm-article-quote","children":[["$","p",null,{"children":"A route should be checked before the rider leaves, not explained after the customer calls."}],["$","cite",null,{"children":"Doormile Operations"}]]}]}] +d:["$","$L9","8",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","h2",null,{"className":"dm-article-h2","children":"Putting it into practice"}]}] +e:["$","$L9","9",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."}]}] +f:["$","$L9","10",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","ol",null,{"className":"dm-article-ol","children":[["$","li","0",{"children":"Benchmark today's distance, fleet size, and on-time rate."}],["$","li","1",{"children":"Include vehicle capacity, delivery windows, rider shifts, and battery charge."}],["$","li","2",{"children":"Check routes against traffic and customer commitments before dispatch."}],["$","li","3",{"children":"Compare the next dispatch cycle against the old plan."}]]}]}] +10:["$","$L9","11",{"delay":0,"duration":0.6,"yOffset":20,"children":["$","p",null,{"className":"dm-article-p","children":"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}]}] +11:["$","div",null,{"className":"dm-blog-aside-wrap","children":["$","aside",null,{"className":"dm-blog-sidebar","aria-label":"Blog sidebar","children":[["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Search"}],["$","$L18",null,{}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Recent Posts"}],["$","ul",null,{"className":"dm-blog-recent","children":[["$","li","how-ai-is-transforming-last-mile-ev-delivery",{"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","time",null,{"dateTime":"2025-10-02","className":"dm-blog-recent-date","children":"Oct 2, 2025"}]]}]]}]}],["$","li","42-less-distance-insights-from-our-hyderabad-hub",{"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],["$","time",null,{"dateTime":"2025-09-18","className":"dm-blog-recent-date","children":"Sep 18, 2025"}]]}]]}]}],["$","li","miletruth-ai-10-stages-to-smarter-dispatch",{"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","time",null,{"dateTime":"2025-09-05","className":"dm-blog-recent-date","children":"Sep 5, 2025"}]]}]]}]}],["$","li","the-ev-paradox-solving-range-anxiety-for-urban-fleets",{"children":["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-blog-recent-item","children":[["$","span",null,{"className":"dm-blog-recent-thumb","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"62px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-blog-recent-meta","children":[["$","span",null,{"className":"dm-blog-recent-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}],["$","time",null,{"dateTime":"2025-08-21","className":"dm-blog-recent-date","children":"Aug 21, 2025"}]]}]]}]}]]}]]}],["$","section",null,{"className":"dm-blog-widget","children":[["$","h2",null,{"className":"dm-blog-widget-title","children":"Categories"}],["$","ul",null,{"className":"dm-blog-categories","children":[["$","li","Case Study",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Case Study"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","EV Fleet",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"EV Fleet"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}],["$","li","Fleet Management",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Fleet Management"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],["$","li","MileTruth",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"MileTruth"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}],"$L19","$L1a","$L1b"]}]]}],"$L1c"]}]}] +13:["$","div",null,{"className":"dm-blog-footer-inner","children":[["$","nav",null,{"className":"dm-prevnext","aria-label":"Article navigation","children":[["$","$L8",null,{"href":"/blog/the-ev-paradox-solving-range-anxiety-for-urban-fleets","className":"dm-prevnext-card dm-prevnext-prev","children":[["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/ev-paradox.webp","alt":"The EV Paradox: Solving Range Anxiety for Urban Fleets","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}],["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":[["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"19","y1":"12","x2":"5","y2":"12"}],["$","polyline",null,{"points":"12 19 5 12 12 5"}]]}],"Previous"]}],["$","span",null,{"className":"dm-prevnext-cat","children":"EV Fleet"}],["$","span",null,{"className":"dm-prevnext-title","children":"The EV Paradox: Solving Range Anxiety for Urban Fleets"}]]}]]}],["$","$L8",null,{"href":"/blog/fleet-reduction-without-compromising-delivery-volume","className":"dm-prevnext-card dm-prevnext-next","children":[["$","span",null,{"className":"dm-prevnext-text","children":[["$","span",null,{"className":"dm-prevnext-label","children":["Next",["$","svg",null,{"width":"15","height":"15","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],["$","span",null,{"className":"dm-prevnext-cat","children":"Fleet Management"}],["$","span",null,{"className":"dm-prevnext-title","children":"Fleet Reduction Without Compromising Delivery Volume"}]]}],["$","span",null,{"className":"dm-prevnext-thumb","children":["$","$L17",null,{"src":"/images/blog-post-pic-8.webp","alt":"Fleet Reduction Without Compromising Delivery Volume","fill":true,"sizes":"80px","style":{"objectFit":"cover"}}]}]]}]]}],["$","div",null,{"className":"dm-related","children":[["$","h2",null,{"className":"dm-related-heading","children":"Related Articles"}],["$","div",null,{"className":"dm-related-grid","children":[["$","$L9","how-ai-is-transforming-last-mile-ev-delivery",{"delay":0,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/how-ai-is-transforming-last-mile-ev-delivery","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-17.webp","alt":"How Better Planning Improves Last-Mile EV Delivery","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Technology"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"How Better Planning Improves Last-Mile EV Delivery"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}],["$","$L9","42-less-distance-insights-from-our-hyderabad-hub",{"delay":0.08,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/42-less-distance-insights-from-our-hyderabad-hub","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-15.webp","alt":"42% Less Distance: Insights from Our Hyderabad Hub","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"Case Study"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"42% Less Distance: Insights from Our Hyderabad Hub"}],"$L1d","$L1e"]}]]}]}],"$L1f"]}]]}],"$L20"]}] +16:null +19:["$","li","Operations",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Operations"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1a:["$","li","Sustainability",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Sustainability"}],["$","span",null,{"className":"dm-blog-category-count","children":1}]]}]}] +1b:["$","li","Technology",{"children":["$","$L8",null,{"href":"/blog","className":"dm-blog-category-item","children":[["$","span",null,{"children":"Technology"}],["$","span",null,{"className":"dm-blog-category-count","children":2}]]}]}] +1c:["$","section",null,{"className":"dm-blog-widget dm-blog-cta-card","children":[["$","h2",null,{"className":"dm-blog-cta-title","children":"Planning delivery routes?"}],["$","p",null,{"className":"dm-blog-cta-text","children":"Talk to us about reducing wasted distance, missed windows, and avoidable vehicle time."}],["$","$L8",null,{"href":"/contact","className":"dm-blog-cta-btn","children":["Contact Us",["$","svg",null,{"width":"18","height":"18","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] +1d:["$","p",null,{"className":"dm-related-card-excerpt","children":"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning."}] +1e:["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}] +1f:["$","$L9","miletruth-ai-10-stages-to-smarter-dispatch",{"delay":0.16,"duration":0.7,"yOffset":30,"children":["$","$L8",null,{"href":"/blog/miletruth-ai-10-stages-to-smarter-dispatch","className":"dm-related-card","children":[["$","div",null,{"className":"dm-related-img","children":[["$","$L17",null,{"src":"/images/blog-post-pic-31.webp","alt":"MileTruth™: 10 Stages to Smarter Dispatch","fill":true,"sizes":"(max-width: 700px) 100vw, (max-width: 1024px) 50vw, 33vw","style":{"objectFit":"cover"}}],["$","span",null,{"className":"dm-related-badge","children":"MileTruth"}]]}],["$","div",null,{"className":"dm-related-body","children":[["$","h3",null,{"className":"dm-related-card-title","children":"MileTruth™: 10 Stages to Smarter Dispatch"}],["$","p",null,{"className":"dm-related-card-excerpt","children":"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub."}],["$","span",null,{"className":"dm-related-readmore","children":["Read More",["$","svg",null,{"className":"dm-related-readmore-arrow","width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}]]}]}] +20:["$","div",null,{"className":"dm-blog-contact-cta","children":[["$","div",null,{"className":"dm-blog-contact-cta-content","children":[["$","span",null,{"className":"dm-blog-contact-eyebrow","children":"Let's talk logistics"}],["$","h2",null,{"className":"dm-blog-contact-title","children":"Ready to move smarter with Doormile?"}],["$","p",null,{"className":"dm-blog-contact-sub","children":"Tell us about your fleet and routes — we'll show you where the distance, vehicles and emissions are hiding."}]]}],["$","$L8",null,{"href":"/contact","className":"dm-blog-contact-btn","children":["Get in Touch",["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.5","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]]}] diff --git a/build/.next/server/app/contact.html b/build/.next/server/app/contact.html new file mode 100644 index 0000000..3962131 --- /dev/null +++ b/build/.next/server/app/contact.html @@ -0,0 +1,914 @@ +Contact Us – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Delivering Trust.Beyond Boundaries.

\ No newline at end of file diff --git a/build/.next/server/app/contact.meta b/build/.next/server/app/contact.meta new file mode 100644 index 0000000..ed4b90f --- /dev/null +++ b/build/.next/server/app/contact.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/contact/layout,_N_T_/contact/page,_N_T_/contact" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/contact/__PAGE__", + "/contact", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/contact.rsc b/build/.next/server/app/contact.rsc new file mode 100644 index 0000000..e190809 --- /dev/null +++ b/build/.next/server/app/contact.rsc @@ -0,0 +1,275 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +14:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/00fiud~fayo7s.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/home2-banner-3.webp","image"] +c:T1c00, + .contacts-hero-custom { + background-color: #0b0b0b !important; + background-image: url('/images/home2-banner-3.webp') !important; + background-size: cover !important; + background-position: center !important; + } + + .contacts-hero-card-custom { + position: relative !important; + width: 100% !important; + height: 100% !important; + display: flex !important; + align-items: center !important; + justify-content: center !important; + flex-direction: column !important; + box-sizing: border-box !important; + overflow: hidden !important; + } + + .contacts-hero-bg-overlay { + position: absolute !important; + inset: 0 !important; + /* Lighter wash so the red van / sunset stays vivid like the reference, + while keeping the centered heading readable. */ + background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.30) 0%, rgba(0, 0, 0, 0.42) 55%, rgba(0, 0, 0, 0.62) 100%) !important; + z-index: 1 !important; + } + + /* Ambient Glowing Orbs */ + .contacts-hero-glow-red { + position: absolute !important; + bottom: -15% !important; + right: -10% !important; + width: min(500px, 75vw) !important; + height: min(500px, 75vw) !important; + background: radial-gradient(circle, rgba(192, 18, 39, 0.24) 0%, rgba(192, 18, 39, 0) 70%) !important; + filter: blur(70px) !important; + pointer-events: none !important; + z-index: 1 !important; + animation: float-glow 10s ease-in-out infinite alternate !important; + } + + .contacts-hero-glow-blue { + position: absolute !important; + top: -15% !important; + left: -10% !important; + width: min(450px, 60vw) !important; + height: min(450px, 60vw) !important; + background: radial-gradient(circle, rgba(0, 150, 255, 0.06) 0%, rgba(0, 150, 255, 0) 70%) !important; + filter: blur(75px) !important; + pointer-events: none !important; + z-index: 1 !important; + } + + /* Abstract Tech Grid */ + .contacts-hero-grid { + position: absolute !important; + inset: 0 !important; + background-image: + linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px), + linear-gradient(90deg, rgba(255, 255, 255, 0.015) 1px, transparent 1px) !important; + background-size: 50px 50px !important; + opacity: 0.8 !important; + pointer-events: none !important; + z-index: 2 !important; + } + + /* Center content — card frame removed (no background, border, blur or + shadow); the text sits directly on the hero background. */ + .contacts-hero-glass-card { + position: relative !important; + z-index: 3 !important; + background: transparent !important; + backdrop-filter: none !important; + -webkit-backdrop-filter: none !important; + border: none !important; + border-radius: 0 !important; + padding: 0 24px !important; + max-width: 1500px !important; + width: 92% !important; + box-shadow: none !important; + text-align: center !important; + } + + .contacts-hero-glass-card:hover { + transform: none !important; + box-shadow: none !important; + border-color: transparent !important; + } + + /* Hero headline — large, light, reference-matched display type. + Size scales with the viewport so the line-to-container width ratio + stays constant; the cap keeps the longest line inside the 1500px + container (with nowrap on desktop) so it can never overflow/clip. */ + .contacts-hero-title { + font-size: clamp(34px, 5.9vw, 98px) !important; + font-weight: 400 !important; + line-height: 0.95 !important; + color: #ffffff !important; + text-transform: uppercase !important; + letter-spacing: -0.02em !important; + margin: 0 0 28px 0 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-hero-title-line { + display: block !important; + } + + /* Keep each line intact on desktop — never split SYSTEM or PROMISE/KEPT */ + @media (min-width: 1024px) { + .contacts-hero-title-line { + white-space: nowrap !important; + } + } + + .contacts-hero-title-highlight { + color: #c01227 !important; + } + + /* Description text */ + .contacts-hero-desc { + font-size: clamp(15px, 1.3vw, 19px) !important; + line-height: 1.6 !important; + color: rgba(255, 255, 255, 0.82) !important; + max-width: 640px !important; + margin: 0 auto 24px auto !important; + font-weight: 500 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-hero-desc-trademark { + color: #ffffff !important; + font-weight: 700 !important; + white-space: nowrap !important; + } + + /* Breadcrumb capsule */ + .contacts-hero-breadcrumbs { + display: inline-flex !important; + align-items: center !important; + gap: 10px !important; + background: rgba(255, 255, 255, 0.04) !important; + border: 1px solid rgba(255, 255, 255, 0.08) !important; + padding: 8px 22px !important; + border-radius: 30px !important; + transition: background 0.3s, border-color 0.3s !important; + } + + .contacts-hero-breadcrumbs:hover { + background: rgba(255, 255, 255, 0.08) !important; + border-color: rgba(255, 255, 255, 0.15) !important; + } + + .contacts-breadcrumb-link { + color: rgba(255, 255, 255, 0.65) !important; + text-decoration: none !important; + font-size: 13px !important; + font-weight: 600 !important; + transition: color 0.2s !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-breadcrumb-link:hover { + color: #ffffff !important; + } + + .contacts-breadcrumb-del { + color: rgba(255, 255, 255, 0.3) !important; + font-size: 11px !important; + } + + .contacts-breadcrumb-cur { + color: #C01227 !important; + font-size: 13px !important; + font-weight: 700 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + @keyframes float-glow { + 0% { transform: translate(0, 0) scale(1); } + 100% { transform: translate(-15px, -25px) scale(1.08); } + } + + @media (max-width: 768px) { + .contacts-hero-glass-card { + padding: 0 16px !important; + width: 95% !important; + } + .contacts-hero-title { + letter-spacing: -1px !important; + } + } + 0:{"P":null,"c":["","contact"],"q":"","i":false,"f":[[["",{"children":["contact",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"41","className":"elementor elementor-41","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$c"}}],"$Ld"],"$Le"]}]}]}]}],["$Lf","$L10"],"$L11"]}],{},null,false,null]},null,false,"$@12"]},null,false,null],"$L13",false]],"m":"$undefined","G":["$14",["$L15"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +17:I[23466,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vp~o9giaq0t~.js"],"default"] +18:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +19:"$Sreact.suspense" +1c:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1e:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +d:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card contacts-hero-custom","children":["$","div",null,{"className":"contacts-hero-card-custom","children":[["$","div",null,{"className":"contacts-hero-bg-overlay"}],["$","div",null,{"className":"contacts-hero-grid"}],["$","div",null,{"className":"contacts-hero-glow-red"}],["$","div",null,{"className":"contacts-hero-glow-blue"}],["$","div",null,{"className":"contacts-hero-glass-card","children":["$","h1",null,{"className":"contacts-hero-title","children":[["$","span",null,{"className":"contacts-hero-title-line","children":"Delivering Trust."}],["$","span",null,{"className":"contacts-hero-title-line","children":["Beyond ",["$","span",null,{"className":"contacts-hero-title-highlight","children":"Boundaries."}]]}]]}]}]]}]}]}] +16:T6ac, + .elementor-element-7304a53 { + --padding-left: 20px; + --padding-right: 20px; + --margin-top: 12px; + --margin-bottom: 0px; + /* Reduce the large gap above the map (was 40px). */ + margin-top: 12px !important; + padding-top: 0 !important; + /* Real side padding so the map is inset like the hero/footer sections + (the --padding-* vars only work with elementor-frontend.css, which + isn't loaded, so the map was going edge-to-edge). Matches + .custom-standard-hero-container: 20px desktop / 10px mobile. */ + padding-left: 20px; + padding-right: 20px; + box-sizing: border-box; + /* The section computes to display:inline here (the --display:flex var + isn't mapped without elementor-frontend.css), so its padding never + constrained the block child. Force flex so the padding insets the map. */ + display: flex; + flex-direction: column; + width: 100%; + } + .elementor-element-7304a53 .elementor-custom-embed { + /* Rounded on all corners so the map reads as a self-contained card + (bottom was square before, leaving a hard edge above the footer gap). */ + border-radius: 25px; + overflow: hidden; + background: transparent; + line-height: 0; + } + @media (max-width: 840px) { + .elementor-element-7304a53 { + padding-left: 10px; + padding-right: 10px; + } + } + @media (max-width: 768px) { + .elementor-element-7304a53 .elementor-custom-embed { height: 360px !important; } + } + e:["$","div",null,{"className":"elementor-element elementor-element-7304a53 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"7304a53","data-element_type":"container","data-e-type":"container","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$16"}}],["$","div",null,{"className":"elementor-element elementor-element-5a3eed4 elementor-widget","data-id":"5a3eed4","data-element_type":"widget","data-e-type":"widget","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"elementor-custom-embed","style":{"width":"100%","height":"500px"},"children":["$","$L17",null,{}]}]}]}]]}] +f:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00fiud~fayo7s.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +10:["$","script","script-0",{"src":"/_next/static/chunks/0vp~o9giaq0t~.js","async":true,"nonce":"$undefined"}] +11:["$","$L18",null,{"children":["$","$19",null,{"name":"Next.MetadataOutlet","children":"$@1a"}]}] +1b:[] +12:"$W1b" +13:["$","$1","h",{"children":[null,["$","$L1c",null,{"children":"$L1d"}],["$","div",null,{"hidden":true,"children":["$","$L1e",null,{"children":["$","$19",null,{"name":"Next.Metadata","children":"$L1f"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +15:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +1d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +20:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +1a:null +1f:[["$","title","0",{"children":"Contact Us – Doormile"}],["$","meta","1",{"name":"description","content":"Get in touch with Doormile's last-mile logistics team. Call us, email, visit our Gachibowli, Hyderabad office, or drop a message."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L20","7",{}]] diff --git a/build/.next/server/app/contact.segments/_full.segment.rsc b/build/.next/server/app/contact.segments/_full.segment.rsc new file mode 100644 index 0000000..e190809 --- /dev/null +++ b/build/.next/server/app/contact.segments/_full.segment.rsc @@ -0,0 +1,275 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +14:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/00fiud~fayo7s.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/home2-banner-3.webp","image"] +c:T1c00, + .contacts-hero-custom { + background-color: #0b0b0b !important; + background-image: url('/images/home2-banner-3.webp') !important; + background-size: cover !important; + background-position: center !important; + } + + .contacts-hero-card-custom { + position: relative !important; + width: 100% !important; + height: 100% !important; + display: flex !important; + align-items: center !important; + justify-content: center !important; + flex-direction: column !important; + box-sizing: border-box !important; + overflow: hidden !important; + } + + .contacts-hero-bg-overlay { + position: absolute !important; + inset: 0 !important; + /* Lighter wash so the red van / sunset stays vivid like the reference, + while keeping the centered heading readable. */ + background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.30) 0%, rgba(0, 0, 0, 0.42) 55%, rgba(0, 0, 0, 0.62) 100%) !important; + z-index: 1 !important; + } + + /* Ambient Glowing Orbs */ + .contacts-hero-glow-red { + position: absolute !important; + bottom: -15% !important; + right: -10% !important; + width: min(500px, 75vw) !important; + height: min(500px, 75vw) !important; + background: radial-gradient(circle, rgba(192, 18, 39, 0.24) 0%, rgba(192, 18, 39, 0) 70%) !important; + filter: blur(70px) !important; + pointer-events: none !important; + z-index: 1 !important; + animation: float-glow 10s ease-in-out infinite alternate !important; + } + + .contacts-hero-glow-blue { + position: absolute !important; + top: -15% !important; + left: -10% !important; + width: min(450px, 60vw) !important; + height: min(450px, 60vw) !important; + background: radial-gradient(circle, rgba(0, 150, 255, 0.06) 0%, rgba(0, 150, 255, 0) 70%) !important; + filter: blur(75px) !important; + pointer-events: none !important; + z-index: 1 !important; + } + + /* Abstract Tech Grid */ + .contacts-hero-grid { + position: absolute !important; + inset: 0 !important; + background-image: + linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px), + linear-gradient(90deg, rgba(255, 255, 255, 0.015) 1px, transparent 1px) !important; + background-size: 50px 50px !important; + opacity: 0.8 !important; + pointer-events: none !important; + z-index: 2 !important; + } + + /* Center content — card frame removed (no background, border, blur or + shadow); the text sits directly on the hero background. */ + .contacts-hero-glass-card { + position: relative !important; + z-index: 3 !important; + background: transparent !important; + backdrop-filter: none !important; + -webkit-backdrop-filter: none !important; + border: none !important; + border-radius: 0 !important; + padding: 0 24px !important; + max-width: 1500px !important; + width: 92% !important; + box-shadow: none !important; + text-align: center !important; + } + + .contacts-hero-glass-card:hover { + transform: none !important; + box-shadow: none !important; + border-color: transparent !important; + } + + /* Hero headline — large, light, reference-matched display type. + Size scales with the viewport so the line-to-container width ratio + stays constant; the cap keeps the longest line inside the 1500px + container (with nowrap on desktop) so it can never overflow/clip. */ + .contacts-hero-title { + font-size: clamp(34px, 5.9vw, 98px) !important; + font-weight: 400 !important; + line-height: 0.95 !important; + color: #ffffff !important; + text-transform: uppercase !important; + letter-spacing: -0.02em !important; + margin: 0 0 28px 0 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-hero-title-line { + display: block !important; + } + + /* Keep each line intact on desktop — never split SYSTEM or PROMISE/KEPT */ + @media (min-width: 1024px) { + .contacts-hero-title-line { + white-space: nowrap !important; + } + } + + .contacts-hero-title-highlight { + color: #c01227 !important; + } + + /* Description text */ + .contacts-hero-desc { + font-size: clamp(15px, 1.3vw, 19px) !important; + line-height: 1.6 !important; + color: rgba(255, 255, 255, 0.82) !important; + max-width: 640px !important; + margin: 0 auto 24px auto !important; + font-weight: 500 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-hero-desc-trademark { + color: #ffffff !important; + font-weight: 700 !important; + white-space: nowrap !important; + } + + /* Breadcrumb capsule */ + .contacts-hero-breadcrumbs { + display: inline-flex !important; + align-items: center !important; + gap: 10px !important; + background: rgba(255, 255, 255, 0.04) !important; + border: 1px solid rgba(255, 255, 255, 0.08) !important; + padding: 8px 22px !important; + border-radius: 30px !important; + transition: background 0.3s, border-color 0.3s !important; + } + + .contacts-hero-breadcrumbs:hover { + background: rgba(255, 255, 255, 0.08) !important; + border-color: rgba(255, 255, 255, 0.15) !important; + } + + .contacts-breadcrumb-link { + color: rgba(255, 255, 255, 0.65) !important; + text-decoration: none !important; + font-size: 13px !important; + font-weight: 600 !important; + transition: color 0.2s !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-breadcrumb-link:hover { + color: #ffffff !important; + } + + .contacts-breadcrumb-del { + color: rgba(255, 255, 255, 0.3) !important; + font-size: 11px !important; + } + + .contacts-breadcrumb-cur { + color: #C01227 !important; + font-size: 13px !important; + font-weight: 700 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + @keyframes float-glow { + 0% { transform: translate(0, 0) scale(1); } + 100% { transform: translate(-15px, -25px) scale(1.08); } + } + + @media (max-width: 768px) { + .contacts-hero-glass-card { + padding: 0 16px !important; + width: 95% !important; + } + .contacts-hero-title { + letter-spacing: -1px !important; + } + } + 0:{"P":null,"c":["","contact"],"q":"","i":false,"f":[[["",{"children":["contact",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"41","className":"elementor elementor-41","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$c"}}],"$Ld"],"$Le"]}]}]}]}],["$Lf","$L10"],"$L11"]}],{},null,false,null]},null,false,"$@12"]},null,false,null],"$L13",false]],"m":"$undefined","G":["$14",["$L15"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +17:I[23466,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vp~o9giaq0t~.js"],"default"] +18:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +19:"$Sreact.suspense" +1c:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1e:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +d:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card contacts-hero-custom","children":["$","div",null,{"className":"contacts-hero-card-custom","children":[["$","div",null,{"className":"contacts-hero-bg-overlay"}],["$","div",null,{"className":"contacts-hero-grid"}],["$","div",null,{"className":"contacts-hero-glow-red"}],["$","div",null,{"className":"contacts-hero-glow-blue"}],["$","div",null,{"className":"contacts-hero-glass-card","children":["$","h1",null,{"className":"contacts-hero-title","children":[["$","span",null,{"className":"contacts-hero-title-line","children":"Delivering Trust."}],["$","span",null,{"className":"contacts-hero-title-line","children":["Beyond ",["$","span",null,{"className":"contacts-hero-title-highlight","children":"Boundaries."}]]}]]}]}]]}]}]}] +16:T6ac, + .elementor-element-7304a53 { + --padding-left: 20px; + --padding-right: 20px; + --margin-top: 12px; + --margin-bottom: 0px; + /* Reduce the large gap above the map (was 40px). */ + margin-top: 12px !important; + padding-top: 0 !important; + /* Real side padding so the map is inset like the hero/footer sections + (the --padding-* vars only work with elementor-frontend.css, which + isn't loaded, so the map was going edge-to-edge). Matches + .custom-standard-hero-container: 20px desktop / 10px mobile. */ + padding-left: 20px; + padding-right: 20px; + box-sizing: border-box; + /* The section computes to display:inline here (the --display:flex var + isn't mapped without elementor-frontend.css), so its padding never + constrained the block child. Force flex so the padding insets the map. */ + display: flex; + flex-direction: column; + width: 100%; + } + .elementor-element-7304a53 .elementor-custom-embed { + /* Rounded on all corners so the map reads as a self-contained card + (bottom was square before, leaving a hard edge above the footer gap). */ + border-radius: 25px; + overflow: hidden; + background: transparent; + line-height: 0; + } + @media (max-width: 840px) { + .elementor-element-7304a53 { + padding-left: 10px; + padding-right: 10px; + } + } + @media (max-width: 768px) { + .elementor-element-7304a53 .elementor-custom-embed { height: 360px !important; } + } + e:["$","div",null,{"className":"elementor-element elementor-element-7304a53 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"7304a53","data-element_type":"container","data-e-type":"container","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$16"}}],["$","div",null,{"className":"elementor-element elementor-element-5a3eed4 elementor-widget","data-id":"5a3eed4","data-element_type":"widget","data-e-type":"widget","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"elementor-custom-embed","style":{"width":"100%","height":"500px"},"children":["$","$L17",null,{}]}]}]}]]}] +f:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00fiud~fayo7s.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +10:["$","script","script-0",{"src":"/_next/static/chunks/0vp~o9giaq0t~.js","async":true,"nonce":"$undefined"}] +11:["$","$L18",null,{"children":["$","$19",null,{"name":"Next.MetadataOutlet","children":"$@1a"}]}] +1b:[] +12:"$W1b" +13:["$","$1","h",{"children":[null,["$","$L1c",null,{"children":"$L1d"}],["$","div",null,{"hidden":true,"children":["$","$L1e",null,{"children":["$","$19",null,{"name":"Next.Metadata","children":"$L1f"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +15:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +1d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +20:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +1a:null +1f:[["$","title","0",{"children":"Contact Us – Doormile"}],["$","meta","1",{"name":"description","content":"Get in touch with Doormile's last-mile logistics team. Call us, email, visit our Gachibowli, Hyderabad office, or drop a message."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L20","7",{}]] diff --git a/build/.next/server/app/contact.segments/_head.segment.rsc b/build/.next/server/app/contact.segments/_head.segment.rsc new file mode 100644 index 0000000..875a08d --- /dev/null +++ b/build/.next/server/app/contact.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Contact Us – Doormile"}],["$","meta","1",{"name":"description","content":"Get in touch with Doormile's last-mile logistics team. Call us, email, visit our Gachibowli, Hyderabad office, or drop a message."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/contact.segments/_index.segment.rsc b/build/.next/server/app/contact.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/contact.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/contact.segments/_tree.segment.rsc b/build/.next/server/app/contact.segments/_tree.segment.rsc new file mode 100644 index 0000000..8f67ddf --- /dev/null +++ b/build/.next/server/app/contact.segments/_tree.segment.rsc @@ -0,0 +1,11 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/00fiud~fayo7s.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +:HL["/images/home2-banner-3.webp","image"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"contact","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/contact.segments/contact.segment.rsc b/build/.next/server/app/contact.segments/contact.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/contact.segments/contact.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/contact.segments/contact/__PAGE__.segment.rsc b/build/.next/server/app/contact.segments/contact/__PAGE__.segment.rsc new file mode 100644 index 0000000..ca788d7 --- /dev/null +++ b/build/.next/server/app/contact.segments/contact/__PAGE__.segment.rsc @@ -0,0 +1,246 @@ +1:"$Sreact.fragment" +9:I[23466,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vp~o9giaq0t~.js"],"default"] +a:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +b:"$Sreact.suspense" +:HL["/_next/static/chunks/00fiud~fayo7s.css","style"] +2:T1c00, + .contacts-hero-custom { + background-color: #0b0b0b !important; + background-image: url('/images/home2-banner-3.webp') !important; + background-size: cover !important; + background-position: center !important; + } + + .contacts-hero-card-custom { + position: relative !important; + width: 100% !important; + height: 100% !important; + display: flex !important; + align-items: center !important; + justify-content: center !important; + flex-direction: column !important; + box-sizing: border-box !important; + overflow: hidden !important; + } + + .contacts-hero-bg-overlay { + position: absolute !important; + inset: 0 !important; + /* Lighter wash so the red van / sunset stays vivid like the reference, + while keeping the centered heading readable. */ + background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.30) 0%, rgba(0, 0, 0, 0.42) 55%, rgba(0, 0, 0, 0.62) 100%) !important; + z-index: 1 !important; + } + + /* Ambient Glowing Orbs */ + .contacts-hero-glow-red { + position: absolute !important; + bottom: -15% !important; + right: -10% !important; + width: min(500px, 75vw) !important; + height: min(500px, 75vw) !important; + background: radial-gradient(circle, rgba(192, 18, 39, 0.24) 0%, rgba(192, 18, 39, 0) 70%) !important; + filter: blur(70px) !important; + pointer-events: none !important; + z-index: 1 !important; + animation: float-glow 10s ease-in-out infinite alternate !important; + } + + .contacts-hero-glow-blue { + position: absolute !important; + top: -15% !important; + left: -10% !important; + width: min(450px, 60vw) !important; + height: min(450px, 60vw) !important; + background: radial-gradient(circle, rgba(0, 150, 255, 0.06) 0%, rgba(0, 150, 255, 0) 70%) !important; + filter: blur(75px) !important; + pointer-events: none !important; + z-index: 1 !important; + } + + /* Abstract Tech Grid */ + .contacts-hero-grid { + position: absolute !important; + inset: 0 !important; + background-image: + linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px), + linear-gradient(90deg, rgba(255, 255, 255, 0.015) 1px, transparent 1px) !important; + background-size: 50px 50px !important; + opacity: 0.8 !important; + pointer-events: none !important; + z-index: 2 !important; + } + + /* Center content — card frame removed (no background, border, blur or + shadow); the text sits directly on the hero background. */ + .contacts-hero-glass-card { + position: relative !important; + z-index: 3 !important; + background: transparent !important; + backdrop-filter: none !important; + -webkit-backdrop-filter: none !important; + border: none !important; + border-radius: 0 !important; + padding: 0 24px !important; + max-width: 1500px !important; + width: 92% !important; + box-shadow: none !important; + text-align: center !important; + } + + .contacts-hero-glass-card:hover { + transform: none !important; + box-shadow: none !important; + border-color: transparent !important; + } + + /* Hero headline — large, light, reference-matched display type. + Size scales with the viewport so the line-to-container width ratio + stays constant; the cap keeps the longest line inside the 1500px + container (with nowrap on desktop) so it can never overflow/clip. */ + .contacts-hero-title { + font-size: clamp(34px, 5.9vw, 98px) !important; + font-weight: 400 !important; + line-height: 0.95 !important; + color: #ffffff !important; + text-transform: uppercase !important; + letter-spacing: -0.02em !important; + margin: 0 0 28px 0 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-hero-title-line { + display: block !important; + } + + /* Keep each line intact on desktop — never split SYSTEM or PROMISE/KEPT */ + @media (min-width: 1024px) { + .contacts-hero-title-line { + white-space: nowrap !important; + } + } + + .contacts-hero-title-highlight { + color: #c01227 !important; + } + + /* Description text */ + .contacts-hero-desc { + font-size: clamp(15px, 1.3vw, 19px) !important; + line-height: 1.6 !important; + color: rgba(255, 255, 255, 0.82) !important; + max-width: 640px !important; + margin: 0 auto 24px auto !important; + font-weight: 500 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-hero-desc-trademark { + color: #ffffff !important; + font-weight: 700 !important; + white-space: nowrap !important; + } + + /* Breadcrumb capsule */ + .contacts-hero-breadcrumbs { + display: inline-flex !important; + align-items: center !important; + gap: 10px !important; + background: rgba(255, 255, 255, 0.04) !important; + border: 1px solid rgba(255, 255, 255, 0.08) !important; + padding: 8px 22px !important; + border-radius: 30px !important; + transition: background 0.3s, border-color 0.3s !important; + } + + .contacts-hero-breadcrumbs:hover { + background: rgba(255, 255, 255, 0.08) !important; + border-color: rgba(255, 255, 255, 0.15) !important; + } + + .contacts-breadcrumb-link { + color: rgba(255, 255, 255, 0.65) !important; + text-decoration: none !important; + font-size: 13px !important; + font-weight: 600 !important; + transition: color 0.2s !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + .contacts-breadcrumb-link:hover { + color: #ffffff !important; + } + + .contacts-breadcrumb-del { + color: rgba(255, 255, 255, 0.3) !important; + font-size: 11px !important; + } + + .contacts-breadcrumb-cur { + color: #C01227 !important; + font-size: 13px !important; + font-weight: 700 !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + } + + @keyframes float-glow { + 0% { transform: translate(0, 0) scale(1); } + 100% { transform: translate(-15px, -25px) scale(1.08); } + } + + @media (max-width: 768px) { + .contacts-hero-glass-card { + padding: 0 16px !important; + width: 95% !important; + } + .contacts-hero-title { + letter-spacing: -1px !important; + } + } + 0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"41","className":"elementor elementor-41","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3"],"$L4"]}]}]}]}],["$L5","$L6"],"$L7"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"custom-standard-hero-container","children":["$","div",null,{"className":"custom-standard-hero-card contacts-hero-custom","children":["$","div",null,{"className":"contacts-hero-card-custom","children":[["$","div",null,{"className":"contacts-hero-bg-overlay"}],["$","div",null,{"className":"contacts-hero-grid"}],["$","div",null,{"className":"contacts-hero-glow-red"}],["$","div",null,{"className":"contacts-hero-glow-blue"}],["$","div",null,{"className":"contacts-hero-glass-card","children":["$","h1",null,{"className":"contacts-hero-title","children":[["$","span",null,{"className":"contacts-hero-title-line","children":"Delivering Trust."}],["$","span",null,{"className":"contacts-hero-title-line","children":["Beyond ",["$","span",null,{"className":"contacts-hero-title-highlight","children":"Boundaries."}]]}]]}]}]]}]}]}] +8:T6ac, + .elementor-element-7304a53 { + --padding-left: 20px; + --padding-right: 20px; + --margin-top: 12px; + --margin-bottom: 0px; + /* Reduce the large gap above the map (was 40px). */ + margin-top: 12px !important; + padding-top: 0 !important; + /* Real side padding so the map is inset like the hero/footer sections + (the --padding-* vars only work with elementor-frontend.css, which + isn't loaded, so the map was going edge-to-edge). Matches + .custom-standard-hero-container: 20px desktop / 10px mobile. */ + padding-left: 20px; + padding-right: 20px; + box-sizing: border-box; + /* The section computes to display:inline here (the --display:flex var + isn't mapped without elementor-frontend.css), so its padding never + constrained the block child. Force flex so the padding insets the map. */ + display: flex; + flex-direction: column; + width: 100%; + } + .elementor-element-7304a53 .elementor-custom-embed { + /* Rounded on all corners so the map reads as a self-contained card + (bottom was square before, leaving a hard edge above the footer gap). */ + border-radius: 25px; + overflow: hidden; + background: transparent; + line-height: 0; + } + @media (max-width: 840px) { + .elementor-element-7304a53 { + padding-left: 10px; + padding-right: 10px; + } + } + @media (max-width: 768px) { + .elementor-element-7304a53 .elementor-custom-embed { height: 360px !important; } + } + 4:["$","div",null,{"className":"elementor-element elementor-element-7304a53 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"7304a53","data-element_type":"container","data-e-type":"container","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$8"}}],["$","div",null,{"className":"elementor-element elementor-element-5a3eed4 elementor-widget","data-id":"5a3eed4","data-element_type":"widget","data-e-type":"widget","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"elementor-custom-embed","style":{"width":"100%","height":"500px"},"children":["$","$L9",null,{}]}]}]}]]}] +5:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00fiud~fayo7s.css","precedence":"next"}] +6:["$","script","script-0",{"src":"/_next/static/chunks/0vp~o9giaq0t~.js","async":true}] +7:["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}] +c:null diff --git a/build/.next/server/app/contact/page.js b/build/.next/server/app/contact/page.js new file mode 100644 index 0000000..70ca35c --- /dev/null +++ b/build/.next/server/app/contact/page.js @@ -0,0 +1,15 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/contact/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__12mff8~._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01bbzeh.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_contact_page_actions_0~2h-ad.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(73006) +module.exports=R.m(73006).exports diff --git a/build/.next/server/app/contact/page.js.map b/build/.next/server/app/contact/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/contact/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/contact/page.js.nft.json b/build/.next/server/app/contact/page.js.nft.json new file mode 100644 index 0000000..ef4f071 --- /dev/null +++ b/build/.next/server/app/contact/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[root-of-the-server]__12mff8~._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_12x1.3y._.js","../../chunks/ssr/_next-internal_server_app_contact_page_actions_0~2h-ad.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01bbzeh.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/contact/page/app-paths-manifest.json b/build/.next/server/app/contact/page/app-paths-manifest.json new file mode 100644 index 0000000..bedfb9a --- /dev/null +++ b/build/.next/server/app/contact/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/contact/page": "app/contact/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/contact/page/build-manifest.json b/build/.next/server/app/contact/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/contact/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/contact/page/next-font-manifest.json b/build/.next/server/app/contact/page/next-font-manifest.json new file mode 100644 index 0000000..5ef010a --- /dev/null +++ b/build/.next/server/app/contact/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/contact/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/contact/page/react-loadable-manifest.json b/build/.next/server/app/contact/page/react-loadable-manifest.json new file mode 100644 index 0000000..857e595 --- /dev/null +++ b/build/.next/server/app/contact/page/react-loadable-manifest.json @@ -0,0 +1,9 @@ +{ + "42391": { + "id": 42391, + "files": [ + "static/chunks/0t48hzs_6fshe.css", + "static/chunks/0ht_jt035hxfz.js" + ] + } +} \ No newline at end of file diff --git a/build/.next/server/app/contact/page/server-reference-manifest.json b/build/.next/server/app/contact/page/server-reference-manifest.json new file mode 100644 index 0000000..c0759f1 --- /dev/null +++ b/build/.next/server/app/contact/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/contact/page": { + "moduleId": 8829, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/contact/page_client-reference-manifest.js b/build/.next/server/app/contact/page_client-reference-manifest.js new file mode 100644 index 0000000..679c477 --- /dev/null +++ b/build/.next/server/app/contact/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/contact/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/map/ContactMapEmbed.tsx ":{"id":23466,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vp~o9giaq0t~.js"],"async":false},"[project]/src/components/map/ContactMapEmbed.tsx":{"id":23466,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vp~o9giaq0t~.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"23466":{"*":{"id":40408,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/_12x1.3y._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"23466":{"*":{"id":75588,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/contact/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false},{"path":"static/chunks/00fiud~fayo7s.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/contact/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/0vp~o9giaq0t~.js"]}}; + diff --git a/build/.next/server/app/cookie-policy.html b/build/.next/server/app/cookie-policy.html new file mode 100644 index 0000000..b19c37b --- /dev/null +++ b/build/.next/server/app/cookie-policy.html @@ -0,0 +1,853 @@ +Cookie Policy – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

\ No newline at end of file diff --git a/build/.next/server/app/cookie-policy.meta b/build/.next/server/app/cookie-policy.meta new file mode 100644 index 0000000..515d611 --- /dev/null +++ b/build/.next/server/app/cookie-policy.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/cookie-policy/layout,_N_T_/cookie-policy/page,_N_T_/cookie-policy" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/cookie-policy/__PAGE__", + "/cookie-policy", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/cookie-policy.rsc b/build/.next/server/app/cookie-policy.rsc new file mode 100644 index 0000000..da8ba0e --- /dev/null +++ b/build/.next/server/app/cookie-policy.rsc @@ -0,0 +1,215 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +15:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","cookie-policy"],"q":"","i":false,"f":[[["",{"children":["cookie-policy",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","section",null,{"className":"dm-legal","aria-label":"Cookie Policy","children":[["$","div",null,{"className":"dm-legal__wrap","children":[["$","aside",null,{"className":"dm-legal__toc","aria-label":"On this page","children":["$","div",null,{"className":"dm-legal__toc-inner","children":[["$","p",null,{"className":"dm-legal__toc-label","children":"On this page"}],["$","nav",null,{"children":["$","ul",null,{"children":[["$","li","What Are Cookies?",{"children":["$","a",null,{"href":"#what-are-cookies","children":"What Are Cookies?"}]}],["$","li","Why We Use Cookies",{"children":["$","a",null,{"href":"#why-we-use-cookies","children":"Why We Use Cookies"}]}],["$","li","Types of Cookies We Use",{"children":["$","a",null,{"href":"#types-of-cookies-we-use","children":"Types of Cookies We Use"}]}],"$Lc","$Ld","$Le","$Lf"]}]}]]}]}],"$L10"]}],"$L11"]}]}]}]}],null,"$L12"]}],{},null,false,null]},null,false,"$@13"]},null,false,null],"$L14",false]],"m":"$undefined","G":["$15",["$L16"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +19:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +1a:"$Sreact.suspense" +1d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1f:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","li","Managing Cookies",{"children":["$","a",null,{"href":"#managing-cookies","children":"Managing Cookies"}]}] +d:["$","li","Cookie Consent",{"children":["$","a",null,{"href":"#cookie-consent","children":"Cookie Consent"}]}] +e:["$","li","Policy Updates",{"children":["$","a",null,{"href":"#policy-updates","children":"Policy Updates"}]}] +f:["$","li","Contact Us",{"children":["$","a",null,{"href":"#contact-us","children":"Contact Us"}]}] +10:["$","div",null,{"className":"dm-legal__main","children":[["$","header",null,{"className":"dm-legal__hero","children":[["$","h1",null,{"className":"dm-legal__title","children":"Cookie Policy"}],["$","p",null,{"className":"dm-legal__updated","children":["Last Updated: ","June 2026"]}],["$","p",null,{"className":"dm-legal__lead","children":"This Cookie Policy explains how Doormile uses cookies and similar technologies when you visit our website."}]]}],["$","article",null,{"className":"dm-legal__content","children":[["$","section","What Are Cookies?",{"id":"what-are-cookies","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"What Are Cookies?"}],[["$","p","0",{"className":"dm-legal__p","children":"Cookies are small text files stored on your device that help websites remember information about your visit and improve the browsing experience."}]]]}],["$","section","Why We Use Cookies",{"id":"why-we-use-cookies","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Why We Use Cookies"}],[["$","p","0",{"className":"dm-legal__p","children":"We use cookies to:"}],["$","ul","1",{"className":"dm-legal__ul","children":[["$","li","0",{"children":"Enable essential website functionality"}],["$","li","1",{"children":"Improve website performance"}],["$","li","2",{"children":"Analyze visitor behavior and traffic patterns"}],["$","li","3",{"children":"Remember user preferences"}],["$","li","4",{"children":"Enhance overall user experience"}],["$","li","5",{"children":"Support website security"}]]}]]]}],["$","section","Types of Cookies We Use",{"id":"types-of-cookies-we-use","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Types of Cookies We Use"}],[["$","h3","0",{"className":"dm-legal__h3","children":"Essential Cookies"}],["$","p","1",{"className":"dm-legal__p","children":"These cookies are required for core website functionality and security features. The website may not function correctly without them."}],["$","h3","2",{"className":"dm-legal__h3","children":"Performance Cookies"}],["$","p","3",{"className":"dm-legal__p","children":"These cookies collect information about how visitors interact with the website and help us improve performance and usability."}],["$","h3","4",{"className":"dm-legal__h3","children":"Analytics Cookies"}],["$","p","5",{"className":"dm-legal__p","children":"Analytics cookies help us understand website traffic, visitor engagement, popular content, and user journeys."}],["$","h3","6",{"className":"dm-legal__h3","children":"Functional Cookies"}],["$","p","7",{"className":"dm-legal__p","children":"These cookies remember user preferences such as language, region, and other customization settings."}],["$","h3","8",{"className":"dm-legal__h3","children":"Third-Party Cookies"}],["$","p","9",{"className":"dm-legal__p","children":"Some third-party services integrated into our website, including analytics and performance monitoring tools, may place cookies on your device."}]]]}],["$","section","Managing Cookies",{"id":"managing-cookies","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Managing Cookies"}],[["$","p","0",{"className":"dm-legal__p","children":"Most web browsers allow users to control, block, or delete cookies through browser settings. Please note that disabling cookies may impact certain website features and functionality."}]]]}],["$","section","Cookie Consent",{"id":"cookie-consent","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Cookie Consent"}],[["$","p","0",{"className":"dm-legal__p","children":"Where required by applicable law, visitors may be presented with cookie consent options when accessing the website."}]]]}],["$","section","Policy Updates",{"id":"policy-updates","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Policy Updates"}],[["$","p","0",{"className":"dm-legal__p","children":"We may revise this Cookie Policy periodically to reflect changes in technology, regulations, or business practices. Updated versions will be published on this page."}]]]}],"$L17"]}]]}] +18:T15aa, +.dm-legal { + background: #ffffff; + color: #334155; + /* Top padding clears the fixed/absolute floating navbar (~104px) + breathing room. */ + padding: clamp(132px, 16vh, 184px) 0 clamp(72px, 10vw, 96px); + font-family: var(--font-manrope), system-ui, -apple-system, sans-serif; +} + +.dm-legal__wrap { + max-width: 1180px; + margin: 0 auto; + padding: 0 clamp(20px, 5vw, 40px); + display: grid; + grid-template-columns: minmax(0, 1fr); + gap: 0; +} + +/* ---- Sticky table of contents (desktop only) ---- */ +.dm-legal__toc { display: none; } + +@media (min-width: 1080px) { + .dm-legal__wrap { + grid-template-columns: 248px minmax(0, 800px); + justify-content: center; + gap: 64px; + } + .dm-legal__toc { display: block; } +} + +.dm-legal__toc-inner { position: sticky; top: 128px; } +.dm-legal__toc-label { + margin: 0 0 14px; + font-size: 12px; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: #94a3b8; +} +.dm-legal__toc nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; } +.dm-legal__toc nav a { + display: block; + font-size: 14px; + line-height: 1.4; + color: #64748b; + text-decoration: none; + border-left: 2px solid transparent; + padding-left: 12px; + transition: color 0.2s ease, border-color 0.2s ease; +} +.dm-legal__toc nav a:hover { color: #c01227; border-left-color: #c01227; } + +/* ---- Reading column (max 800px) ---- */ +.dm-legal__main { min-width: 0; max-width: 800px; } + +.dm-legal__hero { margin-bottom: clamp(40px, 6vw, 56px); } +.dm-legal__title { + margin: 0 !important; + padding: 0 !important; + /* !important / text-transform override the global ".elementor-kit-5 h1" + (uppercase + kit font-size) so headings render in normal case at the spec sizes. */ + font-size: clamp(40px, 6vw, 60px) !important; + font-weight: 800 !important; + line-height: 1.08 !important; + letter-spacing: -0.02em !important; + text-transform: none !important; + color: #0f172a !important; +} +.dm-legal__updated { + margin: 16px 0 0; + font-size: 14px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + color: #94a3b8; +} + +.dm-legal__lead { + margin: 24px 0 0; + font-size: clamp(18px, 1.6vw, 20px); + line-height: 1.7; + color: #475569; +} +.dm-legal__hero .dm-legal__lead { margin-top: 24px; } + +/* ---- Sections ---- */ +.dm-legal__content { display: flex; flex-direction: column; } +.dm-legal__section { padding-top: 32px; } +.dm-legal__section:first-child { padding-top: 0; } + +.dm-legal__h2 { + margin: 0 0 16px !important; + padding: 0 !important; + font-size: clamp(24px, 3vw, 32px) !important; + font-weight: 700 !important; + line-height: 1.2 !important; + letter-spacing: -0.01em !important; + text-transform: none !important; + color: #0f172a !important; + /* Offset anchor jumps so the heading isn't hidden under the fixed navbar. */ + scroll-margin-top: 120px; +} +.dm-legal__h3 { + margin: 24px 0 8px !important; + padding: 0 !important; + font-size: 20px !important; + font-weight: 700 !important; + line-height: 1.35 !important; + text-transform: none !important; + color: #0f172a !important; +} +.dm-legal__p { + margin: 0 0 16px; + font-size: 18px; + line-height: 1.7; + color: #334155; +} +.dm-legal__p:last-child { margin-bottom: 0; } + +.dm-legal__ul { margin: 4px 0 16px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; } +.dm-legal__ul li { + position: relative; + padding-left: 26px; + font-size: 18px; + line-height: 1.7; + color: #334155; +} +/* Extra .dm-legal prefix raises specificity above the global theme rule + ".logico-front-end ul li:before" (a fontello glyph), so our clean red dot + replaces the inherited checkmark marker. */ +.dm-legal .dm-legal__ul li::before { + content: "" !important; + position: absolute; + left: 4px; + top: 0.62em; + width: 7px; + height: 7px; + border-radius: 50%; + background: #c01227; + font-size: 0; +} +/* TOC links are inside a
    too — suppress the same inherited glyph marker. */ +.dm-legal .dm-legal__toc nav li::before { content: none !important; } + +.dm-legal__link { color: #c01227; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(192,18,39,0.35); } +.dm-legal__link:hover { border-bottom-color: #c01227; } + +@media (max-width: 1079px) { + .dm-legal__main { margin: 0 auto; } +} + +/* ============================================================ + Navbar visibility — LEGAL PAGES ONLY. + This
    / Why Doormile Wings /

    Built for the speed of the Gen-Z economy

    Same-Day Air Logistics

    Max 3-hour door-to-door delivery between India's major regional capitals.

    AI-Powered Operations

    MileTruth™ AI continuously forecasts demand and optimizes every route and load.

    Regional Connectivity

    Dedicated air capacity linking major economic hubs, not passenger-belly space.

    EV Last Mile

    Zero-emission electric vehicles complete every first- and final-mile delivery.

    / The Speed Advantage /

    Same-day, not some-day

    Surface Logistics
    48–0
    Hours

    Delhi–Mumbai standard surface transit time.

    VS
    Doormile Wings
    Max 0
    Hours, Door-to-Door

    Same-day delivery between major regional capitals.

    / Why Businesses Choose Doormile Wings /

    Built to be depended on

    AI Decision Engine

    MileTruth™ AI continuously forecasts demand and optimizes routing and load decisions in real time.

    Real-Time Visibility

    Live shipment tracking keeps shippers, ground teams, and customers updated at every stage.

    Faster Regional Reach

    A dedicated network linking major regional capitals, built for speed rather than passenger schedules.

    Reliable Scheduled Operations

    Dedicated freighter capacity with consistent schedules — not subject to passenger-belly bumping.

    / Industries We Serve /

    Built for the shipments that can’t wait

    Quick Commerce

    Quick Commerce

    Challenge

    Sub-3-hour delivery windows for dark stores and micro-warehouses.

    Doormile Wings

    Dedicated same-day air capacity linking metros to fulfillment hubs.

    Express B2B Cargo

    Express B2B Cargo

    Challenge

    Time-critical industrial parts and components stuck on slow trunk routes.

    Doormile Wings

    Rapid airport-to-airport transport between major economic nodes.

    Healthcare & Pharma

    Healthcare & Pharma

    Challenge

    Temperature-sensitive, compliance-critical shipments with zero margin for error.

    Doormile Wings

    Active and passive cold-chain packaging with full chain-of-custody tracking.

    Cold Chain Logistics

    Cold Chain Logistics

    Challenge

    Perishables and fresh goods that can't survive slow surface transit.

    Doormile Wings

    Precision temperature tracking matched to airline-speed transit.

    High-Value Cargo

    High-Value Cargo

    Challenge

    Zero tolerance for loss, tampering, or delay on high-value shipments.

    Doormile Wings

    Maximum-security handling with real-time electronic custody tracking.

    E-Commerce Logistics

    E-Commerce Logistics

    Challenge

    Next-day and same-day fulfillment expectations across tier-1 and tier-2 cities.

    Doormile Wings

    Direct sorting-hub-to-airport clearance network for faster regional delivery.

    / How It Works /

    Pickup to
    delivery, one
    connected flow

    01Step

    Local Pickup

    Fast, on-demand first-mile logistics dispatched by electric vehicle.

    02Step

    Airport Clearance

    Automated screening, grouping, and rapid cross-docking at the hub.

    03Step

    Air Transit

    Optimized cargo flights bypass surface congestion on our regional fleet.

    04Step

    Destination Hub

    Immediate de-consolidation and screening upon arrival.

    05Step

    EV Last-Mile

    Zero-emission electric vehicles complete the final delivery.

    Quick Logistics

    Same-Day Air Network

    / Fleet Strategy /

    Purpose-Built for Regional Speed

    3Phase 1 Aircraft
    25Phase 2 Vision
    FLEET SPECIFICATIONSAI ENGINE
    0.0tATR72 Payload
    0kmATR72 Range
    0.0tQ400 Payload
    0km/hQ400 Speed
    Dedicated Freighter Capacity

    Purpose-built cargo lift, not passenger-belly space competing with baggage.

    Regional Route Design

    Turboprop range and speed matched to India's major regional-capital corridors.

    Scaling to 25 Aircraft

    Phase 2 vision: pan-India connectivity hubs and international regional routes.

    ATR72 Payload0.0t
    ATR72 Range0km
    Q400 Payload0.0t
    Q400 Speed0km/h
    / Infrastructure /

    A network built to move, not to sit idle

    Airport Cargo Hubs

    Near-airport clearance hubs instead of standalone warehouses — closer to the tarmac, faster to the aircraft.

    Cross-Docking

    Screening, grouping, and consolidation happen in one motion, minimizing dwell time between arrival and departure.

    Asset-Light Network

    Leased terminal space that flexes with demand, keeping the network nimble as new routes come online.

    Scalable Operations

    Modular ground infrastructure built to expand city by city without slowing down day-to-day operations.

    / MileTruth™ AI /

    The intelligence layer behind every delivery

    Demand Forecasting

    AI-driven forward projection of cargo demand, preemptively positioning aircraft and ground capacity.

    Dynamic Pricing

    Real-time rate adjustments that track market capacity fluctuations and optimize yield.

    Route Optimization

    Dynamic scheduling for ground EV pickups and flights that bypasses congestion for the fastest path.

    Load Balancing

    Automated weight-and-balance modeling for optimal, safe aircraft load layout within minutes.

    Predictive Maintenance

    Continuous telemetry monitoring triggers preemptive alerts, drastically reducing aircraft downtime.

    Real-Time Tracking

    End-to-end sensor monitoring keeps shippers, airline, and EV operators updated on exact shipment state.

    Digital Twin of the Logistics Network

    A live virtual model of every ground vehicle, terminal, and flight — simulating what-if scenarios before bottlenecks ever form.

    SaaS Ready
    / Future Roadmap /

    A ten-year path to national scale

    Year 1
    Launch Phase

    Establish localized clearance hubs and launch cargo services connecting 5–6 key commercial cities.

    Year 2
    Network Growth

    Expand hub operations and airfield schedules, serving 15 regional and secondary cargo airports.

    Year 3
    Cross-Border Nodes

    Add international regional routes, bridging key freight corridors in South Asia.

    Year 5
    Operational Scale

    Expand to a fleet of 25 leased cargo aircraft, servicing over 50 regional airports nationwide.

    Year 10
    Global Duplication

    Replicate our asset-light, AI-powered logistics framework across Asia, Africa, and the Middle East.

\ No newline at end of file diff --git a/build/.next/server/app/doormile-wings.meta b/build/.next/server/app/doormile-wings.meta new file mode 100644 index 0000000..570359c --- /dev/null +++ b/build/.next/server/app/doormile-wings.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/doormile-wings/layout,_N_T_/doormile-wings/page,_N_T_/doormile-wings" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/doormile-wings/__PAGE__", + "/doormile-wings", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/doormile-wings.rsc b/build/.next/server/app/doormile-wings.rsc new file mode 100644 index 0000000..72e900f --- /dev/null +++ b/build/.next/server/app/doormile-wings.rsc @@ -0,0 +1,299 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[36202,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +d:I[63061,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +e:I[10425,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +1d:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/144so~-zgdm9_.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +f:Tafb, + .wfg-section { + background: #ffffff; + padding: var(--space-section-lg, 80px) 0; + } + + .wfg-header { + margin: 0 auto 48px auto; + max-width: 720px; + text-align: center; + } + + .wfg-eyebrow { + font-size: 13px; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.45); + margin-bottom: 16px; + } + + .wfg-title { + font-size: clamp(28px, 3.2vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0; + } + + .wfg-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wfg-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 20px; + } + + .wfg-card { + min-width: 0; + background: #ffffff; + border: 1px solid rgba(17, 17, 17, 0.1); + border-radius: 20px; + padding: 30px 26px; + transition: border-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s cubic-bezier(0.165, 0.84, 0.44, 1); + } + + .wfg-card:hover { + border-color: #c8102e; + box-shadow: 0 20px 40px rgba(200, 16, 46, 0.08); + transform: translateY(-8px); + } + + .wfg-icon { + width: 46px; + height: 46px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 12px; + background: rgba(200, 16, 46, 0.06); + color: #c8102e; + margin-bottom: 20px; + } + + .wfg-card-title { + font-size: 16.5px !important; + font-weight: 700 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 0 8px 0; + } + + .wfg-card-desc { + font-size: 14px; + line-height: 1.55; + color: rgba(17, 17, 17, 0.6); + margin: 0; + } + + @media (max-width: 1024px) { + .wfg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + } + + @media (max-width: 600px) { + .wfg-grid { grid-template-columns: 1fr; } + /* var(--space-section-lg) floors at a fixed 52px on any phone + width (clamp() has no further breakpoint-based step-down), which + reads as noticeably heavier than the section rhythm near the + footer. Trimmed to a real mobile value here instead. */ + .wfg-section { padding-top: 44px; padding-bottom: 44px; } + } + 0:{"P":null,"c":["","doormile-wings"],"q":"","i":false,"f":[[["",{"children":["doormile-wings",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"doormile-wings","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"95","className":"elementor elementor-95 elementor-59","children":[["$","$Lc",null,{}],["$","$Ld",null,{}],["$","$Le",null,{}],[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$f"}}],"$L10"],"$L11","$L12","$L13","$L14","$L15","$L16"]}]}]}]}],["$L17","$L18","$L19"],"$L1a"]}],{},null,false,null]},null,false,"$@1b"]},null,false,null],"$L1c",false]],"m":"$undefined","G":["$1d",["$L1e"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1f:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"ScrollReveal"] +20:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"StaggerChildren"] +23:I[48920,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +24:I[14224,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +25:I[55064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +26:I[13378,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +27:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +28:"$Sreact.suspense" +2b:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +2d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +10:["$","section",null,{"className":"wfg-section","id":"wings-features","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"wfg-inner","children":[["$","$L1f",null,{"delay":0.05,"duration":0.75,"yOffset":25,"className":"wfg-header","children":[["$","div",null,{"className":"wfg-eyebrow","children":"/ Why Businesses Choose Doormile Wings /"}],["$","h2",null,{"className":"wfg-title","children":"Built to be depended on"}]]}],["$","$L20",null,{"stagger":0.1,"duration":0.7,"yOffset":30,"className":"wfg-grid","children":[["$","div","AI Decision Engine",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M12 2a4 4 0 0 1 4 4v1a4 4 0 0 1-1.2 2.86A4 4 0 0 1 16 13v1a4 4 0 0 1-4 4 4 4 0 0 1-4-4v-1a4 4 0 0 1 1.2-3.14A4 4 0 0 1 8 7V6a4 4 0 0 1 4-4Z"}],["$","path",null,{"d":"M9 21h6M12 18v3"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"AI Decision Engine"}],["$","p",null,{"className":"wfg-card-desc","children":"MileTruth™ AI continuously forecasts demand and optimizes routing and load decisions in real time."}]]}],["$","div","Real-Time Visibility",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7Z"}],["$","circle",null,{"cx":"12","cy":"12","r":"3"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Real-Time Visibility"}],["$","p",null,{"className":"wfg-card-desc","children":"Live shipment tracking keeps shippers, ground teams, and customers updated at every stage."}]]}],["$","div","Faster Regional Reach",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"13 6 19 12 13 18"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Faster Regional Reach"}],["$","p",null,{"className":"wfg-card-desc","children":"A dedicated network linking major regional capitals, built for speed rather than passenger schedules."}]]}],["$","div","Reliable Scheduled Operations",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"3"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}],["$","path",null,{"d":"M9 16l2 2 4-4"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Reliable Scheduled Operations"}],["$","p",null,{"className":"wfg-card-desc","children":"Dedicated freighter capacity with consistent schedules — not subject to passenger-belly bumping."}]]}]]}]]}]}]}] +21:Tfac, + .wind-section { + background: #fafafa; + padding: var(--space-section-lg, 80px) 0 20px 0; /* Reduced bottom padding to minimize gap */ + } + + .wind-header { + margin: 0 auto 48px auto; + max-width: 720px; + text-align: center; + } + + .wind-eyebrow { + font-size: 13px; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.45); + margin-bottom: 16px; + } + + .wind-title { + font-size: clamp(28px, 3.2vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0; + } + + .wind-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wind-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 20px; + } + + .wind-card { + position: relative; + min-width: 0; + aspect-ratio: 4 / 5; + border-radius: 20px; + overflow: hidden; + background: linear-gradient(150deg, #17171b 0%, #0b0b0d 100%); + isolation: isolate; + } + + .wind-card-wash { + position: absolute; + inset: 0; + background: linear-gradient(160deg, rgba(200, 16, 46, 0.35) 0%, rgba(200, 16, 46, 0) 60%); + opacity: 0.5; + transition: opacity 0.4s ease; + } + + .wind-card:hover .wind-card-wash { + opacity: 1; + } + + .wind-card-default { + position: absolute; + left: 24px; + right: 24px; + bottom: 24px; + transition: opacity 0.3s ease, transform 0.3s ease; + } + + .wind-card:hover .wind-card-default { + opacity: 0; + transform: translateY(8px); + pointer-events: none; + } + + .wind-card .wind-card-default-title { + font-size: 20px !important; + font-weight: 800 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0; + } + + .wind-card-hover { + position: absolute; + inset: 0; + padding: 26px 24px; + display: flex; + flex-direction: column; + justify-content: flex-end; + gap: 14px; + opacity: 0; + transform: translateY(10px); + transition: opacity 0.35s ease, transform 0.35s ease; + } + + .wind-card:hover .wind-card-hover { + opacity: 1; + transform: translateY(0); + } + + .wind-card .wind-card-hover-title { + font-size: 19px !important; + font-weight: 800 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0; + } + + .wind-card-label { + font-size: 10.5px; + font-weight: 800; + letter-spacing: 1.2px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.5); + margin: 0 0 4px 0; + } + + .wind-card-text { + font-size: 13px; + line-height: 1.5; + color: rgba(255, 255, 255, 0.85); + margin: 0; + } + + @media (max-width: 1024px) { + .wind-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + } + + @media (max-width: 600px) { + .wind-grid { grid-template-columns: 1fr; } + .wind-card { aspect-ratio: 3 / 4; } + /* var(--space-section-lg) floors at a fixed 52px on any phone + width; bottom is already trimmed to 20px, so only the top needs + a real mobile reduction to match the section rhythm near the + footer. */ + .wind-section { padding-top: 44px; } + } + 11:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$21"}}],"$L22"] +12:["$","$L23",null,{}] +13:["$","div",null,{"id":"wings-fleet","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @media (max-width: 767px) {\n #wings-fleet .evnd-gap-bottom { margin-bottom: 14px !important; }\n }\n "}}],["$","$L24",null,{"bannerImage":"/images/pahse1.png","cardTitle":"Quick Logistics","cardSubtitle":"Same-Day Air Network","eyebrow":"/ Fleet Strategy /","titleLead":"Purpose-Built for ","titleAccent":"Regional Speed","features":[{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M22 12h-6l-4-9-2 1 3 8H5l-2-3-1.5.6L3 14l1.5 4.4L6 18l-2-3h8l3 8 2-1-3-8h6z"}]}],"title":"Dedicated Freighter Capacity","desc":"Purpose-built cargo lift, not passenger-belly space competing with baggage."},{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"6","cy":"6","r":"2.5"}],["$","circle",null,{"cx":"18","cy":"6","r":"2.5"}],["$","circle",null,{"cx":"12","cy":"18","r":"2.5"}],["$","path",null,{"d":"M8.2 7.2 10 16M15.8 7.2 14 16M8.5 6h7"}]]}],"title":"Regional Route Design","desc":"Turboprop range and speed matched to India's major regional-capital corridors."},{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M3 3v18h18"}],["$","path",null,{"d":"M7 14l4-4 3 3 6-7"}]]}],"title":"Scaling to 25 Aircraft","desc":"Phase 2 vision: pan-India connectivity hubs and international regional routes."}],"metrics":[{"value":8.2,"decimals":1,"suffix":"t","label":"ATR72 Payload"},{"value":1600,"suffix":"km","label":"ATR72 Range"},{"value":8.6,"decimals":1,"suffix":"t","label":"Q400 Payload"},{"value":667,"suffix":"km/h","label":"Q400 Speed"}],"cardsHeading":"FLEET SPECIFICATIONS","cardsTheme":{"accent":"#c8102e","accent2":"#ff6a3d","glow":"rgba(200,16,46,0.22)"},"gapTop":true,"gapBottom":true,"badges":[{"value":"3","label":"Phase 1 Aircraft"},{"value":"25","label":"Phase 2 Vision"}],"mediaSlot":["$","video",null,{"autoPlay":true,"loop":true,"muted":true,"playsInline":true,"style":{"width":"100%","height":"100%","minHeight":420,"objectFit":"cover","display":"block","background":"#17171b"},"children":["$","source",null,{"src":"/videos/fleet.mp4","type":"video/mp4"}]}],"ariaLabel":"Doormile Wings fleet strategy"}]]}] +14:["$","section",null,{"className":"WingsInfrastructure-module__akH2-q__section","id":"wings-infrastructure","children":["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__sectionShell","children":[["$","$L1f",null,{"delay":0.05,"duration":0.7,"yOffset":20,"className":"WingsInfrastructure-module__akH2-q__header","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__eyebrow","children":"/ Infrastructure /"}],["$","h2",null,{"className":"WingsInfrastructure-module__akH2-q__title","children":"A network built to move, not to sit idle"}]]}],["$","$L20",null,{"stagger":0.08,"duration":0.6,"yOffset":20,"className":"WingsInfrastructure-module__akH2-q__grid","children":[["$","div","Airport Cargo Hubs",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Airport Cargo Hubs"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Near-airport clearance hubs instead of standalone warehouses — closer to the tarmac, faster to the aircraft."}]]}],["$","div","Cross-Docking",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M3 7h7l2 3h9M3 7v10h18V10"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Cross-Docking"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Screening, grouping, and consolidation happen in one motion, minimizing dwell time between arrival and departure."}]]}],["$","div","Asset-Light Network",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"3","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"14","y":"3","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"3","y":"14","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"14","y":"14","width":"7","height":"7","rx":"1"}]]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Asset-Light Network"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Leased terminal space that flexes with demand, keeping the network nimble as new routes come online."}]]}],["$","div","Scalable Operations",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M3 21V9l6-4 6 4v12M9 21V13h6v8"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Scalable Operations"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Modular ground infrastructure built to expand city by city without slowing down day-to-day operations."}]]}]]}]]}]}] +15:["$","$L25",null,{}] +16:["$","$L26",null,{}] +17:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/144so~-zgdm9_.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +18:["$","script","script-0",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true,"nonce":"$undefined"}] +19:["$","script","script-1",{"src":"/_next/static/chunks/06~35roaehny..js","async":true,"nonce":"$undefined"}] +1a:["$","$L27",null,{"children":["$","$28",null,{"name":"Next.MetadataOutlet","children":"$@29"}]}] +2a:[] +1b:"$W2a" +1c:["$","$1","h",{"children":[null,["$","$L2b",null,{"children":"$L2c"}],["$","div",null,{"hidden":true,"children":["$","$L2d",null,{"children":["$","$28",null,{"name":"Next.Metadata","children":"$L2e"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +1e:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +22:["$","section",null,{"className":"wind-section","id":"wings-industries","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"wind-inner","children":[["$","$L1f",null,{"delay":0.05,"duration":0.75,"yOffset":25,"className":"wind-header","children":[["$","div",null,{"className":"wind-eyebrow","children":"/ Industries We Serve /"}],["$","h2",null,{"className":"wind-title","children":"Built for the shipments that can’t wait"}]]}],["$","$L1f",null,{"delay":0.1,"duration":0.8,"yOffset":30,"className":"wind-grid","children":[["$","div","Quick Commerce",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 1.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Quick Commerce"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Quick Commerce"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Sub-3-hour delivery windows for dark stores and micro-warehouses."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Dedicated same-day air capacity linking metros to fulfillment hubs."}]]}]]}]]}],["$","div","Express B2B Cargo",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 2.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Express B2B Cargo"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Express B2B Cargo"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Time-critical industrial parts and components stuck on slow trunk routes."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Rapid airport-to-airport transport between major economic nodes."}]]}]]}]]}],["$","div","Healthcare & Pharma",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 3.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Healthcare & Pharma"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Healthcare & Pharma"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Temperature-sensitive, compliance-critical shipments with zero margin for error."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Active and passive cold-chain packaging with full chain-of-custody tracking."}]]}]]}]]}],["$","div","Cold Chain Logistics",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card4.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Cold Chain Logistics"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Cold Chain Logistics"}],"$L2f","$L30"]}]]}],"$L31","$L32"]}]]}]}]}] +2f:["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Perishables and fresh goods that can't survive slow surface transit."}]]}] +30:["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Precision temperature tracking matched to airline-speed transit."}]]}] +31:["$","div","High-Value Cargo",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card5.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"High-Value Cargo"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"High-Value Cargo"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Zero tolerance for loss, tampering, or delay on high-value shipments."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Maximum-security handling with real-time electronic custody tracking."}]]}]]}]]}] +32:["$","div","E-Commerce Logistics",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card6.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"E-Commerce Logistics"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"E-Commerce Logistics"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Next-day and same-day fulfillment expectations across tier-1 and tier-2 cities."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Direct sorting-hub-to-airport clearance network for faster regional delivery."}]]}]]}]]}] +2c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +33:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +29:null +2e:[["$","title","0",{"children":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","1",{"name":"description","content":"Doormile Wings links India's major regional capitals with AI-powered, same-day air logistics and zero-emission EV last-mile delivery — where quick commerce meets quick logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/doormile-wings"}],["$","meta","4",{"property":"og:title","content":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","5",{"property":"og:description","content":"Same-day air logistics linking India's major regional capitals, powered by MileTruth™ AI and zero-emission EV last-mile delivery."}],["$","meta","6",{"property":"og:url","content":"https://doormile.com/doormile-wings"}],["$","meta","7",{"property":"og:site_name","content":"Doormile"}],["$","meta","8",{"property":"og:image","content":"https://doormile.com/images/wings-logo.png"}],["$","meta","9",{"property":"og:image:width","content":"1200"}],["$","meta","10",{"property":"og:image:height","content":"630"}],["$","meta","11",{"property":"og:image:alt","content":"Doormile Wings"}],["$","meta","12",{"property":"og:type","content":"website"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","15",{"name":"twitter:description","content":"Same-day air logistics linking India's major regional capitals, powered by MileTruth™ AI and zero-emission EV last-mile delivery."}],["$","meta","16",{"name":"twitter:image","content":"https://doormile.com/images/wings-logo.png"}],["$","link","17",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","18",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","19",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L33","21",{}]] diff --git a/build/.next/server/app/doormile-wings.segments/_full.segment.rsc b/build/.next/server/app/doormile-wings.segments/_full.segment.rsc new file mode 100644 index 0000000..72e900f --- /dev/null +++ b/build/.next/server/app/doormile-wings.segments/_full.segment.rsc @@ -0,0 +1,299 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[36202,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +d:I[63061,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +e:I[10425,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +1d:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/144so~-zgdm9_.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +f:Tafb, + .wfg-section { + background: #ffffff; + padding: var(--space-section-lg, 80px) 0; + } + + .wfg-header { + margin: 0 auto 48px auto; + max-width: 720px; + text-align: center; + } + + .wfg-eyebrow { + font-size: 13px; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.45); + margin-bottom: 16px; + } + + .wfg-title { + font-size: clamp(28px, 3.2vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0; + } + + .wfg-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wfg-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 20px; + } + + .wfg-card { + min-width: 0; + background: #ffffff; + border: 1px solid rgba(17, 17, 17, 0.1); + border-radius: 20px; + padding: 30px 26px; + transition: border-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s cubic-bezier(0.165, 0.84, 0.44, 1); + } + + .wfg-card:hover { + border-color: #c8102e; + box-shadow: 0 20px 40px rgba(200, 16, 46, 0.08); + transform: translateY(-8px); + } + + .wfg-icon { + width: 46px; + height: 46px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 12px; + background: rgba(200, 16, 46, 0.06); + color: #c8102e; + margin-bottom: 20px; + } + + .wfg-card-title { + font-size: 16.5px !important; + font-weight: 700 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 0 8px 0; + } + + .wfg-card-desc { + font-size: 14px; + line-height: 1.55; + color: rgba(17, 17, 17, 0.6); + margin: 0; + } + + @media (max-width: 1024px) { + .wfg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + } + + @media (max-width: 600px) { + .wfg-grid { grid-template-columns: 1fr; } + /* var(--space-section-lg) floors at a fixed 52px on any phone + width (clamp() has no further breakpoint-based step-down), which + reads as noticeably heavier than the section rhythm near the + footer. Trimmed to a real mobile value here instead. */ + .wfg-section { padding-top: 44px; padding-bottom: 44px; } + } + 0:{"P":null,"c":["","doormile-wings"],"q":"","i":false,"f":[[["",{"children":["doormile-wings",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"doormile-wings","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"95","className":"elementor elementor-95 elementor-59","children":[["$","$Lc",null,{}],["$","$Ld",null,{}],["$","$Le",null,{}],[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$f"}}],"$L10"],"$L11","$L12","$L13","$L14","$L15","$L16"]}]}]}]}],["$L17","$L18","$L19"],"$L1a"]}],{},null,false,null]},null,false,"$@1b"]},null,false,null],"$L1c",false]],"m":"$undefined","G":["$1d",["$L1e"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1f:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"ScrollReveal"] +20:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"StaggerChildren"] +23:I[48920,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +24:I[14224,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +25:I[55064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +26:I[13378,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +27:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +28:"$Sreact.suspense" +2b:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +2d:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +10:["$","section",null,{"className":"wfg-section","id":"wings-features","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"wfg-inner","children":[["$","$L1f",null,{"delay":0.05,"duration":0.75,"yOffset":25,"className":"wfg-header","children":[["$","div",null,{"className":"wfg-eyebrow","children":"/ Why Businesses Choose Doormile Wings /"}],["$","h2",null,{"className":"wfg-title","children":"Built to be depended on"}]]}],["$","$L20",null,{"stagger":0.1,"duration":0.7,"yOffset":30,"className":"wfg-grid","children":[["$","div","AI Decision Engine",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M12 2a4 4 0 0 1 4 4v1a4 4 0 0 1-1.2 2.86A4 4 0 0 1 16 13v1a4 4 0 0 1-4 4 4 4 0 0 1-4-4v-1a4 4 0 0 1 1.2-3.14A4 4 0 0 1 8 7V6a4 4 0 0 1 4-4Z"}],["$","path",null,{"d":"M9 21h6M12 18v3"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"AI Decision Engine"}],["$","p",null,{"className":"wfg-card-desc","children":"MileTruth™ AI continuously forecasts demand and optimizes routing and load decisions in real time."}]]}],["$","div","Real-Time Visibility",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7Z"}],["$","circle",null,{"cx":"12","cy":"12","r":"3"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Real-Time Visibility"}],["$","p",null,{"className":"wfg-card-desc","children":"Live shipment tracking keeps shippers, ground teams, and customers updated at every stage."}]]}],["$","div","Faster Regional Reach",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"13 6 19 12 13 18"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Faster Regional Reach"}],["$","p",null,{"className":"wfg-card-desc","children":"A dedicated network linking major regional capitals, built for speed rather than passenger schedules."}]]}],["$","div","Reliable Scheduled Operations",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"3"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}],["$","path",null,{"d":"M9 16l2 2 4-4"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Reliable Scheduled Operations"}],["$","p",null,{"className":"wfg-card-desc","children":"Dedicated freighter capacity with consistent schedules — not subject to passenger-belly bumping."}]]}]]}]]}]}]}] +21:Tfac, + .wind-section { + background: #fafafa; + padding: var(--space-section-lg, 80px) 0 20px 0; /* Reduced bottom padding to minimize gap */ + } + + .wind-header { + margin: 0 auto 48px auto; + max-width: 720px; + text-align: center; + } + + .wind-eyebrow { + font-size: 13px; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.45); + margin-bottom: 16px; + } + + .wind-title { + font-size: clamp(28px, 3.2vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0; + } + + .wind-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wind-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 20px; + } + + .wind-card { + position: relative; + min-width: 0; + aspect-ratio: 4 / 5; + border-radius: 20px; + overflow: hidden; + background: linear-gradient(150deg, #17171b 0%, #0b0b0d 100%); + isolation: isolate; + } + + .wind-card-wash { + position: absolute; + inset: 0; + background: linear-gradient(160deg, rgba(200, 16, 46, 0.35) 0%, rgba(200, 16, 46, 0) 60%); + opacity: 0.5; + transition: opacity 0.4s ease; + } + + .wind-card:hover .wind-card-wash { + opacity: 1; + } + + .wind-card-default { + position: absolute; + left: 24px; + right: 24px; + bottom: 24px; + transition: opacity 0.3s ease, transform 0.3s ease; + } + + .wind-card:hover .wind-card-default { + opacity: 0; + transform: translateY(8px); + pointer-events: none; + } + + .wind-card .wind-card-default-title { + font-size: 20px !important; + font-weight: 800 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0; + } + + .wind-card-hover { + position: absolute; + inset: 0; + padding: 26px 24px; + display: flex; + flex-direction: column; + justify-content: flex-end; + gap: 14px; + opacity: 0; + transform: translateY(10px); + transition: opacity 0.35s ease, transform 0.35s ease; + } + + .wind-card:hover .wind-card-hover { + opacity: 1; + transform: translateY(0); + } + + .wind-card .wind-card-hover-title { + font-size: 19px !important; + font-weight: 800 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0; + } + + .wind-card-label { + font-size: 10.5px; + font-weight: 800; + letter-spacing: 1.2px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.5); + margin: 0 0 4px 0; + } + + .wind-card-text { + font-size: 13px; + line-height: 1.5; + color: rgba(255, 255, 255, 0.85); + margin: 0; + } + + @media (max-width: 1024px) { + .wind-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + } + + @media (max-width: 600px) { + .wind-grid { grid-template-columns: 1fr; } + .wind-card { aspect-ratio: 3 / 4; } + /* var(--space-section-lg) floors at a fixed 52px on any phone + width; bottom is already trimmed to 20px, so only the top needs + a real mobile reduction to match the section rhythm near the + footer. */ + .wind-section { padding-top: 44px; } + } + 11:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$21"}}],"$L22"] +12:["$","$L23",null,{}] +13:["$","div",null,{"id":"wings-fleet","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @media (max-width: 767px) {\n #wings-fleet .evnd-gap-bottom { margin-bottom: 14px !important; }\n }\n "}}],["$","$L24",null,{"bannerImage":"/images/pahse1.png","cardTitle":"Quick Logistics","cardSubtitle":"Same-Day Air Network","eyebrow":"/ Fleet Strategy /","titleLead":"Purpose-Built for ","titleAccent":"Regional Speed","features":[{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M22 12h-6l-4-9-2 1 3 8H5l-2-3-1.5.6L3 14l1.5 4.4L6 18l-2-3h8l3 8 2-1-3-8h6z"}]}],"title":"Dedicated Freighter Capacity","desc":"Purpose-built cargo lift, not passenger-belly space competing with baggage."},{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"6","cy":"6","r":"2.5"}],["$","circle",null,{"cx":"18","cy":"6","r":"2.5"}],["$","circle",null,{"cx":"12","cy":"18","r":"2.5"}],["$","path",null,{"d":"M8.2 7.2 10 16M15.8 7.2 14 16M8.5 6h7"}]]}],"title":"Regional Route Design","desc":"Turboprop range and speed matched to India's major regional-capital corridors."},{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M3 3v18h18"}],["$","path",null,{"d":"M7 14l4-4 3 3 6-7"}]]}],"title":"Scaling to 25 Aircraft","desc":"Phase 2 vision: pan-India connectivity hubs and international regional routes."}],"metrics":[{"value":8.2,"decimals":1,"suffix":"t","label":"ATR72 Payload"},{"value":1600,"suffix":"km","label":"ATR72 Range"},{"value":8.6,"decimals":1,"suffix":"t","label":"Q400 Payload"},{"value":667,"suffix":"km/h","label":"Q400 Speed"}],"cardsHeading":"FLEET SPECIFICATIONS","cardsTheme":{"accent":"#c8102e","accent2":"#ff6a3d","glow":"rgba(200,16,46,0.22)"},"gapTop":true,"gapBottom":true,"badges":[{"value":"3","label":"Phase 1 Aircraft"},{"value":"25","label":"Phase 2 Vision"}],"mediaSlot":["$","video",null,{"autoPlay":true,"loop":true,"muted":true,"playsInline":true,"style":{"width":"100%","height":"100%","minHeight":420,"objectFit":"cover","display":"block","background":"#17171b"},"children":["$","source",null,{"src":"/videos/fleet.mp4","type":"video/mp4"}]}],"ariaLabel":"Doormile Wings fleet strategy"}]]}] +14:["$","section",null,{"className":"WingsInfrastructure-module__akH2-q__section","id":"wings-infrastructure","children":["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__sectionShell","children":[["$","$L1f",null,{"delay":0.05,"duration":0.7,"yOffset":20,"className":"WingsInfrastructure-module__akH2-q__header","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__eyebrow","children":"/ Infrastructure /"}],["$","h2",null,{"className":"WingsInfrastructure-module__akH2-q__title","children":"A network built to move, not to sit idle"}]]}],["$","$L20",null,{"stagger":0.08,"duration":0.6,"yOffset":20,"className":"WingsInfrastructure-module__akH2-q__grid","children":[["$","div","Airport Cargo Hubs",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Airport Cargo Hubs"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Near-airport clearance hubs instead of standalone warehouses — closer to the tarmac, faster to the aircraft."}]]}],["$","div","Cross-Docking",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M3 7h7l2 3h9M3 7v10h18V10"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Cross-Docking"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Screening, grouping, and consolidation happen in one motion, minimizing dwell time between arrival and departure."}]]}],["$","div","Asset-Light Network",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"3","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"14","y":"3","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"3","y":"14","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"14","y":"14","width":"7","height":"7","rx":"1"}]]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Asset-Light Network"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Leased terminal space that flexes with demand, keeping the network nimble as new routes come online."}]]}],["$","div","Scalable Operations",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M3 21V9l6-4 6 4v12M9 21V13h6v8"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Scalable Operations"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Modular ground infrastructure built to expand city by city without slowing down day-to-day operations."}]]}]]}]]}]}] +15:["$","$L25",null,{}] +16:["$","$L26",null,{}] +17:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/144so~-zgdm9_.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +18:["$","script","script-0",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true,"nonce":"$undefined"}] +19:["$","script","script-1",{"src":"/_next/static/chunks/06~35roaehny..js","async":true,"nonce":"$undefined"}] +1a:["$","$L27",null,{"children":["$","$28",null,{"name":"Next.MetadataOutlet","children":"$@29"}]}] +2a:[] +1b:"$W2a" +1c:["$","$1","h",{"children":[null,["$","$L2b",null,{"children":"$L2c"}],["$","div",null,{"hidden":true,"children":["$","$L2d",null,{"children":["$","$28",null,{"name":"Next.Metadata","children":"$L2e"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +1e:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +22:["$","section",null,{"className":"wind-section","id":"wings-industries","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"wind-inner","children":[["$","$L1f",null,{"delay":0.05,"duration":0.75,"yOffset":25,"className":"wind-header","children":[["$","div",null,{"className":"wind-eyebrow","children":"/ Industries We Serve /"}],["$","h2",null,{"className":"wind-title","children":"Built for the shipments that can’t wait"}]]}],["$","$L1f",null,{"delay":0.1,"duration":0.8,"yOffset":30,"className":"wind-grid","children":[["$","div","Quick Commerce",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 1.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Quick Commerce"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Quick Commerce"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Sub-3-hour delivery windows for dark stores and micro-warehouses."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Dedicated same-day air capacity linking metros to fulfillment hubs."}]]}]]}]]}],["$","div","Express B2B Cargo",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 2.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Express B2B Cargo"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Express B2B Cargo"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Time-critical industrial parts and components stuck on slow trunk routes."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Rapid airport-to-airport transport between major economic nodes."}]]}]]}]]}],["$","div","Healthcare & Pharma",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 3.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Healthcare & Pharma"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Healthcare & Pharma"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Temperature-sensitive, compliance-critical shipments with zero margin for error."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Active and passive cold-chain packaging with full chain-of-custody tracking."}]]}]]}]]}],["$","div","Cold Chain Logistics",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card4.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Cold Chain Logistics"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Cold Chain Logistics"}],"$L2f","$L30"]}]]}],"$L31","$L32"]}]]}]}]}] +2f:["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Perishables and fresh goods that can't survive slow surface transit."}]]}] +30:["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Precision temperature tracking matched to airline-speed transit."}]]}] +31:["$","div","High-Value Cargo",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card5.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"High-Value Cargo"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"High-Value Cargo"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Zero tolerance for loss, tampering, or delay on high-value shipments."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Maximum-security handling with real-time electronic custody tracking."}]]}]]}]]}] +32:["$","div","E-Commerce Logistics",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card6.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"E-Commerce Logistics"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"E-Commerce Logistics"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Next-day and same-day fulfillment expectations across tier-1 and tier-2 cities."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Direct sorting-hub-to-airport clearance network for faster regional delivery."}]]}]]}]]}] +2c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +33:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +29:null +2e:[["$","title","0",{"children":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","1",{"name":"description","content":"Doormile Wings links India's major regional capitals with AI-powered, same-day air logistics and zero-emission EV last-mile delivery — where quick commerce meets quick logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/doormile-wings"}],["$","meta","4",{"property":"og:title","content":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","5",{"property":"og:description","content":"Same-day air logistics linking India's major regional capitals, powered by MileTruth™ AI and zero-emission EV last-mile delivery."}],["$","meta","6",{"property":"og:url","content":"https://doormile.com/doormile-wings"}],["$","meta","7",{"property":"og:site_name","content":"Doormile"}],["$","meta","8",{"property":"og:image","content":"https://doormile.com/images/wings-logo.png"}],["$","meta","9",{"property":"og:image:width","content":"1200"}],["$","meta","10",{"property":"og:image:height","content":"630"}],["$","meta","11",{"property":"og:image:alt","content":"Doormile Wings"}],["$","meta","12",{"property":"og:type","content":"website"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","15",{"name":"twitter:description","content":"Same-day air logistics linking India's major regional capitals, powered by MileTruth™ AI and zero-emission EV last-mile delivery."}],["$","meta","16",{"name":"twitter:image","content":"https://doormile.com/images/wings-logo.png"}],["$","link","17",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","18",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","19",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L33","21",{}]] diff --git a/build/.next/server/app/doormile-wings.segments/_head.segment.rsc b/build/.next/server/app/doormile-wings.segments/_head.segment.rsc new file mode 100644 index 0000000..bf024af --- /dev/null +++ b/build/.next/server/app/doormile-wings.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","1",{"name":"description","content":"Doormile Wings links India's major regional capitals with AI-powered, same-day air logistics and zero-emission EV last-mile delivery — where quick commerce meets quick logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/doormile-wings"}],["$","meta","4",{"property":"og:title","content":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","5",{"property":"og:description","content":"Same-day air logistics linking India's major regional capitals, powered by MileTruth™ AI and zero-emission EV last-mile delivery."}],["$","meta","6",{"property":"og:url","content":"https://doormile.com/doormile-wings"}],["$","meta","7",{"property":"og:site_name","content":"Doormile"}],["$","meta","8",{"property":"og:image","content":"https://doormile.com/images/wings-logo.png"}],["$","meta","9",{"property":"og:image:width","content":"1200"}],["$","meta","10",{"property":"og:image:height","content":"630"}],["$","meta","11",{"property":"og:image:alt","content":"Doormile Wings"}],["$","meta","12",{"property":"og:type","content":"website"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"Doormile Wings – Redefining Domestic Air Logistics Through AI"}],["$","meta","15",{"name":"twitter:description","content":"Same-day air logistics linking India's major regional capitals, powered by MileTruth™ AI and zero-emission EV last-mile delivery."}],["$","meta","16",{"name":"twitter:image","content":"https://doormile.com/images/wings-logo.png"}],["$","link","17",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","18",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","19",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","21",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/doormile-wings.segments/_index.segment.rsc b/build/.next/server/app/doormile-wings.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/doormile-wings.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/doormile-wings.segments/_tree.segment.rsc b/build/.next/server/app/doormile-wings.segments/_tree.segment.rsc new file mode 100644 index 0000000..642b05f --- /dev/null +++ b/build/.next/server/app/doormile-wings.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/144so~-zgdm9_.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"doormile-wings","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/doormile-wings.segments/doormile-wings.segment.rsc b/build/.next/server/app/doormile-wings.segments/doormile-wings.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/doormile-wings.segments/doormile-wings.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/doormile-wings.segments/doormile-wings/__PAGE__.segment.rsc b/build/.next/server/app/doormile-wings.segments/doormile-wings/__PAGE__.segment.rsc new file mode 100644 index 0000000..9a315f5 --- /dev/null +++ b/build/.next/server/app/doormile-wings.segments/doormile-wings/__PAGE__.segment.rsc @@ -0,0 +1,271 @@ +1:"$Sreact.fragment" +2:I[36202,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +3:I[63061,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +4:I[10425,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +11:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"ScrollReveal"] +12:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"StaggerChildren"] +15:I[48920,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +16:I[14224,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +17:I[55064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +18:I[13378,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"default"] +19:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +1a:"$Sreact.suspense" +:HL["/_next/static/chunks/144so~-zgdm9_.css","style"] +5:Tafb, + .wfg-section { + background: #ffffff; + padding: var(--space-section-lg, 80px) 0; + } + + .wfg-header { + margin: 0 auto 48px auto; + max-width: 720px; + text-align: center; + } + + .wfg-eyebrow { + font-size: 13px; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.45); + margin-bottom: 16px; + } + + .wfg-title { + font-size: clamp(28px, 3.2vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0; + } + + .wfg-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wfg-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 20px; + } + + .wfg-card { + min-width: 0; + background: #ffffff; + border: 1px solid rgba(17, 17, 17, 0.1); + border-radius: 20px; + padding: 30px 26px; + transition: border-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s cubic-bezier(0.165, 0.84, 0.44, 1); + } + + .wfg-card:hover { + border-color: #c8102e; + box-shadow: 0 20px 40px rgba(200, 16, 46, 0.08); + transform: translateY(-8px); + } + + .wfg-icon { + width: 46px; + height: 46px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 12px; + background: rgba(200, 16, 46, 0.06); + color: #c8102e; + margin-bottom: 20px; + } + + .wfg-card-title { + font-size: 16.5px !important; + font-weight: 700 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 0 8px 0; + } + + .wfg-card-desc { + font-size: 14px; + line-height: 1.55; + color: rgba(17, 17, 17, 0.6); + margin: 0; + } + + @media (max-width: 1024px) { + .wfg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + } + + @media (max-width: 600px) { + .wfg-grid { grid-template-columns: 1fr; } + /* var(--space-section-lg) floors at a fixed 52px on any phone + width (clamp() has no further breakpoint-based step-down), which + reads as noticeably heavier than the section rhythm near the + footer. Trimmed to a real mobile value here instead. */ + .wfg-section { padding-top: 44px; padding-bottom: 44px; } + } + 0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"doormile-wings","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"95","className":"elementor elementor-95 elementor-59","children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{}],[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$5"}}],["$","section",null,{"className":"wfg-section","id":"wings-features","children":"$L6"}]],"$L7","$L8","$L9","$La","$Lb","$Lc"]}]}]}]}],["$Ld","$Le","$Lf"],"$L10"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +6:["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"wfg-inner","children":[["$","$L11",null,{"delay":0.05,"duration":0.75,"yOffset":25,"className":"wfg-header","children":[["$","div",null,{"className":"wfg-eyebrow","children":"/ Why Businesses Choose Doormile Wings /"}],["$","h2",null,{"className":"wfg-title","children":"Built to be depended on"}]]}],["$","$L12",null,{"stagger":0.1,"duration":0.7,"yOffset":30,"className":"wfg-grid","children":[["$","div","AI Decision Engine",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M12 2a4 4 0 0 1 4 4v1a4 4 0 0 1-1.2 2.86A4 4 0 0 1 16 13v1a4 4 0 0 1-4 4 4 4 0 0 1-4-4v-1a4 4 0 0 1 1.2-3.14A4 4 0 0 1 8 7V6a4 4 0 0 1 4-4Z"}],["$","path",null,{"d":"M9 21h6M12 18v3"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"AI Decision Engine"}],["$","p",null,{"className":"wfg-card-desc","children":"MileTruth™ AI continuously forecasts demand and optimizes routing and load decisions in real time."}]]}],["$","div","Real-Time Visibility",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7Z"}],["$","circle",null,{"cx":"12","cy":"12","r":"3"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Real-Time Visibility"}],["$","p",null,{"className":"wfg-card-desc","children":"Live shipment tracking keeps shippers, ground teams, and customers updated at every stage."}]]}],["$","div","Faster Regional Reach",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"13 6 19 12 13 18"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Faster Regional Reach"}],["$","p",null,{"className":"wfg-card-desc","children":"A dedicated network linking major regional capitals, built for speed rather than passenger schedules."}]]}],["$","div","Reliable Scheduled Operations",{"className":"wfg-card","children":[["$","div",null,{"className":"wfg-icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"4","width":"18","height":"18","rx":"3"}],["$","line",null,{"x1":"16","y1":"2","x2":"16","y2":"6"}],["$","line",null,{"x1":"8","y1":"2","x2":"8","y2":"6"}],["$","line",null,{"x1":"3","y1":"10","x2":"21","y2":"10"}],["$","path",null,{"d":"M9 16l2 2 4-4"}]]}]}],["$","h3",null,{"className":"wfg-card-title","children":"Reliable Scheduled Operations"}],["$","p",null,{"className":"wfg-card-desc","children":"Dedicated freighter capacity with consistent schedules — not subject to passenger-belly bumping."}]]}]]}]]}]}] +13:Tfac, + .wind-section { + background: #fafafa; + padding: var(--space-section-lg, 80px) 0 20px 0; /* Reduced bottom padding to minimize gap */ + } + + .wind-header { + margin: 0 auto 48px auto; + max-width: 720px; + text-align: center; + } + + .wind-eyebrow { + font-size: 13px; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.45); + margin-bottom: 16px; + } + + .wind-title { + font-size: clamp(28px, 3.2vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0; + } + + .wind-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wind-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 20px; + } + + .wind-card { + position: relative; + min-width: 0; + aspect-ratio: 4 / 5; + border-radius: 20px; + overflow: hidden; + background: linear-gradient(150deg, #17171b 0%, #0b0b0d 100%); + isolation: isolate; + } + + .wind-card-wash { + position: absolute; + inset: 0; + background: linear-gradient(160deg, rgba(200, 16, 46, 0.35) 0%, rgba(200, 16, 46, 0) 60%); + opacity: 0.5; + transition: opacity 0.4s ease; + } + + .wind-card:hover .wind-card-wash { + opacity: 1; + } + + .wind-card-default { + position: absolute; + left: 24px; + right: 24px; + bottom: 24px; + transition: opacity 0.3s ease, transform 0.3s ease; + } + + .wind-card:hover .wind-card-default { + opacity: 0; + transform: translateY(8px); + pointer-events: none; + } + + .wind-card .wind-card-default-title { + font-size: 20px !important; + font-weight: 800 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0; + } + + .wind-card-hover { + position: absolute; + inset: 0; + padding: 26px 24px; + display: flex; + flex-direction: column; + justify-content: flex-end; + gap: 14px; + opacity: 0; + transform: translateY(10px); + transition: opacity 0.35s ease, transform 0.35s ease; + } + + .wind-card:hover .wind-card-hover { + opacity: 1; + transform: translateY(0); + } + + .wind-card .wind-card-hover-title { + font-size: 19px !important; + font-weight: 800 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0; + } + + .wind-card-label { + font-size: 10.5px; + font-weight: 800; + letter-spacing: 1.2px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.5); + margin: 0 0 4px 0; + } + + .wind-card-text { + font-size: 13px; + line-height: 1.5; + color: rgba(255, 255, 255, 0.85); + margin: 0; + } + + @media (max-width: 1024px) { + .wind-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + } + + @media (max-width: 600px) { + .wind-grid { grid-template-columns: 1fr; } + .wind-card { aspect-ratio: 3 / 4; } + /* var(--space-section-lg) floors at a fixed 52px on any phone + width; bottom is already trimmed to 20px, so only the top needs + a real mobile reduction to match the section rhythm near the + footer. */ + .wind-section { padding-top: 44px; } + } + 7:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$13"}}],"$L14"] +8:["$","$L15",null,{}] +9:["$","div",null,{"id":"wings-fleet","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @media (max-width: 767px) {\n #wings-fleet .evnd-gap-bottom { margin-bottom: 14px !important; }\n }\n "}}],["$","$L16",null,{"bannerImage":"/images/pahse1.png","cardTitle":"Quick Logistics","cardSubtitle":"Same-Day Air Network","eyebrow":"/ Fleet Strategy /","titleLead":"Purpose-Built for ","titleAccent":"Regional Speed","features":[{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M22 12h-6l-4-9-2 1 3 8H5l-2-3-1.5.6L3 14l1.5 4.4L6 18l-2-3h8l3 8 2-1-3-8h6z"}]}],"title":"Dedicated Freighter Capacity","desc":"Purpose-built cargo lift, not passenger-belly space competing with baggage."},{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"6","cy":"6","r":"2.5"}],["$","circle",null,{"cx":"18","cy":"6","r":"2.5"}],["$","circle",null,{"cx":"12","cy":"18","r":"2.5"}],["$","path",null,{"d":"M8.2 7.2 10 16M15.8 7.2 14 16M8.5 6h7"}]]}],"title":"Regional Route Design","desc":"Turboprop range and speed matched to India's major regional-capital corridors."},{"icon":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M3 3v18h18"}],["$","path",null,{"d":"M7 14l4-4 3 3 6-7"}]]}],"title":"Scaling to 25 Aircraft","desc":"Phase 2 vision: pan-India connectivity hubs and international regional routes."}],"metrics":[{"value":8.2,"decimals":1,"suffix":"t","label":"ATR72 Payload"},{"value":1600,"suffix":"km","label":"ATR72 Range"},{"value":8.6,"decimals":1,"suffix":"t","label":"Q400 Payload"},{"value":667,"suffix":"km/h","label":"Q400 Speed"}],"cardsHeading":"FLEET SPECIFICATIONS","cardsTheme":{"accent":"#c8102e","accent2":"#ff6a3d","glow":"rgba(200,16,46,0.22)"},"gapTop":true,"gapBottom":true,"badges":[{"value":"3","label":"Phase 1 Aircraft"},{"value":"25","label":"Phase 2 Vision"}],"mediaSlot":["$","video",null,{"autoPlay":true,"loop":true,"muted":true,"playsInline":true,"style":{"width":"100%","height":"100%","minHeight":420,"objectFit":"cover","display":"block","background":"#17171b"},"children":["$","source",null,{"src":"/videos/fleet.mp4","type":"video/mp4"}]}],"ariaLabel":"Doormile Wings fleet strategy"}]]}] +a:["$","section",null,{"className":"WingsInfrastructure-module__akH2-q__section","id":"wings-infrastructure","children":["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__sectionShell","children":[["$","$L11",null,{"delay":0.05,"duration":0.7,"yOffset":20,"className":"WingsInfrastructure-module__akH2-q__header","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__eyebrow","children":"/ Infrastructure /"}],["$","h2",null,{"className":"WingsInfrastructure-module__akH2-q__title","children":"A network built to move, not to sit idle"}]]}],["$","$L12",null,{"stagger":0.08,"duration":0.6,"yOffset":20,"className":"WingsInfrastructure-module__akH2-q__grid","children":[["$","div","Airport Cargo Hubs",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Airport Cargo Hubs"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Near-airport clearance hubs instead of standalone warehouses — closer to the tarmac, faster to the aircraft."}]]}],["$","div","Cross-Docking",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M3 7h7l2 3h9M3 7v10h18V10"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Cross-Docking"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Screening, grouping, and consolidation happen in one motion, minimizing dwell time between arrival and departure."}]]}],["$","div","Asset-Light Network",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"3","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"14","y":"3","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"3","y":"14","width":"7","height":"7","rx":"1"}],["$","rect",null,{"x":"14","y":"14","width":"7","height":"7","rx":"1"}]]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Asset-Light Network"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Leased terminal space that flexes with demand, keeping the network nimble as new routes come online."}]]}],["$","div","Scalable Operations",{"className":"WingsInfrastructure-module__akH2-q__card","children":[["$","div",null,{"className":"WingsInfrastructure-module__akH2-q__icon","aria-hidden":"true","children":["$","svg",null,{"width":"24","height":"24","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M3 21V9l6-4 6 4v12M9 21V13h6v8"}]}]}],["$","h3",null,{"className":"WingsInfrastructure-module__akH2-q__cardTitle","children":"Scalable Operations"}],["$","p",null,{"className":"WingsInfrastructure-module__akH2-q__cardDesc","children":"Modular ground infrastructure built to expand city by city without slowing down day-to-day operations."}]]}]]}]]}]}] +b:["$","$L17",null,{}] +c:["$","$L18",null,{}] +d:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/144so~-zgdm9_.css","precedence":"next"}] +e:["$","script","script-0",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true}] +f:["$","script","script-1",{"src":"/_next/static/chunks/06~35roaehny..js","async":true}] +10:["$","$L19",null,{"children":["$","$1a",null,{"name":"Next.MetadataOutlet","children":"$@1b"}]}] +14:["$","section",null,{"className":"wind-section","id":"wings-industries","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"wind-inner","children":[["$","$L11",null,{"delay":0.05,"duration":0.75,"yOffset":25,"className":"wind-header","children":[["$","div",null,{"className":"wind-eyebrow","children":"/ Industries We Serve /"}],["$","h2",null,{"className":"wind-title","children":"Built for the shipments that can’t wait"}]]}],["$","$L11",null,{"delay":0.1,"duration":0.8,"yOffset":30,"className":"wind-grid","children":[["$","div","Quick Commerce",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 1.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Quick Commerce"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Quick Commerce"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Sub-3-hour delivery windows for dark stores and micro-warehouses."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Dedicated same-day air capacity linking metros to fulfillment hubs."}]]}]]}]]}],["$","div","Express B2B Cargo",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 2.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Express B2B Cargo"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Express B2B Cargo"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Time-critical industrial parts and components stuck on slow trunk routes."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Rapid airport-to-airport transport between major economic nodes."}]]}]]}]]}],["$","div","Healthcare & Pharma",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card 3.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Healthcare & Pharma"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Healthcare & Pharma"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Temperature-sensitive, compliance-critical shipments with zero margin for error."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Active and passive cold-chain packaging with full chain-of-custody tracking."}]]}]]}]]}],["$","div","Cold Chain Logistics",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card4.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"Cold Chain Logistics"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"Cold Chain Logistics"}],"$L1c","$L1d"]}]]}],"$L1e","$L1f"]}]]}]}]}] +1b:null +1c:["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Perishables and fresh goods that can't survive slow surface transit."}]]}] +1d:["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Precision temperature tracking matched to airline-speed transit."}]]}] +1e:["$","div","High-Value Cargo",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card5.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"High-Value Cargo"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"High-Value Cargo"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Zero tolerance for loss, tampering, or delay on high-value shipments."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Maximum-security handling with real-time electronic custody tracking."}]]}]]}]]}] +1f:["$","div","E-Commerce Logistics",{"className":"wind-card","style":{"backgroundImage":"linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.8)), url('/images/card6.png')","backgroundSize":"cover","backgroundPosition":"center"},"children":[["$","div",null,{"className":"wind-card-wash","aria-hidden":"true"}],["$","div",null,{"className":"wind-card-default","children":["$","h3",null,{"className":"wind-card-default-title","children":"E-Commerce Logistics"}]}],["$","div",null,{"className":"wind-card-hover","children":[["$","h3",null,{"className":"wind-card-hover-title","children":"E-Commerce Logistics"}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Challenge"}],["$","p",null,{"className":"wind-card-text","children":"Next-day and same-day fulfillment expectations across tier-1 and tier-2 cities."}]]}],["$","div",null,{"children":[["$","p",null,{"className":"wind-card-label","children":"Doormile Wings"}],["$","p",null,{"className":"wind-card-text","children":"Direct sorting-hub-to-airport clearance network for faster regional delivery."}]]}]]}]]}] diff --git a/build/.next/server/app/doormile-wings/page.js b/build/.next/server/app/doormile-wings/page.js new file mode 100644 index 0000000..cd52754 --- /dev/null +++ b/build/.next/server/app/doormile-wings/page.js @@ -0,0 +1,16 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/doormile-wings/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0~7vw31._.js") +R.c("server/chunks/ssr/src_0n990ke._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dl9rr-.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_doormile-wings_page_actions_0t3ppuv.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(95404) +module.exports=R.m(95404).exports diff --git a/build/.next/server/app/doormile-wings/page.js.map b/build/.next/server/app/doormile-wings/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/doormile-wings/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/doormile-wings/page.js.nft.json b/build/.next/server/app/doormile-wings/page.js.nft.json new file mode 100644 index 0000000..e414416 --- /dev/null +++ b/build/.next/server/app/doormile-wings/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[root-of-the-server]__0~7vw31._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_next-internal_server_app_doormile-wings_page_actions_0t3ppuv.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dl9rr-.js","../../chunks/ssr/src_0n990ke._.js","../../chunks/ssr/src_components_sections_0b6smpj._.js","../../chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","../../chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/doormile-wings/page/app-paths-manifest.json b/build/.next/server/app/doormile-wings/page/app-paths-manifest.json new file mode 100644 index 0000000..c500f73 --- /dev/null +++ b/build/.next/server/app/doormile-wings/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/doormile-wings/page": "app/doormile-wings/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/doormile-wings/page/build-manifest.json b/build/.next/server/app/doormile-wings/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/doormile-wings/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/doormile-wings/page/next-font-manifest.json b/build/.next/server/app/doormile-wings/page/next-font-manifest.json new file mode 100644 index 0000000..657f509 --- /dev/null +++ b/build/.next/server/app/doormile-wings/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/doormile-wings/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/doormile-wings/page/react-loadable-manifest.json b/build/.next/server/app/doormile-wings/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/doormile-wings/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/doormile-wings/page/server-reference-manifest.json b/build/.next/server/app/doormile-wings/page/server-reference-manifest.json new file mode 100644 index 0000000..289ce7c --- /dev/null +++ b/build/.next/server/app/doormile-wings/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/doormile-wings/page": { + "moduleId": 64668, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/doormile-wings/page_client-reference-manifest.js b/build/.next/server/app/doormile-wings/page_client-reference-manifest.js new file mode 100644 index 0000000..6917662 --- /dev/null +++ b/build/.next/server/app/doormile-wings/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/doormile-wings/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/sections/WingsHero.tsx ":{"id":36202,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsHero.tsx":{"id":36202,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsWhyGrid.tsx ":{"id":63061,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsWhyGrid.tsx":{"id":63061,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsSpeedAdvantage.tsx ":{"id":10425,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsSpeedAdvantage.tsx":{"id":10425,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/animations/Reveal.tsx ":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/animations/Reveal.tsx":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsHowItWorks.tsx ":{"id":48920,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsHowItWorks.tsx":{"id":48920,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/EVSection.tsx ":{"id":14224,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/EVSection.tsx":{"id":14224,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsMileTruth.tsx ":{"id":55064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsMileTruth.tsx":{"id":55064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsRoadmap.tsx ":{"id":13378,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false},"[project]/src/components/sections/WingsRoadmap.tsx":{"id":13378,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/06~35roaehny..js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"36202":{"*":{"id":77520,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_0b6smpj._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js"],"async":false}},"63061":{"*":{"id":94775,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_0b6smpj._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js"],"async":false}},"10425":{"*":{"id":84920,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_0b6smpj._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js"],"async":false}},"2018":{"*":{"id":36002,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_0b6smpj._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js"],"async":false}},"48920":{"*":{"id":30534,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_0b6smpj._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js"],"async":false}},"14224":{"*":{"id":61358,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_0b6smpj._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js"],"async":false}},"55064":{"*":{"id":36045,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_0b6smpj._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js"],"async":false}},"13378":{"*":{"id":87756,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_0b6smpj._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"36202":{"*":{"id":34035,"name":"*","chunks":[],"async":false}},"63061":{"*":{"id":32900,"name":"*","chunks":[],"async":false}},"10425":{"*":{"id":25179,"name":"*","chunks":[],"async":false}},"2018":{"*":{"id":9386,"name":"*","chunks":[],"async":false}},"48920":{"*":{"id":14493,"name":"*","chunks":[],"async":false}},"14224":{"*":{"id":59005,"name":"*","chunks":[],"async":false}},"55064":{"*":{"id":71806,"name":"*","chunks":[],"async":false}},"13378":{"*":{"id":36480,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/doormile-wings/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false},{"path":"static/chunks/144so~-zgdm9_.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/doormile-wings/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/0vi1igu-zxb_c.js","static/chunks/06~35roaehny..js"]}}; + diff --git a/build/.next/server/app/empowerment.html b/build/.next/server/app/empowerment.html new file mode 100644 index 0000000..61487f9 --- /dev/null +++ b/build/.next/server/app/empowerment.html @@ -0,0 +1,2807 @@ +Doormile Wings — Women Entrepreneurship Initiative

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Building Women
Entrepreneurs.

Empowering ambitious women with the network, strategic partnerships, and opportunities to build, grow, and lead successful enterprises that shape the future of logistics.

/ Our Vision /


Women Own The Future.

A logistics ecosystem where women don’t just participate — they own, build, and lead.

The vision

We are building an entrepreneurial ecosystem where women launch enterprises, scale operations, and shape the future of logistics from the inside.

Why it matters

Industries transform when founders emerge from every corner. Women-led enterprises bring fresh perspective, operational resilience, and long-term economic impact to logistics.

How Wings contributes

Wings provides the infrastructure — strategic partnerships, funding access, founder networks, and industry connections — that turns ambition into enterprise.

/ Our Approach /

Not a program on a brochure. An ecosystem women can build in.

Manifesto

A venture that starts with conviction. A network that turns it into momentum.

Wings is designed around the moments that define a founder: the first partnership signed, the first client won, the first team hired, the first enterprise scaled.

01

Women Entrepreneurship

An ecosystem where women build, own, and scale enterprises across logistics.

/ Women Empowerment /

Women Building The Next Mile

Women Map
0+
Women Founders
0+
Cities Active
0+
Enterprises Launched
Venture Building

End-to-end support for women launching logistics enterprises — from ideation to market entry.

Entrepreneurship

Women building, owning, and scaling sustainable businesses within the logistics ecosystem.

Founder Networks

Peer communities and strategic connections that accelerate growth and open new markets.

Enterprise Leadership

Strategic decision-making, operational excellence, and vision-driven leadership for women founders.

/ Entrepreneurship Pillars /

Every pillar is built around ownership.

02
Connect and grow

Strategic Partnerships

Direct access to supply chain networks, B2B relationships, industry alliances, and commercial agreements that accelerate growth.

03
Learn from builders

Founder Mentorship

One-on-one guidance from established entrepreneurs, operators, and investors who understand what it takes to scale.

04
Scale with confidence

Growth & Scale

Operational expansion frameworks, team building, funding readiness, and sustainable unit economics for ventures ready to grow.

05
See the opportunity

Industry Immersion

Real exposure to logistics operations, supply chain infrastructure, and distribution networks before founders commit to a vertical.

/ Our Impact /

Growth we can measure


0+Women-Led Enterprises In The Ecosystem

0+Enterprises Launched
0+Industry Partners
0+Cities Active
MillionsIn Economic Value Created

Every number on this page represents a woman who walked into a room with an idea and walked out with a business. An enterprise launched, a partnership secured, a market entered — each is a marker of real economic impact, not a statistic collected for its own sake.

/ The Founder Journey /

A clear path, from idea to enterprise

01

Apply

Submit your venture idea and tell us about your entrepreneurial vision.

02

Discovery

Identify the right market opportunity and validate your business model.

03

Build

Develop your enterprise with ecosystem support, mentorship, and partnerships.

04

Launch

Go to market with strategic backing, industry connections, and operational infrastructure.

05

Scale

Grow your team, expand operations, and lead your enterprise to sustainable impact.

/ Women in Motion /

Small steps. Lasting careers.

A Wings program participant on the operations floor at a Doormile logistics hub
Wings Participant building a career, one milestone at a time.

I came in looking for a way forward. I found the confidence to lead.

She started with limited exposure to logistics. Through structured training, mentorship, and hands-on experience, she built real operational skills — and now supports other women stepping into the industry.

/ Collaboration /

Partnership is how ecosystems grow.

The strongest ecosystems are built by many hands.

Wings partners bring industry access, strategic infrastructure, capital, and networks. Together, we build the foundation women-led enterprises need to thrive.

01

Industry Partners

Strategic alliances with logistics operators, supply chain leaders, and distribution networks that open doors for women-led enterprises.

02

Technology Partners

Platforms, tools, and infrastructure that give founders the operational edge to compete and scale efficiently.

03

Community Networks

Founder communities, women's business networks, and ecosystem builders who extend reach and amplify impact.

04

Investment Partners

Funding access, grant programs, angel networks, and capital partners aligned with women-led enterprise growth.

500+Women Founders
100+Enterprises Launched
25+Industry Partners
/ Build the next mile /

Build what’s next.

Join Doormile Wings in building the entrepreneurial ecosystem where women launch, grow, and lead enterprises that create lasting value across logistics.

\ No newline at end of file diff --git a/build/.next/server/app/empowerment.meta b/build/.next/server/app/empowerment.meta new file mode 100644 index 0000000..a2f8fe5 --- /dev/null +++ b/build/.next/server/app/empowerment.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/empowerment/layout,_N_T_/empowerment/page,_N_T_/empowerment" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/empowerment/__PAGE__", + "/empowerment", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/empowerment.rsc b/build/.next/server/app/empowerment.rsc new file mode 100644 index 0000000..5e80f76 --- /dev/null +++ b/build/.next/server/app/empowerment.rsc @@ -0,0 +1,2194 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +1b:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +c:Tf99, + .eh-outer { + box-sizing: border-box; + padding: 20px; + } + + .eh-section { + position: relative; + border-radius: 25px; + overflow: hidden; + box-sizing: border-box; + height: 800px; + display: flex; + align-items: center; + justify-content: center; + background: #07080c; + } + + .eh-bg { + position: absolute; + inset: 0; + background-image: url("/images/women-hero-slider-2.png"); + background-size: cover; + background-position: 30% 72%; + z-index: 0; + } + + .eh-scrim { + position: absolute; + inset: 0; + background: + linear-gradient(180deg, rgba(7, 8, 12, 0.72) 0%, rgba(7, 8, 12, 0.5) 40%, rgba(7, 8, 12, 0.86) 100%); + z-index: 1; + } + + .eh-inner { + position: relative; + z-index: 2; + width: 100%; + max-width: 1000px; + margin: 0 auto; + padding: 0 15px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + box-sizing: border-box; + } + + .eh-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.6px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 20px; + } + + .eh-title { + width: 100%; + font-size: clamp(30px, 5.5vw, 80px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.08 !important; + text-transform: uppercase !important; + color: #ffffff !important; + margin: 0; + word-wrap: break-word; + overflow-wrap: break-word; + } + + .eh-title .eh-soft { + color: rgba(255, 255, 255, 0.72); + } + + .eh-desc { + width: 100%; + max-width: 680px; + margin: 23px auto 0; + font-size: clamp(16px, 1.35vw, 23px); + line-height: 1.65; + color: rgba(255, 255, 255, 0.78); + } + + .eh-btns { + display: flex; + align-items: center; + justify-content: center; + gap: 14px; + flex-wrap: wrap; + margin-top: 32px; + } + + .eh-btn-primary, + .eh-btn-outline { + display: inline-flex; + align-items: center; + gap: 10px; + padding: 15px 28px; + border-radius: 100px; + font-weight: 800; + font-size: 14px; + text-decoration: none; + transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, background-color 0.3s ease, border-color 0.3s ease; + } + + .eh-btn-primary { + background: #c01227; + color: #ffffff !important; + border: 1.5px solid #c01227; + } + + .eh-btn-primary:hover { + transform: translateY(-3px); + box-shadow: 0 14px 30px rgba(192, 18, 39, 0.4); + } + + .eh-btn-outline { + background: rgba(255, 255, 255, 0.04); + color: #ffffff !important; + border: 1.5px solid rgba(255, 255, 255, 0.36); + } + + .eh-btn-outline:hover { + border-color: rgba(255, 255, 255, 0.82); + background: rgba(255, 255, 255, 0.09); + transform: translateY(-3px); + } + + @media (max-width: 1020px) { + .eh-outer { padding: 10px; } + } + + @media (max-width: 840px) { + .eh-section { height: 600px; } + } + + @media (max-width: 660px) { + .eh-title { + font-size: clamp(20px, 7vw, 32px) !important; + } + } + + @media (max-width: 480px) { + .eh-section { height: 520px; } + .eh-btn-primary, .eh-btn-outline { width: 100%; justify-content: center; padding: 14px 22px; } + .eh-btns { width: 100%; } + } + 0:{"P":null,"c":["","empowerment"],"q":"","i":false,"f":[[["",{"children":["empowerment",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"empowerment","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"86","className":"elementor elementor-86 elementor-59 elementor-empowerment","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$c"}}],"$Ld"],"$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16"]}]}]}]}],["$L17"],"$L18"]}],{},null,false,null]},null,false,"$@19"]},null,false,null],"$L1a",false]],"m":"$undefined","G":["$1b",["$L1c"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1d:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"ScrollReveal"] +1e:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"ShimmerText"] +31:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +32:"$Sreact.suspense" +35:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +37:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +d:["$","div",null,{"className":"eh-outer","children":["$","section",null,{"className":"eh-section","id":"wings-empowerment-hero","children":[["$","div",null,{"className":"eh-bg","aria-hidden":"true"}],["$","div",null,{"className":"eh-scrim","aria-hidden":"true"}],["$","$L1d",null,{"delay":0.05,"duration":0.85,"yOffset":30,"className":"eh-inner","children":[["$","h1",null,{"className":"eh-title","children":["Building ",["$","span",null,{"className":"eh-soft","children":"Women"}],["$","br",null,{}],["$","$L1e",null,{"children":"Entrepreneurs."}]]}],["$","p",null,{"className":"eh-desc","children":"Empowering ambitious women with the network, strategic partnerships, and opportunities to build, grow, and lead successful enterprises that shape the future of logistics."}]]}]]}]}] +1f:Te8f, + .ev-section { + position: relative; + background: #ffffff; + padding: clamp(96px, 11vw, 150px) 0; + overflow: hidden; + } + + .ev-map { + position: absolute; + inset: 0; + z-index: 0; + opacity: 0.4; + pointer-events: none; + } + + .ev-inner { + position: relative; + z-index: 1; + max-width: 1380px; + min-width: 0; + margin: 0 auto; + } + + .ev-eyebrow { + margin: 0 0 18px 0; + font-size: 14px; + font-weight: 500; + letter-spacing: 1.5px; + color: rgba(17, 17, 17, 0.6); + } + + .ev-divider { + width: 100%; + height: 1px; + margin: 0 0 clamp(64px, 7.8vw, 92px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.16); + } + + .ev-title { + margin: 0 0 clamp(92px, 11.5vw, 156px) 0 !important; + max-width: 1320px; + display: block; + font-weight: 800 !important; + font-style: normal !important; + letter-spacing: -0.018em !important; + word-spacing: 0.02em; + line-height: 1.04em !important; + text-transform: none !important; + color: #ffffff !important; + -webkit-text-stroke: 2px #c01227; + paint-order: stroke fill; + font-size: clamp(48px, 8.5vw, 128px) !important; + white-space: normal; + overflow-wrap: normal; + text-wrap: balance; + } + + @media (max-width: 1280px) { + .ev-title { + font-size: 118px !important; + } + } + + @media (max-width: 1020px) { + .ev-title { + font-size: 96px !important; + } + } + + @media (max-width: 767px) { + .ev-title { + font-size: 72px !important; + } + } + + .ev-columns { + display: grid; + grid-template-columns: minmax(0, 0.6fr) minmax(0, 1fr); + gap: clamp(60px, 8vw, 122px); + align-items: start; + } + + .ev-columns > * { + min-width: 0; + } + + .ev-statement { + margin: 0; + font-size: clamp(28px, 3vw, 52px); + font-weight: 600; + line-height: 1.2; + letter-spacing: -0.03em; + color: #111111; + overflow-wrap: break-word; + } + + .ev-support { + display: grid; + gap: clamp(34px, 3.8vw, 52px); + min-width: 0; + } + + .ev-block { + display: grid; + gap: 12px; + } + + .ev-block-label { + margin: 0; + font-size: 12px; + font-weight: 700; + letter-spacing: 1.4px; + line-height: 1; + text-transform: uppercase; + color: rgba(192, 18, 39, 0.86); + } + + .ev-lead, + .ev-note { + font-size: clamp(17px, 1.3vw, 20px); + line-height: 1.6; + color: #333333; + margin: 0; + overflow-wrap: break-word; + } + + .ev-lead { + font-weight: 700; + } + + .ev-note { + font-weight: 400; + } + + @media (max-width: 900px) { + .ev-columns { + grid-template-columns: 1fr; + } + } + + @media (max-width: 600px) { + .ev-section { padding-top: 64px; padding-bottom: 64px; } + .ev-title { + max-width: calc(100vw - (var(--dm-mobile-gutter, 10px) * 2)); + font-size: 56px !important; + letter-spacing: -0.025em !important; + line-height: 1.02em !important; + -webkit-text-stroke-width: 1.5px; + } + } + e:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$1f"}}],"$L20"] +21:T1091, + .esy-section { + position: relative; + width: calc(100% - 40px); + margin: 0 auto clamp(24px, 4vw, 40px); + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + min-height: clamp(500px, 50vw, 690px); + display: flex; + align-items: stretch; + background: #09090b; + } + + .esy-bg { + position: absolute; + inset: 0; + background-image: + linear-gradient(100deg, rgba(9, 9, 11, 0.96) 0%, rgba(9, 9, 11, 0.84) 43%, rgba(192, 18, 39, 0.28) 100%), + url("/images/wings-heroslider4.png"); + background-size: cover; + background-position: center; + z-index: 0; + } + + .esy-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + width: 100%; + padding-top: clamp(60px, 7vw, 98px); + padding-bottom: clamp(60px, 7vw, 98px); + display: grid; + grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.52fr); + gap: clamp(36px, 6vw, 96px); + align-items: end; + } + + .esy-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 24px; + } + + .esy-statement { + max-width: 920px; + font-size: clamp(38px, 5.7vw, 86px); + font-weight: 800; + letter-spacing: -0.055em; + line-height: 0.98; + text-transform: uppercase; + color: #ffffff; + margin: 0; + } + + .esy-statement em { + color: #ff5470; + font-style: normal; + } + + .esy-side { + border-left: 1px solid rgba(255, 255, 255, 0.18); + padding-left: clamp(24px, 3vw, 42px); + } + + .esy-label { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.8px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.45); + margin-bottom: 18px; + } + + .esy-pull { + font-size: clamp(22px, 2.3vw, 34px); + font-weight: 800; + line-height: 1.16; + letter-spacing: -0.03em; + color: #ffffff; + margin: 0 0 22px 0; + } + + .esy-sub { + font-size: 15.5px; + line-height: 1.65; + color: rgba(255, 255, 255, 0.64); + margin: 0; + } + + /* ---- Desktop-only inner spacing compaction ---- + .esy-section never set its own padding, so it was silently + inheriting 96px top/bottom from the global bare-tag "section" + padding rule (6rem 0) in site.css — stacking with .esy-inner's + own clamp(60-98px) padding into a huge, unbalanced inset. Cancel + that leak here. Also tighten .esy-inner's own padding and widen its + max-width (so a fixed padding, not a narrow centered column, + controls the left/right inset at every desktop width) — and bring + min-height down to match the now-tighter natural content height, + since the old 690px floor was itself forcing extra empty space + once the padding was reduced. Scoped to desktop only; tablet/ + mobile keep their original spacing untouched below. */ + @media (min-width: 1025px) { + .esy-section { + padding: 0; + min-height: clamp(420px, 38vw, 500px); + } + .esy-inner { + max-width: 1900px; + padding-top: 64px; + padding-bottom: 56px; + padding-left: 64px; + padding-right: 64px; + } + } + + @media (max-width: 1024px) { + .esy-section { width: calc(100% - 24px); border-radius: 22px; } + .esy-inner { grid-template-columns: 1fr; align-items: start; } + .esy-side { max-width: 640px; } + } + + @media (max-width: 640px) { + .esy-section { min-height: 560px; } + .esy-side { border-left: none; padding-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.18); padding-top: 24px; } + } + f:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$21"}}],"$L22"] +23:T3756, + /* ============================================================ + Success Stories — redesigned right column (stats + 2x2 cards) + Dark section · red accent #dc2626 / #ef4444 · Manrope + ============================================================ */ + /* Neutralise the right column's asymmetric 140px left padding so the + box group can be centered instead of pushed to one side. */ + .elementor-element.elementor-element-b2c956f { padding: 0 !important; } + + /* Vertically center the two columns so the right content lines up with + the image instead of needing a big top gap; tighten row gap. */ + .elementor-element.elementor-element-2ed47f3 { align-items: center !important; } + + /* Animated map background behind the Success Stories content */ + .elementor-element.elementor-element-b6e14bd { position: relative; overflow: hidden; } + .elementor-element.elementor-element-b6e14bd > .e-con-inner { position: relative; z-index: 1; } + .ws-map { position: absolute; inset: 0; z-index: 0; opacity: 0.5; pointer-events: none; } + .ws-map canvas { display: block; } + + #ws-stories { + display: flex; + flex-direction: column; + gap: 16px; + width: 100%; + max-width: 620px; + margin: 0 auto; /* center the 7 boxes as a group — no negative margins */ + } + + #ws-stories .ws__stats { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 12px; + } + #ws-stories .ws__stat { + background: rgba(255,255,255,0.04); + border: 1px solid rgba(255,255,255,0.08); + border-radius: 14px; + padding: 20px 16px; + transition: border-color 0.3s ease, background-color 0.3s ease; + } + #ws-stories .ws__stat:hover { border-color: rgba(220,38,38,0.28); background: rgba(220,38,38,0.05); } + #ws-stories .ws__stat-num { + color: #fff !important; + font-weight: 900; + font-size: clamp(28px, 3vw, 38px); + line-height: 1; + letter-spacing: -0.01em; + } + #ws-stories .ws__stat-num span { color: #dc2626 !important; } + #ws-stories .ws__stat-label { + margin-top: 9px; + color: rgba(255,255,255,0.7) !important; + font-size: 14px !important; + font-weight: 700; + letter-spacing: 0.03em; + text-transform: uppercase; + } + + #ws-stories .ws__cards { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px; + align-items: stretch; + } + #ws-stories .ws__card { + position: relative; + overflow: hidden; + display: flex; + flex-direction: column; + min-height: 168px; + background: rgba(255,255,255,0.035); + border: 1px solid rgba(255,255,255,0.08); + border-radius: 14px; + padding: 20px; + transition: transform 0.35s cubic-bezier(.25,1,.5,1), border-color 0.35s ease, background-color 0.35s ease, box-shadow 0.35s ease; + } + #ws-stories .ws__card::after { + content: ''; + position: absolute; + top: -45%; left: -25%; + width: 150px; height: 150px; + background: radial-gradient(circle, rgba(220,38,38,0.2), transparent 70%); + opacity: 0; + transition: opacity 0.35s ease; + pointer-events: none; + } + #ws-stories .ws__card:hover { + transform: translateY(-4px); + border-color: rgba(220,38,38,0.3); + background: rgba(220,38,38,0.05); + box-shadow: 0 18px 44px -20px rgba(0,0,0,0.7); + } + #ws-stories .ws__card:hover::after { opacity: 1; } + #ws-stories .ws__card-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 40px; height: 40px; + border-radius: 11px; + background: rgba(220,38,38,0.12); + border: 1px solid rgba(220,38,38,0.25); + color: #ef4444; + margin-bottom: 16px; + transition: background-color 0.3s ease, color 0.3s ease; + } + #ws-stories .ws__card:hover .ws__card-icon { background: #dc2626; color: #fff; } + #ws-stories .ws__card-icon svg { width: 21px; height: 21px; } + #ws-stories .ws__card-title { + color: #fff !important; + font-weight: 800; + font-size: 19px; + line-height: 1.2; + letter-spacing: 0; + margin-bottom: 9px; + } + #ws-stories .ws__card-desc { + max-width: 28ch; + color: rgba(255,255,255,0.66) !important; + font-size: 15px; + line-height: 1.52; + margin: 0; + font-weight: 500; + } + + /* ---- Floating card sizing: content-driven, not container-driven ---- + Matches the EV Logistics card height proportions exactly by trimming + red content padding and white footer min-height. */ + .elementor-element.elementor-element-3b61435 { + --padding-top: 46px; + --padding-bottom: 38px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 38px; + --padding-top: 14px; + --padding-bottom: 14px; + } + @media (max-width: 1020px) { + .elementor-element.elementor-element-3b61435 { + --padding-top: 34px; + --padding-bottom: 28px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 32px; + --padding-top: 12px; + --padding-bottom: 12px; + } + } + @media (max-width: 660px) { + .elementor-element.elementor-element-3b61435 { + --padding-top: 26px; + --padding-bottom: 22px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 24px; + --padding-top: 10px; + --padding-bottom: 10px; + } + } + + .elementor-element-778840d .logico-title { + white-space: nowrap !important; + } + + /* The banner image (bg-header-women.png) is very wide (≈2.48:1) and the + woman — the subject of this section — sits on the right. On narrow + screens "cover" center-crops her out, so shift the focal point right + to keep her face in frame. */ + @media (max-width: 1024px) { + .elementor-element.elementor-element-7da6646:not(.elementor-motion-effects-element-type-background) { + background-position: 78% center !important; + } + } + @media (max-width: 767px) { + .elementor-element.elementor-element-7da6646:not(.elementor-motion-effects-element-type-background) { + background-position: 82% 25% !important; + } + } + + /* Stack the two columns below the desktop breakpoint so the box group + always gets full width and stays centered — never clipped. */ + @media (max-width: 1024px) { + .elementor-element-778840d .logico-title { + white-space: normal !important; + } + .elementor-element.elementor-element-2ed47f3 { grid-template-columns: 1fr !important; } + #ws-stories { max-width: 640px; margin: 0 auto; } + /* Align the heading, image and stats/cards to one shared left/right + edge — the heading + image widgets carried extra inset that left + them staggered (80px / 70px / 60px) against the stats column. */ + #women-entrepreneurship .elementor-element-36efec7, + #women-entrepreneurship .elementor-element-b2c956f { + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element-778840d, + #women-entrepreneurship .elementor-element-bbfb67f, + #women-entrepreneurship .elementor-element-778840d > .elementor-widget-container, + #women-entrepreneurship .elementor-element-bbfb67f > .elementor-widget-container { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + } + + @media (max-width: 767px) { + #women-entrepreneurship { + width: calc(100% - 20px) !important; + margin-left: 10px !important; + margin-right: 10px !important; + border-radius: 22px !important; + padding-left: 0px !important; + padding-right: 0px !important; + } + #women-entrepreneurship .e-con-boxed > .e-con-inner { + padding-top: 32px !important; + padding-bottom: 32px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element-8b5d6e6, + #women-entrepreneurship .elementor-element-b6e14bd, + #women-entrepreneurship .elementor-element-90cc867, + #women-entrepreneurship .elementor-element-36efec7, + #women-entrepreneurship .elementor-element-b2c956f { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + #women-entrepreneurship .elementor-element-1f766ea { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element.elementor-element-2ed47f3 { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + margin-top: 0 !important; + padding-top: 0 !important; + gap: 24px !important; + } + #women-entrepreneurship .elementor-element-36efec7 { + margin-top: 0px !important; + padding-top: 0px !important; + gap: 0px !important; + } + #women-entrepreneurship .elementor-element-24c0280 { + margin-bottom: 0px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-778840d { + margin-top: 14px !important; + margin-bottom: 14px !important; + padding-top: 0px !important; + padding-bottom: 0px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-778840d h3.logico-title, + #women-entrepreneurship .elementor-element-778840d > .elementor-widget-container { + margin: 0px !important; + padding: 0px !important; + } + #women-entrepreneurship .elementor-element-7da6646 { + width: calc(100% - 28px) !important; + margin-left: 14px !important; + margin-right: 14px !important; + border-radius: 18px !important; + min-height: 240px !important; + margin-top: 15px !important; + margin-bottom: -50px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-8b5d6e6 { + padding-left: 14px !important; + padding-right: 14px !important; + margin-left: 0px !important; + margin-right: 0px !important; + width: 100% !important; + max-width: 100% !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-bbfb67f img { + width: 100% !important; + } + #women-entrepreneurship .elementor-element-bbfb67f { + margin-top: 0px !important; + margin-bottom: 16px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #ws-stories { + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + /* KPI stat cards stack one-per-row on mobile. Inside each card the big + number sits on the left and the label on the right, vertically + centered, so every stat reads as a clean full-width row instead of + three cramped columns. */ + #ws-stories .ws__stats { grid-template-columns: 1fr; gap: 12px; } + #ws-stories .ws__stat { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + padding: 16px 20px; + min-width: 0; + } + #ws-stories .ws__stat-num { font-size: clamp(30px, 9vw, 40px); } + #ws-stories .ws__stat-label { + margin-top: 0; + font-size: 13px !important; + letter-spacing: 0.02em; + text-align: right; + min-height: 0; + } + #ws-stories .ws__cards { grid-template-columns: 1fr; gap: 12px; } + } + 10:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$23"}}],"$L24"] +25:T2f8a, + .epr-section { + background: #ffffff; + padding-top: clamp(28px, 3.2vw, 48px); + padding-bottom: clamp(78px, 9vw, 132px); + overflow: visible; + } + + .epr-inner { + max-width: 1380px; + min-width: 0; + margin: 0 auto; + } + + .epr-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(54px, 7vw, 86px); + } + + .epr-head-reveal { + width: 100%; + } + + .epr-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .epr-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .epr-title { + max-width: 950px; + font-size: clamp(42px, 6.2vw, 88px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0; + } + + .epr-stage { + display: grid; + grid-template-columns: minmax(300px, 0.38fr) minmax(0, 0.62fr); + gap: clamp(32px, 5vw, 78px); + /* stretch (not start): .epr-aside-wrap must span the full row + height — the tall Programs column's implicit-row height — so it + defines the sticky travel distance. The visual box no longer + lives here, so stretching this item no longer distorts it. */ + align-items: stretch; + min-width: 0; + } + + .epr-stage > * { + min-width: 0; + } + + /* Responsibility split (desktop sticky architecture): + .epr-aside-wrap — plain grid item, stretched to the full + Programs-list row height. Defines travel + distance. No sizing responsibility of its + own beyond that. + .epr-aside-sticky — owns position: sticky. Its height is + explicitly clamped to the viewport + (100dvh minus header clearance and a + bottom safe-margin), so it can never grow + taller than what's actually visible — + the tall min-height that previously fought + the sticky top offset is gone entirely. + .epr-aside — the visual composition (ghost number, map, + heading, paragraph). Fills the sticky + frame's height and arranges its existing + content inside it; owns the decorative + bleed clipping (overflow: hidden). */ + .epr-aside-wrap { + min-width: 0; + } + + .epr-aside-sticky { + /* 132px clears the site header's fixed state (~122px tall once + scrolled) with a small margin; only grows on very tall + viewports. This is viewport-height-derived, NOT content-height + derived — unlike the old top formula, it never has to react to + how tall the aside's own content happens to be. */ + --epr-sticky-top: clamp(132px, 12dvh, 160px); + --epr-sticky-bottom-safe: 28px; + position: sticky; + top: var(--epr-sticky-top); + height: calc(100dvh - var(--epr-sticky-top) - var(--epr-sticky-bottom-safe)); + min-height: 0; + min-width: 0; + /* Lets the visual composition react to the frame's OWN resolved + height (container query below) rather than guessing from the + viewport or the write-up's vw-based type scale. */ + container-type: size; + container-name: epr-frame; + } + + .epr-aside { + --epr-aside-pad-t: clamp(18px, 3vw, 34px); + --epr-aside-pad-b: clamp(24px, 3.5vw, 42px); + position: relative; + height: 100%; + min-width: 0; + min-height: 0; + padding: var(--epr-aside-pad-t) 0 var(--epr-aside-pad-b); + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #111111; + } + + .epr-aside-map { + position: absolute; + inset: 8% -22% 8% -28%; + z-index: 0; + opacity: 0.22; + pointer-events: none; + } + + .epr-aside-map canvas { + display: block; + } + + .epr-aside-content { + position: relative; + z-index: 1; + display: grid; + gap: clamp(18px, 2.2vw, 28px); + } + + .epr-aside-num { + position: relative; + font-size: clamp(164px, 17vw, 300px); + font-weight: 900; + line-height: 0.78; + letter-spacing: -0.06em; + color: transparent; + -webkit-text-stroke: 2px rgba(200, 16, 46, 0.2); + } + + .epr-aside-copy { + position: relative; + max-width: 12ch; + font-size: clamp(30px, 3.6vw, 56px); + font-weight: 800; + line-height: 0.98; + letter-spacing: -0.055em; + text-transform: uppercase; + color: #111111; + margin: 0; + } + + .epr-aside-copy em { + font-style: normal; + color: #c8102e; + } + + .epr-aside-desc { + position: relative; + max-width: 34ch; + font-size: 15.5px; + line-height: 1.65; + color: rgba(17, 17, 17, 0.58); + margin: 0; + } + + /* Constrained-frame fallback: the sticky frame is short (short + desktop viewport height), so the decorative ghost number/map + shrink first — spacing second — while the heading and paragraph + stay full size and fully visible, per spec. Placed after the base + .epr-aside-num/-content/-map rules so it wins the cascade at + matching container sizes (equal selector specificity; source + order decides). */ + @container epr-frame (max-height: 660px) { + .epr-aside { padding-top: clamp(12px, 1.8vw, 22px); padding-bottom: clamp(16px, 2.2vw, 26px); } + .epr-aside-content { gap: clamp(12px, 1.6vw, 20px); } + .epr-aside-num { font-size: clamp(90px, 11vw, 180px); } + } + + @container epr-frame (max-height: 560px) { + .epr-aside { padding-top: clamp(8px, 1.2vw, 14px); padding-bottom: clamp(10px, 1.6vw, 18px); } + .epr-aside-content { gap: clamp(6px, 1vw, 12px); } + .epr-aside-num { font-size: clamp(48px, 7vw, 100px); } + .epr-aside-map { opacity: 0.14; } + } + + .epr-list { + display: grid; + gap: clamp(28px, 4vw, 52px); + } + + .epr-row { + display: grid; + grid-template-columns: 110px minmax(0, 1fr); + gap: clamp(22px, 4vw, 58px); + padding-bottom: clamp(28px, 4vw, 52px); + border-bottom: 1px solid rgba(17, 17, 17, 0.14); + } + + .epr-row:nth-child(even) { + margin-left: clamp(0px, 7vw, 96px); + } + + .epr-row-index { + font-size: clamp(38px, 4.2vw, 62px); + font-weight: 900; + line-height: 1; + letter-spacing: -0.05em; + color: #c8102e; + } + + .epr-row-featured { + padding: clamp(28px, 4vw, 44px) clamp(24px, 3vw, 40px); + background: #09090b; + border-radius: 22px; + border-bottom: none; + margin-bottom: clamp(28px, 4vw, 52px); + } + + .epr-row-featured .epr-row-index { + color: rgba(255, 255, 255, 0.22); + -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.5); + } + + .epr-row-featured .epr-row-title { + font-size: clamp(32px, 4vw, 64px) !important; + color: #ffffff !important; + } + + .epr-row-featured .epr-row-desc { + color: rgba(255, 255, 255, 0.62); + } + + .epr-row-flag { + display: inline-block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.3px; + text-transform: uppercase; + color: #ffffff; + background: #c8102e; + padding: 6px 14px; + border-radius: 100px; + margin-bottom: 16px; + } + + .epr-row-type { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.7px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + margin-bottom: 14px; + } + + .epr-row-featured .epr-row-type { + color: rgba(255, 255, 255, 0.42); + } + + .epr-row-title { + font-size: clamp(28px, 3.4vw, 52px) !important; + font-weight: 800 !important; + letter-spacing: -0.045em !important; + line-height: 1.02 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0 0 14px 0; + } + + .epr-row-desc { + max-width: 660px; + font-size: 15.5px; + line-height: 1.65; + color: rgba(17, 17, 17, 0.58); + margin: 0; + } + + .epr-cta { + margin-top: clamp(48px, 6vw, 72px); + } + + .epr-cta-link { + display: inline-flex; + align-items: center; + gap: 10px; + font-size: 15px; + font-weight: 800; + color: #111111 !important; + text-decoration: none !important; + border-bottom: 1.5px solid rgba(17, 17, 17, 0.2); + padding-bottom: 5px; + transition: border-color 0.3s ease, color 0.3s ease; + } + + .epr-cta-link:hover { + color: #c8102e !important; + border-color: #c8102e; + } + + /* Laptop: sticky stays enabled, just a narrower gutter. */ + @media (max-width: 1180px) { + .epr-stage { grid-template-columns: minmax(220px, 0.34fr) minmax(0, 0.66fr); gap: clamp(28px, 4vw, 46px); } + .epr-row:nth-child(even) { margin-left: 0; } + } + + /* Tablet: sticky disabled — the aside scrolls in normal flow instead + of pinning, since there's no longer enough vertical runway next to + the (now narrower, shorter) program list for pinning to read well. */ + @media (max-width: 1023px) { + .epr-aside-sticky { + position: relative; + top: auto; + height: auto; + container-type: normal; + } + } + + @media (max-width: 767px) { + .epr-stage { grid-template-columns: 1fr; } + .epr-aside { + position: relative; + top: auto; + min-height: 300px; + padding-top: 4px; + padding-bottom: clamp(24px, 7vw, 38px); + } + .epr-aside-map { + inset: -8% -18% 0 -20%; + opacity: 0.18; + } + .epr-aside-content { + gap: 20px; + } + .epr-aside-num { + font-size: clamp(128px, 34vw, 180px); + } + .epr-aside-copy { + max-width: 11ch; + font-size: clamp(34px, 10vw, 48px); + } + .epr-aside-desc { + max-width: 32ch; + font-size: 14.5px; + } + } + + @media (max-width: 640px) { + .epr-section { padding-top: 28px; padding-bottom: 54px; } + .epr-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .epr-row-title { + font-size: clamp(27px, 8.5vw, 36px) !important; + overflow-wrap: anywhere; + } + .epr-row { grid-template-columns: 1fr; gap: 12px; } + } + 11:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"] +27:Te98, + .eim-section { + position: relative; + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto; + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + background: #09090b; + padding: clamp(64px, 8vw, 100px) clamp(24px, 5vw, 48px); + } + + .eim-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + } + + .eim-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: #c8102e; + margin-bottom: 20px; + } + + .eim-title { + font-size: clamp(28px, 3.4vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0 0 clamp(32px, 4vw, 48px) 0; + } + + .eim-divider { + border: none; + border-top: 1px solid rgba(255, 255, 255, 0.12); + margin: 0 0 clamp(40px, 5vw, 56px) 0; + } + + .eim-hero-row { + display: flex; + align-items: flex-end; + gap: clamp(20px, 3vw, 36px); + margin-bottom: clamp(48px, 6vw, 72px); + } + + .eim-hero-num { + font-size: clamp(90px, 13vw, 190px); + font-weight: 800; + line-height: 0.85; + letter-spacing: -0.03em; + color: transparent; + -webkit-text-stroke: 2px #c8102e; + } + + .eim-hero-label { + font-size: 13px; + font-weight: 700; + letter-spacing: 1.5px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.55); + max-width: 90px; + line-height: 1.4; + padding-bottom: clamp(12px, 1.5vw, 24px); + } + + .eim-divider-2 { + border: none; + border-top: 1px solid rgba(255, 255, 255, 0.12); + margin: 0 0 clamp(40px, 5vw, 56px) 0; + } + + .eim-secondary-row { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .eim-secondary-item { + padding-right: 24px; + border-left: 1px solid rgba(255, 255, 255, 0.12); + padding-left: 24px; + } + + .eim-secondary-item:first-child { + border-left: none; + padding-left: 0; + } + + .eim-secondary-num { + display: block; + font-size: clamp(32px, 3vw, 44px); + font-weight: 800; + color: #ff5470; + letter-spacing: -0.02em; + margin-bottom: 10px; + } + + .eim-secondary-label { + font-size: 13px; + font-weight: 600; + color: rgba(255, 255, 255, 0.5); + line-height: 1.4; + } + + .eim-copy { + max-width: 720px; + margin-top: clamp(48px, 6vw, 72px); + font-size: 15.5px; + line-height: 1.7; + color: rgba(255, 255, 255, 0.55); + } + + @media (max-width: 1024px) { + .eim-section { width: calc(100% - 24px); border-radius: 22px; } + } + + @media (max-width: 700px) { + .eim-hero-row { align-items: flex-start; flex-direction: column; gap: 12px; } + .eim-hero-label { padding-bottom: 0; max-width: none; } + .eim-secondary-row { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; } + .eim-secondary-item:nth-child(3) { border-left: none; padding-left: 0; } + } + + @media (max-width: 460px) { + .eim-section { padding-top: 48px; padding-bottom: 48px; } + } + 12:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$27"}}],"$L28"] +29:T1f91, + .ehw-section { + background: #ffffff; + padding: var(--space-section-lg, 80px) 0 calc(var(--space-section-lg, 80px) + 32px) 0; + overflow: hidden; + } + + .ehw-inner { + max-width: 1380px; + margin: 0 auto; + } + + .ehw-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(126px, calc(7vw + 60px), 172px); + } + + .ehw-head-reveal { + width: 100%; + } + + .ehw-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .ehw-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .ehw-title { + max-width: 820px; + font-size: clamp(32px, 4vw, 54px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.08 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 !important; + } + + /* ---------------------------------------------------------------- + Premium editorial process row: five milestones in a single + sequence, separated by thin hairline dividers (no cards, no + shadows, no boxed containers). One flex-wrap sequence with + responsive flex-basis handles the composition at every size — + 5-across on desktop, 3 + 2 (centered) on tablet, a single + vertical column on mobile — from one shared markup. + ---------------------------------------------------------------- */ + .ehw-sequence { + display: flex; + flex-wrap: wrap; + justify-content: center; + --ehw-gap: clamp(24px, 2.6vw, 48px); + column-gap: var(--ehw-gap); + row-gap: clamp(48px, 6vw, 84px); + } + + .ehw-step { + position: relative; + flex: 0 1 calc((100% - 4 * var(--ehw-gap)) / 5); + min-width: 168px; + padding-left: clamp(20px, 2vw, 32px); + border-left: 1px solid rgba(17, 17, 17, 0.14); + transition: border-color 0.3s ease; + } + + .ehw-step:first-child { + border-left: none; + padding-left: 0; + } + + .ehw-step:hover { + border-left-color: rgba(200, 16, 46, 0.4); + } + + .ehw-step-num { + font-size: clamp(48px, 4.6vw, 78px); + font-weight: 900; + line-height: 0.84; + letter-spacing: -0.03em; + color: transparent; + -webkit-text-stroke: 1.5px rgba(17, 17, 17, 0.24); + margin: 0 0 18px 0; + transition: -webkit-text-stroke-color 0.3s ease; + } + + .ehw-step.is-accent .ehw-step-num { + -webkit-text-stroke: 1.5px rgba(200, 16, 46, 0.58); + } + + .ehw-step-kicker { + display: flex; + align-items: center; + gap: 7px; + margin-bottom: 18px; + } + + .ehw-step-kicker svg { + width: 13px; + height: 13px; + color: rgba(17, 17, 17, 0.36); + flex-shrink: 0; + } + + .ehw-step-kicker span { + font-size: 11px; + font-weight: 800; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.4); + } + + .ehw-step.is-accent .ehw-step-kicker svg, + .ehw-step.is-accent .ehw-step-kicker span { + color: #c8102e; + } + + .ehw-step-title { + font-size: clamp(18px, 1.4vw, 22px) !important; + font-weight: 800 !important; + letter-spacing: -0.02em !important; + line-height: 1.2 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 0 22px 0; + } + + .ehw-step-desc { + max-width: 27ch; + font-size: 14px; + line-height: 1.6; + color: rgba(17, 17, 17, 0.55); + margin: 0; + } + + /* Tablet: 3 + 2, centered — sever the divider at the start of each row. */ + @media (max-width: 1100px) { + .ehw-step { + flex-basis: calc((100% - 2 * var(--ehw-gap)) / 3); + } + .ehw-step:nth-child(4) { + border-left: none; + padding-left: 0; + } + } + + /* Mobile: compact numbered editorial index — number in a narrow + left column, title/description/divider sharing one right + content column, laid out on the existing milestone markup via + CSS Grid (no duplicated JSX, no new step markup). */ + @media (max-width: 640px) { + .ehw-head { + margin-bottom: clamp(40px, 10vw, 56px); + } + + .ehw-sequence { + row-gap: 0; + } + + .ehw-step { + display: grid; + grid-template-columns: 48px minmax(0, 1fr); + column-gap: 14px; + flex-basis: 100%; + padding-left: 0; + padding-top: clamp(28px, 8vw, 36px); + border-left: none; + border-top: none; + } + + .ehw-step:first-child { + padding-top: 0; + } + + /* Compact solid index number — replaces the oversized pale + outline treatment used on desktop/tablet. */ + .ehw-step-num { + grid-column: 1; + grid-row: 1; + align-self: start; + font-size: clamp(32px, 9vw, 40px); + line-height: 1; + color: #c8102e; + -webkit-text-stroke: 0; + margin: 0; + } + + /* Hidden completely — no reserved gap left in its place since a + display:none grid item takes no track space. */ + .ehw-step-kicker { + display: none; + } + + .ehw-step-title { + grid-column: 2; + grid-row: 1; + font-size: clamp(22px, 6vw, 26px) !important; + } + + .ehw-step-desc { + grid-column: 2; + grid-row: 2; + max-width: none; + font-size: 16px; + } + + /* Divider lives inside the description box (content column + only), so it never runs underneath the number column. */ + .ehw-step-desc::after { + content: ""; + display: block; + margin-top: clamp(24px, 6vw, 28px); + height: 1px; + background-color: rgba(17, 17, 17, 0.14); + } + + .ehw-step:last-child .ehw-step-desc::after { + display: none; + } + } + + /* ---- Mobile title-to-description gap fix ---- + .ehw-step-title is an

, so it's matched by a global, + unscoped site.css rule (.logico-front-end h3:not(...) { margin: + 0 0 30px }) that outranks this component's own single-class + ".ehw-step-title { margin: 0 0 22px }" by specificity — bumping + the real margin-bottom to 30px everywhere, not just here. There + is no min-height, space-between, or fixed row height anywhere in + this component; the gap is purely that extra 8px of margin + reading as oversized once every other element around it (kicker, + description line-height) is tightly spaced. Overridden with + !important, matching how every other property on this selector + already has to defeat the same global rule. Scoped to mobile + only, per spec — desktop/tablet are left exactly as they were + (still resolving to the global 30px; out of scope here). */ + @media (max-width: 767px) { + .ehw-step-title { + margin-bottom: 16px !important; + } + } + + @media (max-width: 480px) { + .ehw-section { padding-top: 48px; padding-bottom: 68px; } + } + 13:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$29"}}],"$L2a"] +2b:T1df1, + .est-section { + position: relative; + background: #ffffff; + padding-top: clamp(24px, 3vw, 48px); + padding-bottom: clamp(78px, 9vw, 132px); + overflow: hidden; + } + + .est-inner { + max-width: 1380px; + margin: 0 auto; + } + + .est-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(54px, 7vw, 86px); + } + + .est-head-reveal { + width: 100%; + } + + .est-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .est-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .est-title { + max-width: 940px; + font-size: clamp(42px, 6.3vw, 90px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0; + } + + .est-feature { + display: grid; + grid-template-columns: minmax(0, 0.94fr) minmax(340px, 0.64fr); + gap: clamp(28px, 4vw, 62px); + align-items: stretch; + margin-bottom: clamp(44px, 6vw, 76px); + } + + .est-photo { + position: relative; + min-height: clamp(460px, 48vw, 680px); + border-radius: 26px; + overflow: hidden; + background: #09090b; + } + + .est-photo img { + object-fit: cover; + object-position: center; + } + + .est-photo::after { + content: ""; + position: absolute; + inset: 0; + background: linear-gradient(180deg, rgba(9, 9, 11, 0) 34%, rgba(9, 9, 11, 0.72) 100%); + pointer-events: none; + } + + .est-photo-caption { + position: absolute; + left: clamp(24px, 3vw, 42px); + right: clamp(24px, 3vw, 42px); + bottom: clamp(24px, 3vw, 42px); + z-index: 1; + color: #ffffff; + } + + .est-photo-caption span { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.7px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.6); + margin-bottom: 8px; + } + + .est-photo-caption strong { + display: block; + font-size: clamp(24px, 3vw, 42px); + font-weight: 900; + line-height: 1.02; + letter-spacing: -0.04em; + } + + .est-copy { + border-radius: 26px; + background: #09090b; + color: #ffffff; + padding: clamp(34px, 5vw, 62px); + display: flex; + flex-direction: column; + justify-content: space-between; + overflow: hidden; + position: relative; + } + + .est-copy::before { + content: ""; + position: absolute; + width: 320px; + height: 320px; + right: -120px; + top: -120px; + background: radial-gradient(circle, rgba(200, 16, 46, 0.42), transparent 68%); + pointer-events: none; + } + + .est-quote-mark { + position: relative; + font-family: Georgia, serif; + font-size: 92px; + line-height: 0.8; + color: #c8102e; + display: block; + margin-bottom: 20px; + } + + .est-quote-text { + position: relative; + font-size: clamp(25px, 3vw, 44px); + font-weight: 800; + line-height: 1.12; + letter-spacing: -0.04em; + color: #ffffff; + margin: 0 0 28px 0; + } + + .est-narrative { + position: relative; + font-size: 15.5px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.66); + margin: 0; + max-width: 46ch; + } + + .est-person { + position: relative; + padding-top: clamp(38px, 5vw, 64px); + } + + .est-person-name { + font-size: 18px; + font-weight: 900; + color: #ffffff; + } + + .est-person-role { + font-size: 13.5px; + color: rgba(255, 255, 255, 0.52); + margin-top: 3px; + } + + .est-list-label { + font-size: 12px; + font-weight: 800; + letter-spacing: 1.8px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + padding-top: clamp(24px, 3vw, 38px); + border-top: 1px solid rgba(17, 17, 17, 0.14); + margin-bottom: clamp(20px, 3vw, 30px); + } + + .est-list { + display: flex; + gap: 18px; + overflow-x: auto; + scroll-snap-type: x mandatory; + padding-bottom: 12px; + margin-bottom: clamp(6px, 1vw, 10px); + -webkit-overflow-scrolling: touch; + } + + .est-list::-webkit-scrollbar { + height: 4px; + } + + .est-list::-webkit-scrollbar-thumb { + background: rgba(17, 17, 17, 0.18); + border-radius: 100px; + } + + .est-row { + scroll-snap-align: start; + flex: 0 0 clamp(260px, 30vw, 340px); + min-height: 220px; + padding: clamp(24px, 2.6vw, 32px); + border: 1px solid rgba(17, 17, 17, 0.14); + border-radius: 20px; + display: flex; + flex-direction: column; + justify-content: space-between; + transition: border-color 0.3s ease, transform 0.3s ease; + } + + .est-row:hover { + border-color: rgba(200, 16, 46, 0.4); + transform: translateY(-4px); + } + + .est-row-name { + font-size: 20px; + font-weight: 900; + color: #111111; + } + + .est-row-role { + font-size: 13px; + font-weight: 800; + letter-spacing: 1.4px; + text-transform: uppercase; + color: #c8102e; + margin-top: 6px; + } + + .est-row-line { + font-size: 15px; + line-height: 1.6; + color: rgba(17, 17, 17, 0.62); + margin: 28px 0 0; + } + + @media (max-width: 1000px) { + .est-head, + .est-feature { grid-template-columns: 1fr; } + .est-row { + min-height: 0; + flex-basis: 78vw; + } + } + + @media (max-width: 640px) { + .est-section { padding-top: 54px; padding-bottom: 6px; } + /* .est-feature's margin-bottom (clamp(44px, 6vw, 76px)) was sized + to precede an .est-list testimonial row block that no longer + exists in this component's JSX. Since .est-feature is now the + section's last child, that margin was pure dead space stacking + on top of .est-section's own padding-bottom above — the real + source of the oversized mobile gap before the next section. */ + .est-feature { margin-bottom: 0; } + .est-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .est-quote-text { + font-size: clamp(25px, 8vw, 34px); + overflow-wrap: anywhere; + } + .est-photo, + .est-copy { border-radius: 20px; } + .est-photo { min-height: 420px; } + } + 14:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2b"}}],"$L2c"] +2d:T16dc, + .epn-section { + position: relative; + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto; + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + background: #09090b; + padding: clamp(68px, 8vw, 112px) 0; + } + + .epn-section::before { + content: ""; + position: absolute; + inset: 0; + background: + linear-gradient(120deg, rgba(9, 9, 11, 0.98) 0%, rgba(9, 9, 11, 0.88) 54%, rgba(192, 18, 39, 0.18) 100%), + url("/images/wings-heroslider3.png"); + background-size: cover; + background-position: center 70%; + opacity: 1; + } + + .epn-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + } + + .epn-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(50px, 7vw, 84px); + } + + .epn-head-reveal { + width: 100%; + } + + .epn-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(255, 255, 255, 0.16); + } + + .epn-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.52); + } + + .epn-title { + max-width: 930px; + font-size: clamp(42px, 6.3vw, 90px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #ffffff !important; + margin: 0; + } + + .epn-title em { + color: #ff5470; + font-style: normal; + } + + .epn-body { + display: grid; + grid-template-columns: minmax(280px, 0.46fr) minmax(0, 1fr); + gap: clamp(32px, 5vw, 72px); + align-items: stretch; + } + + .epn-manifesto { + border-left: 4px solid #c8102e; + padding-left: clamp(22px, 3vw, 36px); + align-self: start; + } + + .epn-intro { + font-size: clamp(22px, 2.5vw, 36px); + font-weight: 800; + line-height: 1.12; + letter-spacing: -0.035em; + color: #ffffff; + margin: 0 0 22px; + } + + .epn-note { + font-size: 15.5px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.62); + margin: 0; + max-width: 38ch; + } + + .epn-grid { + display: flex; + flex-direction: column; + border-top: 1px solid rgba(255, 255, 255, 0.16); + } + + .epn-card { + position: relative; + display: grid; + grid-template-columns: 70px minmax(0, 1fr) 32px; + align-items: center; + gap: clamp(18px, 3vw, 40px); + padding: clamp(22px, 2.6vw, 32px) clamp(4px, 1vw, 16px); + border-bottom: 1px solid rgba(255, 255, 255, 0.16); + border-left: 2px solid transparent; + transition: border-color 0.3s ease, padding-left 0.3s ease, background-color 0.3s ease; + } + + .epn-card:hover { + border-left-color: #c8102e; + background: rgba(200, 16, 46, 0.06); + padding-left: clamp(20px, 2.5vw, 32px); + } + + .epn-card-index { + font-size: 15px; + font-weight: 900; + color: rgba(255, 255, 255, 0.35); + } + + .epn-card-title { + font-size: clamp(22px, 2.2vw, 30px) !important; + font-weight: 900 !important; + line-height: 1.1 !important; + letter-spacing: -0.03em !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0 0 8px; + } + + .epn-card-desc { + max-width: 46ch; + font-size: 14.5px; + line-height: 1.6; + color: rgba(255, 255, 255, 0.58); + margin: 0; + } + + .epn-card-arrow { + display: flex; + color: rgba(255, 255, 255, 0.3); + transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s ease; + } + + .epn-card:hover .epn-card-arrow { + transform: translateX(4px); + color: #ff5470; + } + + .epn-cta { + margin-top: clamp(42px, 5vw, 64px); + } + + .epn-cta-btn { + display: inline-flex; + align-items: center; + gap: 10px; + padding: 16px 36px; + border-radius: 100px; + background: #c01227; + color: #ffffff !important; + font-weight: 800; + font-size: 15px; + text-decoration: none !important; + transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease; + } + + .epn-cta-btn:hover { + transform: translateY(-3px); + box-shadow: 0 14px 30px rgba(192, 18, 39, 0.35); + } + + @media (max-width: 1024px) { + .epn-section { width: calc(100% - 24px); border-radius: 22px; } + } + + @media (max-width: 900px) { + .epn-head, + .epn-body { grid-template-columns: 1fr; } + } + + @media (max-width: 700px) { + .epn-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .epn-card { + grid-template-columns: 44px minmax(0, 1fr); + } + .epn-card-arrow { display: none; } + } + + @media (max-width: 460px) { + .epn-section { padding-top: 54px; padding-bottom: 54px; } + } + 15:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2d"}}],"$L2e"] +2f:Tdad, + .emp-cta-wrap { + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto clamp(40px, 5vw, 64px); + } + + .emp-cta { + position: relative; + overflow: hidden; + border-radius: 28px; + min-height: clamp(480px, 48vw, 680px); + background: #09090b; + display: flex; + align-items: flex-end; + } + + .emp-cta::before { + content: ""; + position: absolute; + inset: 0; + background-image: + linear-gradient(180deg, rgba(9, 9, 11, 0.18) 0%, rgba(9, 9, 11, 0.52) 48%, rgba(9, 9, 11, 0.96) 100%), + linear-gradient(90deg, rgba(9, 9, 11, 0.88) 0%, rgba(9, 9, 11, 0.35) 58%, rgba(9, 9, 11, 0.12) 100%), + url("/images/bg-header-women.webp"); + background-size: cover; + background-position: center; + transform: scale(1.02); + } + + .emp-cta-inner { + position: relative; + z-index: 1; + max-width: 1380px; + width: 100%; + margin: 0 auto; + padding: clamp(46px, 7vw, 88px) clamp(24px, 5vw, 64px); + box-sizing: border-box; + } + + .emp-cta-recap { + display: flex; + gap: clamp(28px, 4vw, 52px); + margin-bottom: clamp(28px, 4vw, 44px); + padding-bottom: clamp(24px, 3vw, 36px); + border-bottom: 1px solid rgba(255, 255, 255, 0.16); + } + + .emp-cta-recap-item { + display: flex; + align-items: baseline; + gap: 10px; + } + + .emp-cta-recap-num { + font-size: clamp(22px, 2.4vw, 32px); + font-weight: 900; + letter-spacing: -0.02em; + color: transparent; + -webkit-text-stroke: 1.3px rgba(255, 255, 255, 0.85); + } + + .emp-cta-recap-label { + font-size: 12px; + font-weight: 700; + letter-spacing: 0.6px; + color: rgba(255, 255, 255, 0.5); + } + + .emp-cta-kicker { + font-size: 13px; + font-weight: 900; + letter-spacing: 2.4px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 22px; + } + + .emp-cta-title { + max-width: 980px; + color: #ffffff !important; + font-size: clamp(44px, 7vw, 108px) !important; + font-weight: 900 !important; + line-height: 0.95 !important; + letter-spacing: -0.06em !important; + text-transform: uppercase !important; + margin: 0 0 clamp(24px, 3vw, 34px); + } + + .emp-cta-title em { + color: #ff5470; + font-style: normal; + } + + .emp-cta-bottom { + display: block; + max-width: 1120px; + } + + .emp-cta-sub { + max-width: 620px; + font-size: 16px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.68); + margin: 0; + } + + @media (max-width: 1024px) { + .emp-cta-wrap { width: calc(100% - 24px); } + .emp-cta { border-radius: 22px; } + } + + @media (max-width: 760px) { + .emp-cta { min-height: 600px; } + .emp-cta::before { background-position: 76% center; } + .emp-cta-title { + font-size: clamp(36px, 11vw, 44px) !important; + letter-spacing: -0.05em !important; + overflow-wrap: anywhere; + } + .emp-cta-recap { flex-wrap: wrap; row-gap: 14px; } + } + 16:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2f"}}],"$L30"] +17:["$","script","script-0",{"src":"/_next/static/chunks/0vzdvje64yndv.js","async":true,"nonce":"$undefined"}] +18:["$","$L31",null,{"children":["$","$32",null,{"name":"Next.MetadataOutlet","children":"$@33"}]}] +34:[] +19:"$W34" +1a:["$","$1","h",{"children":[null,["$","$L35",null,{"children":"$L36"}],["$","div",null,{"hidden":true,"children":["$","$L37",null,{"children":["$","$32",null,{"name":"Next.Metadata","children":"$L38"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +1c:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +39:I[5074,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"default"] +3c:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],""] +3e:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"CountUp"] +3f:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"StaggerChildren"] +40:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"Image"] +20:["$","section",null,{"className":"ev-section","id":"wings-empowerment-vision","children":[["$","div",null,{"className":"ev-map","aria-hidden":"true","children":["$","$L39",null,{}]}],["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"ev-inner","children":[["$","$L1d",null,{"delay":0.05,"duration":0.7,"yOffset":20,"children":[["$","p",null,{"className":"ev-eyebrow","children":"/ Our Vision /"}],["$","hr",null,{"className":"ev-divider"}]]}],["$","$L1d",null,{"delay":0.12,"duration":0.85,"yOffset":30,"children":["$","h2",null,{"className":"ev-title","children":"Women Own The Future."}]}],["$","div",null,{"className":"ev-columns","children":[["$","$L1d",null,{"delay":0.18,"duration":0.8,"yOffset":25,"children":["$","p",null,{"className":"ev-statement","children":"A logistics ecosystem where women don’t just participate — they own, build, and lead."}]}],["$","$L1d",null,{"delay":0.26,"duration":0.8,"yOffset":25,"className":"ev-support","children":[["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"The vision"}],["$","p",null,{"className":"ev-lead","children":"We are building an entrepreneurial ecosystem where women launch enterprises, scale operations, and shape the future of logistics from the inside."}]]}],["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"Why it matters"}],["$","p",null,{"className":"ev-note","children":"Industries transform when founders emerge from every corner. Women-led enterprises bring fresh perspective, operational resilience, and long-term economic impact to logistics."}]]}],["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"How Wings contributes"}],["$","p",null,{"className":"ev-note","children":"Wings provides the infrastructure — strategic partnerships, funding access, founder networks, and industry connections — that turns ambition into enterprise."}]]}]]}]]}]]}]}]]}] +22:["$","section",null,{"className":"esy-section","id":"wings-empowerment-story","children":[["$","div",null,{"className":"esy-bg","aria-hidden":"true"}],["$","div",null,{"className":"esy-inner dm-section-container","children":[["$","$L1d",null,{"delay":0.05,"duration":0.85,"yOffset":25,"children":[["$","div",null,{"className":"esy-eyebrow","children":"/ Our Approach /"}],["$","p",null,{"className":"esy-statement","children":["Not a program on a brochure. ",["$","em",null,{"children":"An ecosystem women can build in."}]]}]]}],["$","$L1d",null,{"delay":0.15,"duration":0.8,"yOffset":25,"className":"esy-side","children":[["$","span",null,{"className":"esy-label","children":"Manifesto"}],["$","p",null,{"className":"esy-pull","children":"A venture that starts with conviction. A network that turns it into momentum."}],["$","p",null,{"className":"esy-sub","children":"Wings is designed around the moments that define a founder: the first partnership signed, the first client won, the first team hired, the first enterprise scaled."}]]}]]}]]}] +24:["$","div",null,{"id":"women-entrepreneurship","className":"elementor-element elementor-element-bbc6760 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"bbc6760","data-element_type":"container","data-e-type":"container","style":{"backgroundColor":"#1f1f1f","width":"calc(100% - 40px)","marginLeft":"20px","marginRight":"20px","borderRadius":"25px"},"children":[["$","div",null,{"className":"elementor-element elementor-element-13a7637 elementor-widget__width-auto elementor-absolute elementor-widget elementor-widget-logico_decorative_block","data-id":"13a7637","data-element_type":"widget","data-e-type":"widget","style":{"position":"absolute"},"children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"block-decoration animation-enable block-decoration-style-1","children":["$","div",null,{"className":"block-decoration-item"}]}]}]}],["$","div",null,{"style":{"backgroundImage":"url(/images/bg-header-women.webp)"},"className":"elementor-element elementor-element-7da6646 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"7da6646","data-element_type":"container","data-e-type":"container"}],["$","div",null,{"className":"elementor-element elementor-element-8b5d6e6 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"8b5d6e6","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-1f766ea e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"1f766ea","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-3b61435 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3b61435","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":[["$","div",null,{"className":"elementor-element elementor-element-c364d1c elementor-widget elementor-widget-text-editor","data-id":"c364d1c","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","p",null,{"children":"01"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-239afbb elementor-widget elementor-widget-logico_heading","data-id":"239afbb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h5",null,{"className":"logico-title","children":"Women Entrepreneurship"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-0d307dd elementor-widget elementor-widget-text-editor","data-id":"0d307dd","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","p",null,{"children":"An ecosystem where women build, own, and scale enterprises across logistics."}]}]}]]}],["$","div",null,{"className":"elementor-element elementor-element-5aea22e e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5aea22e","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":["$","div",null,{"className":"elementor-element elementor-element-46b9ffa elementor-widget elementor-widget-logico_button","data-id":"46b9ffa","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"button-widget","children":["$","div",null,{"className":"button-container","children":["$","a",null,{"href":"#wings-empowerment-programs","className":"logico-small-button","children":["Explore the ecosystem",["$","svg",null,{"viewBox":"0 0 13 20","children":"$L3a"}]]}]}]}]}]}]}]]}]}],"$L3b"]}] +26:["$","section",null,{"className":"epr-section","id":"wings-empowerment-programs","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"epr-inner","children":[["$","div",null,{"className":"epr-head","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"epr-head-reveal","children":[["$","div",null,{"className":"epr-eyebrow","children":"/ Entrepreneurship Pillars /"}],["$","hr",null,{"className":"epr-divider"}]]}],["$","$L1d",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"epr-title","children":"Every pillar is built around ownership."}]}]]}],["$","div",null,{"className":"epr-stage","children":[["$","div",null,{"className":"epr-aside-wrap","children":["$","div",null,{"className":"epr-aside-sticky","children":["$","aside",null,{"className":"epr-aside","children":[["$","div",null,{"className":"epr-aside-map","aria-hidden":"true","children":["$","$L39",null,{}]}],["$","$L1d",null,{"delay":0.05,"duration":0.8,"yOffset":24,"className":"epr-aside-content","children":[["$","div",null,{"className":"epr-aside-num","children":"05"}],["$","p",null,{"className":"epr-aside-copy","children":["Building tomorrow’s ",["$","em",null,{"children":"women entrepreneurs."}]]}],["$","p",null,{"className":"epr-aside-desc","children":"Every enterprise starts with one decision. Our pillars move women from idea to ownership through mentorship, real industry partnerships, and hands-on venture building across the logistics ecosystem."}]]}]]}]}]}],["$","div",null,{"children":[["$","$L1d",null,{"delay":0.1,"duration":0.8,"yOffset":24,"children":["$","div",null,{"className":"epr-list","children":[["$","article","Venture Launchpad",{"className":"epr-row epr-row-featured","children":[["$","div",null,{"className":"epr-row-index","children":"01"}],["$","div",null,{"children":[["$","span",null,{"className":"epr-row-flag","children":"Where most founders begin"}],["$","span",null,{"className":"epr-row-type","children":"Start building"}],["$","h3",null,{"className":"epr-row-title","children":"Venture Launchpad"}],["$","p",null,{"className":"epr-row-desc","children":"Business model validation, market entry strategy, entity formation, and go-to-market execution for women-led logistics enterprises."}]]}]]}],["$","article","Strategic Partnerships",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"02"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Connect and grow"}],["$","h3",null,{"className":"epr-row-title","children":"Strategic Partnerships"}],["$","p",null,{"className":"epr-row-desc","children":"Direct access to supply chain networks, B2B relationships, industry alliances, and commercial agreements that accelerate growth."}]]}]]}],["$","article","Founder Mentorship",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"03"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Learn from builders"}],["$","h3",null,{"className":"epr-row-title","children":"Founder Mentorship"}],["$","p",null,{"className":"epr-row-desc","children":"One-on-one guidance from established entrepreneurs, operators, and investors who understand what it takes to scale."}]]}]]}],["$","article","Growth & Scale",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"04"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Scale with confidence"}],["$","h3",null,{"className":"epr-row-title","children":"Growth & Scale"}],["$","p",null,{"className":"epr-row-desc","children":"Operational expansion frameworks, team building, funding readiness, and sustainable unit economics for ventures ready to grow."}]]}]]}],["$","article","Industry Immersion",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"05"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"See the opportunity"}],["$","h3",null,{"className":"epr-row-title","children":"Industry Immersion"}],["$","p",null,{"className":"epr-row-desc","children":"Real exposure to logistics operations, supply chain infrastructure, and distribution networks before founders commit to a vertical."}]]}]]}]]}]}],["$","div",null,{"className":"epr-cta","children":["$","$L3c",null,{"href":"/contact","className":"epr-cta-link","children":["Start your venture","$L3d"]}]}]]}]]}]]}]}]}] +28:["$","section",null,{"className":"eim-section","id":"wings-empowerment-impact","children":["$","div",null,{"className":"eim-inner dm-section-container","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"children":[["$","div",null,{"className":"eim-eyebrow","children":"/ Our Impact /"}],["$","h2",null,{"className":"eim-title","children":"Growth we can measure"}]]}],["$","hr",null,{"className":"eim-divider"}],["$","$L1d",null,{"delay":0.08,"duration":0.8,"yOffset":20,"className":"eim-hero-row","children":[["$","span",null,{"className":"eim-hero-num","children":["$","$L3e",null,{"end":500,"suffix":"+","duration":2.2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-hero-label","children":"Women-Led Enterprises In The Ecosystem"}]]}],["$","hr",null,{"className":"eim-divider-2"}],["$","$L1d",null,{"delay":0.1,"duration":0.8,"yOffset":20,"children":["$","div",null,{"className":"eim-secondary-row","children":[["$","div","Enterprises Launched",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L3e",null,{"end":100,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Enterprises Launched"}]]}],["$","div","Industry Partners",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L3e",null,{"end":25,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Industry Partners"}]]}],["$","div","Cities Active",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L3e",null,{"end":15,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Cities Active"}]]}],["$","div","In Economic Value Created",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":"Millions"}],["$","span",null,{"className":"eim-secondary-label","children":"In Economic Value Created"}]]}]]}]}],["$","$L1d",null,{"delay":0.12,"duration":0.75,"yOffset":20,"className":"eim-copy","children":["$","p",null,{"children":"Every number on this page represents a woman who walked into a room with an idea and walked out with a business. An enterprise launched, a partnership secured, a market entered — each is a marker of real economic impact, not a statistic collected for its own sake."}]}]]}]}] +2a:["$","section",null,{"className":"ehw-section","id":"wings-empowerment-how-it-works","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"ehw-inner","children":[["$","div",null,{"className":"ehw-head","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"ehw-head-reveal","children":[["$","div",null,{"className":"ehw-eyebrow","children":"/ The Founder Journey /"}],["$","hr",null,{"className":"ehw-divider"}]]}],["$","$L1d",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"ehw-title","children":"A clear path, from idea to enterprise"}]}]]}],["$","$L3f",null,{"className":"ehw-sequence","stagger":0.12,"duration":0.7,"yOffset":30,"triggerOnce":true,"children":[["$","div","01",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"01"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Apply"}],["$","p",null,{"className":"ehw-step-desc","children":"Submit your venture idea and tell us about your entrepreneurial vision."}]]}],["$","div","02",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"02"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Discovery"}],["$","p",null,{"className":"ehw-step-desc","children":"Identify the right market opportunity and validate your business model."}]]}],["$","div","03",{"className":"ehw-step is-accent","children":[["$","div",null,{"className":"ehw-step-num","children":"03"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Build"}],["$","p",null,{"className":"ehw-step-desc","children":"Develop your enterprise with ecosystem support, mentorship, and partnerships."}]]}],["$","div","04",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"04"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Launch"}],["$","p",null,{"className":"ehw-step-desc","children":"Go to market with strategic backing, industry connections, and operational infrastructure."}]]}],["$","div","05",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"05"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Scale"}],["$","p",null,{"className":"ehw-step-desc","children":"Grow your team, expand operations, and lead your enterprise to sustainable impact."}]]}]]}]]}]}]}] +2c:["$","section",null,{"className":"est-section","id":"wings-empowerment-stories","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"est-inner","children":[["$","div",null,{"className":"est-head","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"est-head-reveal","children":[["$","div",null,{"className":"est-eyebrow","children":"/ Women in Motion /"}],["$","hr",null,{"className":"est-divider"}]]}],["$","$L1d",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"est-title","children":"Small steps. Lasting careers."}]}]]}],["$","div",null,{"className":"est-feature","children":[["$","$L1d",null,{"delay":0.05,"duration":0.85,"yOffset":24,"className":"est-photo","children":[["$","$L40",null,{"src":"/images/women-hero-slider-3.png","alt":"A Wings program participant on the operations floor at a Doormile logistics hub","fill":true,"sizes":"(max-width: 1000px) 100vw, 58vw","style":{"objectPosition":"80% 22%"}}],["$","div",null,{"className":"est-photo-caption","children":[["$","span",null,{"children":"Wings Participant"}],["$","strong",null,{"children":" building a career, one milestone at a time."}]]}]]}],["$","$L1d",null,{"delay":0.12,"duration":0.85,"yOffset":24,"className":"est-copy","children":["$","div",null,{"children":[["$","span",null,{"className":"est-quote-mark","aria-hidden":"true","children":"“"}],["$","p",null,{"className":"est-quote-text","children":"I came in looking for a way forward. I found the confidence to lead."}],["$","p",null,{"className":"est-narrative","children":"She started with limited exposure to logistics. Through structured training, mentorship, and hands-on experience, she built real operational skills — and now supports other women stepping into the industry."}]]}]}]]}]]}]}]}] +2e:["$","section",null,{"className":"epn-section","id":"wings-empowerment-partners","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"epn-inner","children":[["$","div",null,{"className":"epn-head","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"epn-head-reveal","children":[["$","div",null,{"className":"epn-eyebrow","children":"/ Collaboration /"}],["$","hr",null,{"className":"epn-divider"}]]}],["$","$L1d",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"epn-title","children":["Partnership is how ",["$","em",null,{"children":"ecosystems grow."}]]}]}]]}],["$","div",null,{"className":"epn-body","children":[["$","$L1d",null,{"delay":0.08,"duration":0.8,"yOffset":22,"className":"epn-manifesto","children":[["$","p",null,{"className":"epn-intro","children":"The strongest ecosystems are built by many hands."}],["$","p",null,{"className":"epn-note","children":"Wings partners bring industry access, strategic infrastructure, capital, and networks. Together, we build the foundation women-led enterprises need to thrive."}]]}],["$","$L1d",null,{"delay":0.12,"duration":0.8,"yOffset":22,"children":["$","div",null,{"className":"epn-grid","children":[["$","article","Industry Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"01"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Industry Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Strategic alliances with logistics operators, supply chain leaders, and distribution networks that open doors for women-led enterprises."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Technology Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"02"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Technology Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Platforms, tools, and infrastructure that give founders the operational edge to compete and scale efficiently."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Community Networks",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"03"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Community Networks"}],["$","p",null,{"className":"epn-card-desc","children":"Founder communities, women's business networks, and ecosystem builders who extend reach and amplify impact."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Investment Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"04"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Investment Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Funding access, grant programs, angel networks, and capital partners aligned with women-led enterprise growth."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}]]}]}]]}]]}]}]}] +30:["$","div",null,{"className":"emp-cta-wrap","children":["$","section",null,{"className":"emp-cta","aria-labelledby":"empowerment-final-cta","children":["$","div",null,{"className":"emp-cta-inner","children":[["$","div",null,{"className":"emp-cta-recap","children":[["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"500+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Women Founders"}]]}],["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"100+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Enterprises Launched"}]]}],["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"25+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Industry Partners"}]]}]]}],["$","div",null,{"className":"emp-cta-kicker","children":"/ Build the next mile /"}],["$","h2",null,{"className":"emp-cta-title","id":"empowerment-final-cta","children":["Build what’s ",["$","em",null,{"children":"next."}]]}],["$","div",null,{"className":"emp-cta-bottom","children":["$","p",null,{"className":"emp-cta-sub","children":"Join Doormile Wings in building the entrepreneurial ecosystem where women launch, grow, and lead enterprises that create lasting value across logistics."}]}]]}]}]}] +3a:["$","polyline",null,{"points":"0.5 19.5 3 19.5 12.5 10 3 0.5"}] +3b:["$","div",null,{"className":"elementor-element elementor-element-b6e14bd e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"b6e14bd","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":[["$","div",null,{"className":"ws-map","aria-hidden":"true","children":["$","$L39",null,{}]}],["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-90cc867 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"90cc867","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-24c0280 elementor-widget__width-inherit elementor-widget elementor-widget-logico_heading","data-id":"24c0280","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/ Women Empowerment /"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-2ed47f3 e-con-full e-grid cut-corner-no sticky-container-off e-con e-child","data-id":"2ed47f3","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-36efec7 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"36efec7","data-element_type":"container","data-e-type":"container","children":[["$","$L1d",null,{"duration":0.8,"yOffset":28,"triggerOnce":true,"children":["$","div",null,{"className":"elementor-element elementor-element-778840d elementor-widget elementor-widget-logico_heading","data-id":"778840d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h3",null,{"className":"logico-title","children":"Women Building The Next Mile"}]}]}]}],["$","div",null,{"className":"elementor-element elementor-element-bbfb67f elementor-widget elementor-widget-image","data-id":"bbfb67f","data-element_type":"widget","data-e-type":"widget","data-widget_type":"image.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","$L40",null,{"src":"/images/bg-map-women.webp","alt":"Women Map","width":626,"height":692,"style":{"maxWidth":"100%","height":"auto"}}]}]}]]}],["$","div",null,{"className":"elementor-element elementor-element-b2c956f e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"b2c956f","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"id":"ws-stories","children":[["$","$L3f",null,{"className":"ws__stats","stagger":0.1,"duration":0.6,"yOffset":20,"triggerOnce":true,"children":[["$","div","Women Founders",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L3e",null,{"end":500,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Women Founders"}]]}],["$","div","Cities Active",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L3e",null,{"end":35,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Cities Active"}]]}],["$","div","Enterprises Launched",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L3e",null,{"end":100,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Enterprises Launched"}]]}]]}],["$","$L3f",null,{"className":"ws__cards","stagger":0.08,"duration":0.6,"yOffset":24,"triggerOnce":true,"children":[["$","div","Venture Building",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M4 19V5"}],["$","path",null,{"d":"M4 7h12l-2 4 2 4H4"}],["$","path",null,{"d":"M18 19h2"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Venture Building"}],["$","p",null,{"className":"ws__card-desc","children":"End-to-end support for women launching logistics enterprises — from ideation to market entry."}]]}],"$L41","$L42","$L43"]}]]}]}]]}]]}]}]]}] +3d:["$","svg",null,{"width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}] +41:["$","div","Entrepreneurship",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"7","width":"18","height":"13","rx":"2"}],["$","path",null,{"d":"M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 12h18"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Entrepreneurship"}],["$","p",null,{"className":"ws__card-desc","children":"Women building, owning, and scaling sustainable businesses within the logistics ecosystem."}]]}] +42:["$","div","Founder Networks",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"8","cy":"8","r":"3"}],["$","circle",null,{"cx":"16","cy":"8","r":"3"}],["$","path",null,{"d":"M2.5 20c.7-3.1 2.8-5 5.5-5s4.8 1.9 5.5 5"}],["$","path",null,{"d":"M10.5 20c.7-3.1 2.8-5 5.5-5s4.8 1.9 5.5 5"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Founder Networks"}],["$","p",null,{"className":"ws__card-desc","children":"Peer communities and strategic connections that accelerate growth and open new markets."}]]}] +43:["$","div","Enterprise Leadership",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"12","cy":"9","r":"5"}],["$","path",null,{"d":"M9 13.5 7.5 21 12 18l4.5 3-1.5-7.5"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Enterprise Leadership"}],["$","p",null,{"className":"ws__card-desc","children":"Strategic decision-making, operational excellence, and vision-driven leadership for women founders."}]]}] +36:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +44:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +33:null +38:[["$","title","0",{"children":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","1",{"name":"description","content":"Doormile Wings empowers women to build, own, and lead enterprises within the logistics ecosystem through strategic partnerships, founder networks, and entrepreneurial infrastructure."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/empowerment"}],["$","meta","4",{"property":"og:title","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","5",{"property":"og:description","content":"An entrepreneurial ecosystem empowering women to launch, grow, and lead logistics enterprises with strategic partnerships and industry collaboration."}],["$","meta","6",{"property":"og:url","content":"https://doormile.com/empowerment"}],["$","meta","7",{"property":"og:site_name","content":"Doormile"}],["$","meta","8",{"property":"og:image","content":"https://doormile.com/images/wings-logo.png"}],["$","meta","9",{"property":"og:image:width","content":"1200"}],["$","meta","10",{"property":"og:image:height","content":"630"}],["$","meta","11",{"property":"og:image:alt","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","12",{"property":"og:type","content":"website"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","15",{"name":"twitter:description","content":"An entrepreneurial ecosystem empowering women to launch, grow, and lead logistics enterprises with strategic partnerships and industry collaboration."}],["$","meta","16",{"name":"twitter:image","content":"https://doormile.com/images/wings-logo.png"}],["$","link","17",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","18",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","19",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L44","21",{}]] diff --git a/build/.next/server/app/empowerment.segments/_full.segment.rsc b/build/.next/server/app/empowerment.segments/_full.segment.rsc new file mode 100644 index 0000000..5e80f76 --- /dev/null +++ b/build/.next/server/app/empowerment.segments/_full.segment.rsc @@ -0,0 +1,2194 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +1b:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +c:Tf99, + .eh-outer { + box-sizing: border-box; + padding: 20px; + } + + .eh-section { + position: relative; + border-radius: 25px; + overflow: hidden; + box-sizing: border-box; + height: 800px; + display: flex; + align-items: center; + justify-content: center; + background: #07080c; + } + + .eh-bg { + position: absolute; + inset: 0; + background-image: url("/images/women-hero-slider-2.png"); + background-size: cover; + background-position: 30% 72%; + z-index: 0; + } + + .eh-scrim { + position: absolute; + inset: 0; + background: + linear-gradient(180deg, rgba(7, 8, 12, 0.72) 0%, rgba(7, 8, 12, 0.5) 40%, rgba(7, 8, 12, 0.86) 100%); + z-index: 1; + } + + .eh-inner { + position: relative; + z-index: 2; + width: 100%; + max-width: 1000px; + margin: 0 auto; + padding: 0 15px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + box-sizing: border-box; + } + + .eh-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.6px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 20px; + } + + .eh-title { + width: 100%; + font-size: clamp(30px, 5.5vw, 80px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.08 !important; + text-transform: uppercase !important; + color: #ffffff !important; + margin: 0; + word-wrap: break-word; + overflow-wrap: break-word; + } + + .eh-title .eh-soft { + color: rgba(255, 255, 255, 0.72); + } + + .eh-desc { + width: 100%; + max-width: 680px; + margin: 23px auto 0; + font-size: clamp(16px, 1.35vw, 23px); + line-height: 1.65; + color: rgba(255, 255, 255, 0.78); + } + + .eh-btns { + display: flex; + align-items: center; + justify-content: center; + gap: 14px; + flex-wrap: wrap; + margin-top: 32px; + } + + .eh-btn-primary, + .eh-btn-outline { + display: inline-flex; + align-items: center; + gap: 10px; + padding: 15px 28px; + border-radius: 100px; + font-weight: 800; + font-size: 14px; + text-decoration: none; + transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, background-color 0.3s ease, border-color 0.3s ease; + } + + .eh-btn-primary { + background: #c01227; + color: #ffffff !important; + border: 1.5px solid #c01227; + } + + .eh-btn-primary:hover { + transform: translateY(-3px); + box-shadow: 0 14px 30px rgba(192, 18, 39, 0.4); + } + + .eh-btn-outline { + background: rgba(255, 255, 255, 0.04); + color: #ffffff !important; + border: 1.5px solid rgba(255, 255, 255, 0.36); + } + + .eh-btn-outline:hover { + border-color: rgba(255, 255, 255, 0.82); + background: rgba(255, 255, 255, 0.09); + transform: translateY(-3px); + } + + @media (max-width: 1020px) { + .eh-outer { padding: 10px; } + } + + @media (max-width: 840px) { + .eh-section { height: 600px; } + } + + @media (max-width: 660px) { + .eh-title { + font-size: clamp(20px, 7vw, 32px) !important; + } + } + + @media (max-width: 480px) { + .eh-section { height: 520px; } + .eh-btn-primary, .eh-btn-outline { width: 100%; justify-content: center; padding: 14px 22px; } + .eh-btns { width: 100%; } + } + 0:{"P":null,"c":["","empowerment"],"q":"","i":false,"f":[[["",{"children":["empowerment",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"empowerment","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"86","className":"elementor elementor-86 elementor-59 elementor-empowerment","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$c"}}],"$Ld"],"$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16"]}]}]}]}],["$L17"],"$L18"]}],{},null,false,null]},null,false,"$@19"]},null,false,null],"$L1a",false]],"m":"$undefined","G":["$1b",["$L1c"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1d:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"ScrollReveal"] +1e:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"ShimmerText"] +31:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +32:"$Sreact.suspense" +35:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +37:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +d:["$","div",null,{"className":"eh-outer","children":["$","section",null,{"className":"eh-section","id":"wings-empowerment-hero","children":[["$","div",null,{"className":"eh-bg","aria-hidden":"true"}],["$","div",null,{"className":"eh-scrim","aria-hidden":"true"}],["$","$L1d",null,{"delay":0.05,"duration":0.85,"yOffset":30,"className":"eh-inner","children":[["$","h1",null,{"className":"eh-title","children":["Building ",["$","span",null,{"className":"eh-soft","children":"Women"}],["$","br",null,{}],["$","$L1e",null,{"children":"Entrepreneurs."}]]}],["$","p",null,{"className":"eh-desc","children":"Empowering ambitious women with the network, strategic partnerships, and opportunities to build, grow, and lead successful enterprises that shape the future of logistics."}]]}]]}]}] +1f:Te8f, + .ev-section { + position: relative; + background: #ffffff; + padding: clamp(96px, 11vw, 150px) 0; + overflow: hidden; + } + + .ev-map { + position: absolute; + inset: 0; + z-index: 0; + opacity: 0.4; + pointer-events: none; + } + + .ev-inner { + position: relative; + z-index: 1; + max-width: 1380px; + min-width: 0; + margin: 0 auto; + } + + .ev-eyebrow { + margin: 0 0 18px 0; + font-size: 14px; + font-weight: 500; + letter-spacing: 1.5px; + color: rgba(17, 17, 17, 0.6); + } + + .ev-divider { + width: 100%; + height: 1px; + margin: 0 0 clamp(64px, 7.8vw, 92px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.16); + } + + .ev-title { + margin: 0 0 clamp(92px, 11.5vw, 156px) 0 !important; + max-width: 1320px; + display: block; + font-weight: 800 !important; + font-style: normal !important; + letter-spacing: -0.018em !important; + word-spacing: 0.02em; + line-height: 1.04em !important; + text-transform: none !important; + color: #ffffff !important; + -webkit-text-stroke: 2px #c01227; + paint-order: stroke fill; + font-size: clamp(48px, 8.5vw, 128px) !important; + white-space: normal; + overflow-wrap: normal; + text-wrap: balance; + } + + @media (max-width: 1280px) { + .ev-title { + font-size: 118px !important; + } + } + + @media (max-width: 1020px) { + .ev-title { + font-size: 96px !important; + } + } + + @media (max-width: 767px) { + .ev-title { + font-size: 72px !important; + } + } + + .ev-columns { + display: grid; + grid-template-columns: minmax(0, 0.6fr) minmax(0, 1fr); + gap: clamp(60px, 8vw, 122px); + align-items: start; + } + + .ev-columns > * { + min-width: 0; + } + + .ev-statement { + margin: 0; + font-size: clamp(28px, 3vw, 52px); + font-weight: 600; + line-height: 1.2; + letter-spacing: -0.03em; + color: #111111; + overflow-wrap: break-word; + } + + .ev-support { + display: grid; + gap: clamp(34px, 3.8vw, 52px); + min-width: 0; + } + + .ev-block { + display: grid; + gap: 12px; + } + + .ev-block-label { + margin: 0; + font-size: 12px; + font-weight: 700; + letter-spacing: 1.4px; + line-height: 1; + text-transform: uppercase; + color: rgba(192, 18, 39, 0.86); + } + + .ev-lead, + .ev-note { + font-size: clamp(17px, 1.3vw, 20px); + line-height: 1.6; + color: #333333; + margin: 0; + overflow-wrap: break-word; + } + + .ev-lead { + font-weight: 700; + } + + .ev-note { + font-weight: 400; + } + + @media (max-width: 900px) { + .ev-columns { + grid-template-columns: 1fr; + } + } + + @media (max-width: 600px) { + .ev-section { padding-top: 64px; padding-bottom: 64px; } + .ev-title { + max-width: calc(100vw - (var(--dm-mobile-gutter, 10px) * 2)); + font-size: 56px !important; + letter-spacing: -0.025em !important; + line-height: 1.02em !important; + -webkit-text-stroke-width: 1.5px; + } + } + e:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$1f"}}],"$L20"] +21:T1091, + .esy-section { + position: relative; + width: calc(100% - 40px); + margin: 0 auto clamp(24px, 4vw, 40px); + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + min-height: clamp(500px, 50vw, 690px); + display: flex; + align-items: stretch; + background: #09090b; + } + + .esy-bg { + position: absolute; + inset: 0; + background-image: + linear-gradient(100deg, rgba(9, 9, 11, 0.96) 0%, rgba(9, 9, 11, 0.84) 43%, rgba(192, 18, 39, 0.28) 100%), + url("/images/wings-heroslider4.png"); + background-size: cover; + background-position: center; + z-index: 0; + } + + .esy-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + width: 100%; + padding-top: clamp(60px, 7vw, 98px); + padding-bottom: clamp(60px, 7vw, 98px); + display: grid; + grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.52fr); + gap: clamp(36px, 6vw, 96px); + align-items: end; + } + + .esy-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 24px; + } + + .esy-statement { + max-width: 920px; + font-size: clamp(38px, 5.7vw, 86px); + font-weight: 800; + letter-spacing: -0.055em; + line-height: 0.98; + text-transform: uppercase; + color: #ffffff; + margin: 0; + } + + .esy-statement em { + color: #ff5470; + font-style: normal; + } + + .esy-side { + border-left: 1px solid rgba(255, 255, 255, 0.18); + padding-left: clamp(24px, 3vw, 42px); + } + + .esy-label { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.8px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.45); + margin-bottom: 18px; + } + + .esy-pull { + font-size: clamp(22px, 2.3vw, 34px); + font-weight: 800; + line-height: 1.16; + letter-spacing: -0.03em; + color: #ffffff; + margin: 0 0 22px 0; + } + + .esy-sub { + font-size: 15.5px; + line-height: 1.65; + color: rgba(255, 255, 255, 0.64); + margin: 0; + } + + /* ---- Desktop-only inner spacing compaction ---- + .esy-section never set its own padding, so it was silently + inheriting 96px top/bottom from the global bare-tag "section" + padding rule (6rem 0) in site.css — stacking with .esy-inner's + own clamp(60-98px) padding into a huge, unbalanced inset. Cancel + that leak here. Also tighten .esy-inner's own padding and widen its + max-width (so a fixed padding, not a narrow centered column, + controls the left/right inset at every desktop width) — and bring + min-height down to match the now-tighter natural content height, + since the old 690px floor was itself forcing extra empty space + once the padding was reduced. Scoped to desktop only; tablet/ + mobile keep their original spacing untouched below. */ + @media (min-width: 1025px) { + .esy-section { + padding: 0; + min-height: clamp(420px, 38vw, 500px); + } + .esy-inner { + max-width: 1900px; + padding-top: 64px; + padding-bottom: 56px; + padding-left: 64px; + padding-right: 64px; + } + } + + @media (max-width: 1024px) { + .esy-section { width: calc(100% - 24px); border-radius: 22px; } + .esy-inner { grid-template-columns: 1fr; align-items: start; } + .esy-side { max-width: 640px; } + } + + @media (max-width: 640px) { + .esy-section { min-height: 560px; } + .esy-side { border-left: none; padding-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.18); padding-top: 24px; } + } + f:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$21"}}],"$L22"] +23:T3756, + /* ============================================================ + Success Stories — redesigned right column (stats + 2x2 cards) + Dark section · red accent #dc2626 / #ef4444 · Manrope + ============================================================ */ + /* Neutralise the right column's asymmetric 140px left padding so the + box group can be centered instead of pushed to one side. */ + .elementor-element.elementor-element-b2c956f { padding: 0 !important; } + + /* Vertically center the two columns so the right content lines up with + the image instead of needing a big top gap; tighten row gap. */ + .elementor-element.elementor-element-2ed47f3 { align-items: center !important; } + + /* Animated map background behind the Success Stories content */ + .elementor-element.elementor-element-b6e14bd { position: relative; overflow: hidden; } + .elementor-element.elementor-element-b6e14bd > .e-con-inner { position: relative; z-index: 1; } + .ws-map { position: absolute; inset: 0; z-index: 0; opacity: 0.5; pointer-events: none; } + .ws-map canvas { display: block; } + + #ws-stories { + display: flex; + flex-direction: column; + gap: 16px; + width: 100%; + max-width: 620px; + margin: 0 auto; /* center the 7 boxes as a group — no negative margins */ + } + + #ws-stories .ws__stats { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 12px; + } + #ws-stories .ws__stat { + background: rgba(255,255,255,0.04); + border: 1px solid rgba(255,255,255,0.08); + border-radius: 14px; + padding: 20px 16px; + transition: border-color 0.3s ease, background-color 0.3s ease; + } + #ws-stories .ws__stat:hover { border-color: rgba(220,38,38,0.28); background: rgba(220,38,38,0.05); } + #ws-stories .ws__stat-num { + color: #fff !important; + font-weight: 900; + font-size: clamp(28px, 3vw, 38px); + line-height: 1; + letter-spacing: -0.01em; + } + #ws-stories .ws__stat-num span { color: #dc2626 !important; } + #ws-stories .ws__stat-label { + margin-top: 9px; + color: rgba(255,255,255,0.7) !important; + font-size: 14px !important; + font-weight: 700; + letter-spacing: 0.03em; + text-transform: uppercase; + } + + #ws-stories .ws__cards { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px; + align-items: stretch; + } + #ws-stories .ws__card { + position: relative; + overflow: hidden; + display: flex; + flex-direction: column; + min-height: 168px; + background: rgba(255,255,255,0.035); + border: 1px solid rgba(255,255,255,0.08); + border-radius: 14px; + padding: 20px; + transition: transform 0.35s cubic-bezier(.25,1,.5,1), border-color 0.35s ease, background-color 0.35s ease, box-shadow 0.35s ease; + } + #ws-stories .ws__card::after { + content: ''; + position: absolute; + top: -45%; left: -25%; + width: 150px; height: 150px; + background: radial-gradient(circle, rgba(220,38,38,0.2), transparent 70%); + opacity: 0; + transition: opacity 0.35s ease; + pointer-events: none; + } + #ws-stories .ws__card:hover { + transform: translateY(-4px); + border-color: rgba(220,38,38,0.3); + background: rgba(220,38,38,0.05); + box-shadow: 0 18px 44px -20px rgba(0,0,0,0.7); + } + #ws-stories .ws__card:hover::after { opacity: 1; } + #ws-stories .ws__card-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 40px; height: 40px; + border-radius: 11px; + background: rgba(220,38,38,0.12); + border: 1px solid rgba(220,38,38,0.25); + color: #ef4444; + margin-bottom: 16px; + transition: background-color 0.3s ease, color 0.3s ease; + } + #ws-stories .ws__card:hover .ws__card-icon { background: #dc2626; color: #fff; } + #ws-stories .ws__card-icon svg { width: 21px; height: 21px; } + #ws-stories .ws__card-title { + color: #fff !important; + font-weight: 800; + font-size: 19px; + line-height: 1.2; + letter-spacing: 0; + margin-bottom: 9px; + } + #ws-stories .ws__card-desc { + max-width: 28ch; + color: rgba(255,255,255,0.66) !important; + font-size: 15px; + line-height: 1.52; + margin: 0; + font-weight: 500; + } + + /* ---- Floating card sizing: content-driven, not container-driven ---- + Matches the EV Logistics card height proportions exactly by trimming + red content padding and white footer min-height. */ + .elementor-element.elementor-element-3b61435 { + --padding-top: 46px; + --padding-bottom: 38px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 38px; + --padding-top: 14px; + --padding-bottom: 14px; + } + @media (max-width: 1020px) { + .elementor-element.elementor-element-3b61435 { + --padding-top: 34px; + --padding-bottom: 28px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 32px; + --padding-top: 12px; + --padding-bottom: 12px; + } + } + @media (max-width: 660px) { + .elementor-element.elementor-element-3b61435 { + --padding-top: 26px; + --padding-bottom: 22px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 24px; + --padding-top: 10px; + --padding-bottom: 10px; + } + } + + .elementor-element-778840d .logico-title { + white-space: nowrap !important; + } + + /* The banner image (bg-header-women.png) is very wide (≈2.48:1) and the + woman — the subject of this section — sits on the right. On narrow + screens "cover" center-crops her out, so shift the focal point right + to keep her face in frame. */ + @media (max-width: 1024px) { + .elementor-element.elementor-element-7da6646:not(.elementor-motion-effects-element-type-background) { + background-position: 78% center !important; + } + } + @media (max-width: 767px) { + .elementor-element.elementor-element-7da6646:not(.elementor-motion-effects-element-type-background) { + background-position: 82% 25% !important; + } + } + + /* Stack the two columns below the desktop breakpoint so the box group + always gets full width and stays centered — never clipped. */ + @media (max-width: 1024px) { + .elementor-element-778840d .logico-title { + white-space: normal !important; + } + .elementor-element.elementor-element-2ed47f3 { grid-template-columns: 1fr !important; } + #ws-stories { max-width: 640px; margin: 0 auto; } + /* Align the heading, image and stats/cards to one shared left/right + edge — the heading + image widgets carried extra inset that left + them staggered (80px / 70px / 60px) against the stats column. */ + #women-entrepreneurship .elementor-element-36efec7, + #women-entrepreneurship .elementor-element-b2c956f { + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element-778840d, + #women-entrepreneurship .elementor-element-bbfb67f, + #women-entrepreneurship .elementor-element-778840d > .elementor-widget-container, + #women-entrepreneurship .elementor-element-bbfb67f > .elementor-widget-container { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + } + + @media (max-width: 767px) { + #women-entrepreneurship { + width: calc(100% - 20px) !important; + margin-left: 10px !important; + margin-right: 10px !important; + border-radius: 22px !important; + padding-left: 0px !important; + padding-right: 0px !important; + } + #women-entrepreneurship .e-con-boxed > .e-con-inner { + padding-top: 32px !important; + padding-bottom: 32px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element-8b5d6e6, + #women-entrepreneurship .elementor-element-b6e14bd, + #women-entrepreneurship .elementor-element-90cc867, + #women-entrepreneurship .elementor-element-36efec7, + #women-entrepreneurship .elementor-element-b2c956f { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + #women-entrepreneurship .elementor-element-1f766ea { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element.elementor-element-2ed47f3 { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + margin-top: 0 !important; + padding-top: 0 !important; + gap: 24px !important; + } + #women-entrepreneurship .elementor-element-36efec7 { + margin-top: 0px !important; + padding-top: 0px !important; + gap: 0px !important; + } + #women-entrepreneurship .elementor-element-24c0280 { + margin-bottom: 0px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-778840d { + margin-top: 14px !important; + margin-bottom: 14px !important; + padding-top: 0px !important; + padding-bottom: 0px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-778840d h3.logico-title, + #women-entrepreneurship .elementor-element-778840d > .elementor-widget-container { + margin: 0px !important; + padding: 0px !important; + } + #women-entrepreneurship .elementor-element-7da6646 { + width: calc(100% - 28px) !important; + margin-left: 14px !important; + margin-right: 14px !important; + border-radius: 18px !important; + min-height: 240px !important; + margin-top: 15px !important; + margin-bottom: -50px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-8b5d6e6 { + padding-left: 14px !important; + padding-right: 14px !important; + margin-left: 0px !important; + margin-right: 0px !important; + width: 100% !important; + max-width: 100% !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-bbfb67f img { + width: 100% !important; + } + #women-entrepreneurship .elementor-element-bbfb67f { + margin-top: 0px !important; + margin-bottom: 16px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #ws-stories { + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + /* KPI stat cards stack one-per-row on mobile. Inside each card the big + number sits on the left and the label on the right, vertically + centered, so every stat reads as a clean full-width row instead of + three cramped columns. */ + #ws-stories .ws__stats { grid-template-columns: 1fr; gap: 12px; } + #ws-stories .ws__stat { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + padding: 16px 20px; + min-width: 0; + } + #ws-stories .ws__stat-num { font-size: clamp(30px, 9vw, 40px); } + #ws-stories .ws__stat-label { + margin-top: 0; + font-size: 13px !important; + letter-spacing: 0.02em; + text-align: right; + min-height: 0; + } + #ws-stories .ws__cards { grid-template-columns: 1fr; gap: 12px; } + } + 10:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$23"}}],"$L24"] +25:T2f8a, + .epr-section { + background: #ffffff; + padding-top: clamp(28px, 3.2vw, 48px); + padding-bottom: clamp(78px, 9vw, 132px); + overflow: visible; + } + + .epr-inner { + max-width: 1380px; + min-width: 0; + margin: 0 auto; + } + + .epr-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(54px, 7vw, 86px); + } + + .epr-head-reveal { + width: 100%; + } + + .epr-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .epr-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .epr-title { + max-width: 950px; + font-size: clamp(42px, 6.2vw, 88px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0; + } + + .epr-stage { + display: grid; + grid-template-columns: minmax(300px, 0.38fr) minmax(0, 0.62fr); + gap: clamp(32px, 5vw, 78px); + /* stretch (not start): .epr-aside-wrap must span the full row + height — the tall Programs column's implicit-row height — so it + defines the sticky travel distance. The visual box no longer + lives here, so stretching this item no longer distorts it. */ + align-items: stretch; + min-width: 0; + } + + .epr-stage > * { + min-width: 0; + } + + /* Responsibility split (desktop sticky architecture): + .epr-aside-wrap — plain grid item, stretched to the full + Programs-list row height. Defines travel + distance. No sizing responsibility of its + own beyond that. + .epr-aside-sticky — owns position: sticky. Its height is + explicitly clamped to the viewport + (100dvh minus header clearance and a + bottom safe-margin), so it can never grow + taller than what's actually visible — + the tall min-height that previously fought + the sticky top offset is gone entirely. + .epr-aside — the visual composition (ghost number, map, + heading, paragraph). Fills the sticky + frame's height and arranges its existing + content inside it; owns the decorative + bleed clipping (overflow: hidden). */ + .epr-aside-wrap { + min-width: 0; + } + + .epr-aside-sticky { + /* 132px clears the site header's fixed state (~122px tall once + scrolled) with a small margin; only grows on very tall + viewports. This is viewport-height-derived, NOT content-height + derived — unlike the old top formula, it never has to react to + how tall the aside's own content happens to be. */ + --epr-sticky-top: clamp(132px, 12dvh, 160px); + --epr-sticky-bottom-safe: 28px; + position: sticky; + top: var(--epr-sticky-top); + height: calc(100dvh - var(--epr-sticky-top) - var(--epr-sticky-bottom-safe)); + min-height: 0; + min-width: 0; + /* Lets the visual composition react to the frame's OWN resolved + height (container query below) rather than guessing from the + viewport or the write-up's vw-based type scale. */ + container-type: size; + container-name: epr-frame; + } + + .epr-aside { + --epr-aside-pad-t: clamp(18px, 3vw, 34px); + --epr-aside-pad-b: clamp(24px, 3.5vw, 42px); + position: relative; + height: 100%; + min-width: 0; + min-height: 0; + padding: var(--epr-aside-pad-t) 0 var(--epr-aside-pad-b); + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #111111; + } + + .epr-aside-map { + position: absolute; + inset: 8% -22% 8% -28%; + z-index: 0; + opacity: 0.22; + pointer-events: none; + } + + .epr-aside-map canvas { + display: block; + } + + .epr-aside-content { + position: relative; + z-index: 1; + display: grid; + gap: clamp(18px, 2.2vw, 28px); + } + + .epr-aside-num { + position: relative; + font-size: clamp(164px, 17vw, 300px); + font-weight: 900; + line-height: 0.78; + letter-spacing: -0.06em; + color: transparent; + -webkit-text-stroke: 2px rgba(200, 16, 46, 0.2); + } + + .epr-aside-copy { + position: relative; + max-width: 12ch; + font-size: clamp(30px, 3.6vw, 56px); + font-weight: 800; + line-height: 0.98; + letter-spacing: -0.055em; + text-transform: uppercase; + color: #111111; + margin: 0; + } + + .epr-aside-copy em { + font-style: normal; + color: #c8102e; + } + + .epr-aside-desc { + position: relative; + max-width: 34ch; + font-size: 15.5px; + line-height: 1.65; + color: rgba(17, 17, 17, 0.58); + margin: 0; + } + + /* Constrained-frame fallback: the sticky frame is short (short + desktop viewport height), so the decorative ghost number/map + shrink first — spacing second — while the heading and paragraph + stay full size and fully visible, per spec. Placed after the base + .epr-aside-num/-content/-map rules so it wins the cascade at + matching container sizes (equal selector specificity; source + order decides). */ + @container epr-frame (max-height: 660px) { + .epr-aside { padding-top: clamp(12px, 1.8vw, 22px); padding-bottom: clamp(16px, 2.2vw, 26px); } + .epr-aside-content { gap: clamp(12px, 1.6vw, 20px); } + .epr-aside-num { font-size: clamp(90px, 11vw, 180px); } + } + + @container epr-frame (max-height: 560px) { + .epr-aside { padding-top: clamp(8px, 1.2vw, 14px); padding-bottom: clamp(10px, 1.6vw, 18px); } + .epr-aside-content { gap: clamp(6px, 1vw, 12px); } + .epr-aside-num { font-size: clamp(48px, 7vw, 100px); } + .epr-aside-map { opacity: 0.14; } + } + + .epr-list { + display: grid; + gap: clamp(28px, 4vw, 52px); + } + + .epr-row { + display: grid; + grid-template-columns: 110px minmax(0, 1fr); + gap: clamp(22px, 4vw, 58px); + padding-bottom: clamp(28px, 4vw, 52px); + border-bottom: 1px solid rgba(17, 17, 17, 0.14); + } + + .epr-row:nth-child(even) { + margin-left: clamp(0px, 7vw, 96px); + } + + .epr-row-index { + font-size: clamp(38px, 4.2vw, 62px); + font-weight: 900; + line-height: 1; + letter-spacing: -0.05em; + color: #c8102e; + } + + .epr-row-featured { + padding: clamp(28px, 4vw, 44px) clamp(24px, 3vw, 40px); + background: #09090b; + border-radius: 22px; + border-bottom: none; + margin-bottom: clamp(28px, 4vw, 52px); + } + + .epr-row-featured .epr-row-index { + color: rgba(255, 255, 255, 0.22); + -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.5); + } + + .epr-row-featured .epr-row-title { + font-size: clamp(32px, 4vw, 64px) !important; + color: #ffffff !important; + } + + .epr-row-featured .epr-row-desc { + color: rgba(255, 255, 255, 0.62); + } + + .epr-row-flag { + display: inline-block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.3px; + text-transform: uppercase; + color: #ffffff; + background: #c8102e; + padding: 6px 14px; + border-radius: 100px; + margin-bottom: 16px; + } + + .epr-row-type { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.7px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + margin-bottom: 14px; + } + + .epr-row-featured .epr-row-type { + color: rgba(255, 255, 255, 0.42); + } + + .epr-row-title { + font-size: clamp(28px, 3.4vw, 52px) !important; + font-weight: 800 !important; + letter-spacing: -0.045em !important; + line-height: 1.02 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0 0 14px 0; + } + + .epr-row-desc { + max-width: 660px; + font-size: 15.5px; + line-height: 1.65; + color: rgba(17, 17, 17, 0.58); + margin: 0; + } + + .epr-cta { + margin-top: clamp(48px, 6vw, 72px); + } + + .epr-cta-link { + display: inline-flex; + align-items: center; + gap: 10px; + font-size: 15px; + font-weight: 800; + color: #111111 !important; + text-decoration: none !important; + border-bottom: 1.5px solid rgba(17, 17, 17, 0.2); + padding-bottom: 5px; + transition: border-color 0.3s ease, color 0.3s ease; + } + + .epr-cta-link:hover { + color: #c8102e !important; + border-color: #c8102e; + } + + /* Laptop: sticky stays enabled, just a narrower gutter. */ + @media (max-width: 1180px) { + .epr-stage { grid-template-columns: minmax(220px, 0.34fr) minmax(0, 0.66fr); gap: clamp(28px, 4vw, 46px); } + .epr-row:nth-child(even) { margin-left: 0; } + } + + /* Tablet: sticky disabled — the aside scrolls in normal flow instead + of pinning, since there's no longer enough vertical runway next to + the (now narrower, shorter) program list for pinning to read well. */ + @media (max-width: 1023px) { + .epr-aside-sticky { + position: relative; + top: auto; + height: auto; + container-type: normal; + } + } + + @media (max-width: 767px) { + .epr-stage { grid-template-columns: 1fr; } + .epr-aside { + position: relative; + top: auto; + min-height: 300px; + padding-top: 4px; + padding-bottom: clamp(24px, 7vw, 38px); + } + .epr-aside-map { + inset: -8% -18% 0 -20%; + opacity: 0.18; + } + .epr-aside-content { + gap: 20px; + } + .epr-aside-num { + font-size: clamp(128px, 34vw, 180px); + } + .epr-aside-copy { + max-width: 11ch; + font-size: clamp(34px, 10vw, 48px); + } + .epr-aside-desc { + max-width: 32ch; + font-size: 14.5px; + } + } + + @media (max-width: 640px) { + .epr-section { padding-top: 28px; padding-bottom: 54px; } + .epr-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .epr-row-title { + font-size: clamp(27px, 8.5vw, 36px) !important; + overflow-wrap: anywhere; + } + .epr-row { grid-template-columns: 1fr; gap: 12px; } + } + 11:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$25"}}],"$L26"] +27:Te98, + .eim-section { + position: relative; + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto; + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + background: #09090b; + padding: clamp(64px, 8vw, 100px) clamp(24px, 5vw, 48px); + } + + .eim-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + } + + .eim-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: #c8102e; + margin-bottom: 20px; + } + + .eim-title { + font-size: clamp(28px, 3.4vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0 0 clamp(32px, 4vw, 48px) 0; + } + + .eim-divider { + border: none; + border-top: 1px solid rgba(255, 255, 255, 0.12); + margin: 0 0 clamp(40px, 5vw, 56px) 0; + } + + .eim-hero-row { + display: flex; + align-items: flex-end; + gap: clamp(20px, 3vw, 36px); + margin-bottom: clamp(48px, 6vw, 72px); + } + + .eim-hero-num { + font-size: clamp(90px, 13vw, 190px); + font-weight: 800; + line-height: 0.85; + letter-spacing: -0.03em; + color: transparent; + -webkit-text-stroke: 2px #c8102e; + } + + .eim-hero-label { + font-size: 13px; + font-weight: 700; + letter-spacing: 1.5px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.55); + max-width: 90px; + line-height: 1.4; + padding-bottom: clamp(12px, 1.5vw, 24px); + } + + .eim-divider-2 { + border: none; + border-top: 1px solid rgba(255, 255, 255, 0.12); + margin: 0 0 clamp(40px, 5vw, 56px) 0; + } + + .eim-secondary-row { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .eim-secondary-item { + padding-right: 24px; + border-left: 1px solid rgba(255, 255, 255, 0.12); + padding-left: 24px; + } + + .eim-secondary-item:first-child { + border-left: none; + padding-left: 0; + } + + .eim-secondary-num { + display: block; + font-size: clamp(32px, 3vw, 44px); + font-weight: 800; + color: #ff5470; + letter-spacing: -0.02em; + margin-bottom: 10px; + } + + .eim-secondary-label { + font-size: 13px; + font-weight: 600; + color: rgba(255, 255, 255, 0.5); + line-height: 1.4; + } + + .eim-copy { + max-width: 720px; + margin-top: clamp(48px, 6vw, 72px); + font-size: 15.5px; + line-height: 1.7; + color: rgba(255, 255, 255, 0.55); + } + + @media (max-width: 1024px) { + .eim-section { width: calc(100% - 24px); border-radius: 22px; } + } + + @media (max-width: 700px) { + .eim-hero-row { align-items: flex-start; flex-direction: column; gap: 12px; } + .eim-hero-label { padding-bottom: 0; max-width: none; } + .eim-secondary-row { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; } + .eim-secondary-item:nth-child(3) { border-left: none; padding-left: 0; } + } + + @media (max-width: 460px) { + .eim-section { padding-top: 48px; padding-bottom: 48px; } + } + 12:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$27"}}],"$L28"] +29:T1f91, + .ehw-section { + background: #ffffff; + padding: var(--space-section-lg, 80px) 0 calc(var(--space-section-lg, 80px) + 32px) 0; + overflow: hidden; + } + + .ehw-inner { + max-width: 1380px; + margin: 0 auto; + } + + .ehw-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(126px, calc(7vw + 60px), 172px); + } + + .ehw-head-reveal { + width: 100%; + } + + .ehw-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .ehw-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .ehw-title { + max-width: 820px; + font-size: clamp(32px, 4vw, 54px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.08 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 !important; + } + + /* ---------------------------------------------------------------- + Premium editorial process row: five milestones in a single + sequence, separated by thin hairline dividers (no cards, no + shadows, no boxed containers). One flex-wrap sequence with + responsive flex-basis handles the composition at every size — + 5-across on desktop, 3 + 2 (centered) on tablet, a single + vertical column on mobile — from one shared markup. + ---------------------------------------------------------------- */ + .ehw-sequence { + display: flex; + flex-wrap: wrap; + justify-content: center; + --ehw-gap: clamp(24px, 2.6vw, 48px); + column-gap: var(--ehw-gap); + row-gap: clamp(48px, 6vw, 84px); + } + + .ehw-step { + position: relative; + flex: 0 1 calc((100% - 4 * var(--ehw-gap)) / 5); + min-width: 168px; + padding-left: clamp(20px, 2vw, 32px); + border-left: 1px solid rgba(17, 17, 17, 0.14); + transition: border-color 0.3s ease; + } + + .ehw-step:first-child { + border-left: none; + padding-left: 0; + } + + .ehw-step:hover { + border-left-color: rgba(200, 16, 46, 0.4); + } + + .ehw-step-num { + font-size: clamp(48px, 4.6vw, 78px); + font-weight: 900; + line-height: 0.84; + letter-spacing: -0.03em; + color: transparent; + -webkit-text-stroke: 1.5px rgba(17, 17, 17, 0.24); + margin: 0 0 18px 0; + transition: -webkit-text-stroke-color 0.3s ease; + } + + .ehw-step.is-accent .ehw-step-num { + -webkit-text-stroke: 1.5px rgba(200, 16, 46, 0.58); + } + + .ehw-step-kicker { + display: flex; + align-items: center; + gap: 7px; + margin-bottom: 18px; + } + + .ehw-step-kicker svg { + width: 13px; + height: 13px; + color: rgba(17, 17, 17, 0.36); + flex-shrink: 0; + } + + .ehw-step-kicker span { + font-size: 11px; + font-weight: 800; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.4); + } + + .ehw-step.is-accent .ehw-step-kicker svg, + .ehw-step.is-accent .ehw-step-kicker span { + color: #c8102e; + } + + .ehw-step-title { + font-size: clamp(18px, 1.4vw, 22px) !important; + font-weight: 800 !important; + letter-spacing: -0.02em !important; + line-height: 1.2 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 0 22px 0; + } + + .ehw-step-desc { + max-width: 27ch; + font-size: 14px; + line-height: 1.6; + color: rgba(17, 17, 17, 0.55); + margin: 0; + } + + /* Tablet: 3 + 2, centered — sever the divider at the start of each row. */ + @media (max-width: 1100px) { + .ehw-step { + flex-basis: calc((100% - 2 * var(--ehw-gap)) / 3); + } + .ehw-step:nth-child(4) { + border-left: none; + padding-left: 0; + } + } + + /* Mobile: compact numbered editorial index — number in a narrow + left column, title/description/divider sharing one right + content column, laid out on the existing milestone markup via + CSS Grid (no duplicated JSX, no new step markup). */ + @media (max-width: 640px) { + .ehw-head { + margin-bottom: clamp(40px, 10vw, 56px); + } + + .ehw-sequence { + row-gap: 0; + } + + .ehw-step { + display: grid; + grid-template-columns: 48px minmax(0, 1fr); + column-gap: 14px; + flex-basis: 100%; + padding-left: 0; + padding-top: clamp(28px, 8vw, 36px); + border-left: none; + border-top: none; + } + + .ehw-step:first-child { + padding-top: 0; + } + + /* Compact solid index number — replaces the oversized pale + outline treatment used on desktop/tablet. */ + .ehw-step-num { + grid-column: 1; + grid-row: 1; + align-self: start; + font-size: clamp(32px, 9vw, 40px); + line-height: 1; + color: #c8102e; + -webkit-text-stroke: 0; + margin: 0; + } + + /* Hidden completely — no reserved gap left in its place since a + display:none grid item takes no track space. */ + .ehw-step-kicker { + display: none; + } + + .ehw-step-title { + grid-column: 2; + grid-row: 1; + font-size: clamp(22px, 6vw, 26px) !important; + } + + .ehw-step-desc { + grid-column: 2; + grid-row: 2; + max-width: none; + font-size: 16px; + } + + /* Divider lives inside the description box (content column + only), so it never runs underneath the number column. */ + .ehw-step-desc::after { + content: ""; + display: block; + margin-top: clamp(24px, 6vw, 28px); + height: 1px; + background-color: rgba(17, 17, 17, 0.14); + } + + .ehw-step:last-child .ehw-step-desc::after { + display: none; + } + } + + /* ---- Mobile title-to-description gap fix ---- + .ehw-step-title is an

, so it's matched by a global, + unscoped site.css rule (.logico-front-end h3:not(...) { margin: + 0 0 30px }) that outranks this component's own single-class + ".ehw-step-title { margin: 0 0 22px }" by specificity — bumping + the real margin-bottom to 30px everywhere, not just here. There + is no min-height, space-between, or fixed row height anywhere in + this component; the gap is purely that extra 8px of margin + reading as oversized once every other element around it (kicker, + description line-height) is tightly spaced. Overridden with + !important, matching how every other property on this selector + already has to defeat the same global rule. Scoped to mobile + only, per spec — desktop/tablet are left exactly as they were + (still resolving to the global 30px; out of scope here). */ + @media (max-width: 767px) { + .ehw-step-title { + margin-bottom: 16px !important; + } + } + + @media (max-width: 480px) { + .ehw-section { padding-top: 48px; padding-bottom: 68px; } + } + 13:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$29"}}],"$L2a"] +2b:T1df1, + .est-section { + position: relative; + background: #ffffff; + padding-top: clamp(24px, 3vw, 48px); + padding-bottom: clamp(78px, 9vw, 132px); + overflow: hidden; + } + + .est-inner { + max-width: 1380px; + margin: 0 auto; + } + + .est-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(54px, 7vw, 86px); + } + + .est-head-reveal { + width: 100%; + } + + .est-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .est-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .est-title { + max-width: 940px; + font-size: clamp(42px, 6.3vw, 90px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0; + } + + .est-feature { + display: grid; + grid-template-columns: minmax(0, 0.94fr) minmax(340px, 0.64fr); + gap: clamp(28px, 4vw, 62px); + align-items: stretch; + margin-bottom: clamp(44px, 6vw, 76px); + } + + .est-photo { + position: relative; + min-height: clamp(460px, 48vw, 680px); + border-radius: 26px; + overflow: hidden; + background: #09090b; + } + + .est-photo img { + object-fit: cover; + object-position: center; + } + + .est-photo::after { + content: ""; + position: absolute; + inset: 0; + background: linear-gradient(180deg, rgba(9, 9, 11, 0) 34%, rgba(9, 9, 11, 0.72) 100%); + pointer-events: none; + } + + .est-photo-caption { + position: absolute; + left: clamp(24px, 3vw, 42px); + right: clamp(24px, 3vw, 42px); + bottom: clamp(24px, 3vw, 42px); + z-index: 1; + color: #ffffff; + } + + .est-photo-caption span { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.7px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.6); + margin-bottom: 8px; + } + + .est-photo-caption strong { + display: block; + font-size: clamp(24px, 3vw, 42px); + font-weight: 900; + line-height: 1.02; + letter-spacing: -0.04em; + } + + .est-copy { + border-radius: 26px; + background: #09090b; + color: #ffffff; + padding: clamp(34px, 5vw, 62px); + display: flex; + flex-direction: column; + justify-content: space-between; + overflow: hidden; + position: relative; + } + + .est-copy::before { + content: ""; + position: absolute; + width: 320px; + height: 320px; + right: -120px; + top: -120px; + background: radial-gradient(circle, rgba(200, 16, 46, 0.42), transparent 68%); + pointer-events: none; + } + + .est-quote-mark { + position: relative; + font-family: Georgia, serif; + font-size: 92px; + line-height: 0.8; + color: #c8102e; + display: block; + margin-bottom: 20px; + } + + .est-quote-text { + position: relative; + font-size: clamp(25px, 3vw, 44px); + font-weight: 800; + line-height: 1.12; + letter-spacing: -0.04em; + color: #ffffff; + margin: 0 0 28px 0; + } + + .est-narrative { + position: relative; + font-size: 15.5px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.66); + margin: 0; + max-width: 46ch; + } + + .est-person { + position: relative; + padding-top: clamp(38px, 5vw, 64px); + } + + .est-person-name { + font-size: 18px; + font-weight: 900; + color: #ffffff; + } + + .est-person-role { + font-size: 13.5px; + color: rgba(255, 255, 255, 0.52); + margin-top: 3px; + } + + .est-list-label { + font-size: 12px; + font-weight: 800; + letter-spacing: 1.8px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + padding-top: clamp(24px, 3vw, 38px); + border-top: 1px solid rgba(17, 17, 17, 0.14); + margin-bottom: clamp(20px, 3vw, 30px); + } + + .est-list { + display: flex; + gap: 18px; + overflow-x: auto; + scroll-snap-type: x mandatory; + padding-bottom: 12px; + margin-bottom: clamp(6px, 1vw, 10px); + -webkit-overflow-scrolling: touch; + } + + .est-list::-webkit-scrollbar { + height: 4px; + } + + .est-list::-webkit-scrollbar-thumb { + background: rgba(17, 17, 17, 0.18); + border-radius: 100px; + } + + .est-row { + scroll-snap-align: start; + flex: 0 0 clamp(260px, 30vw, 340px); + min-height: 220px; + padding: clamp(24px, 2.6vw, 32px); + border: 1px solid rgba(17, 17, 17, 0.14); + border-radius: 20px; + display: flex; + flex-direction: column; + justify-content: space-between; + transition: border-color 0.3s ease, transform 0.3s ease; + } + + .est-row:hover { + border-color: rgba(200, 16, 46, 0.4); + transform: translateY(-4px); + } + + .est-row-name { + font-size: 20px; + font-weight: 900; + color: #111111; + } + + .est-row-role { + font-size: 13px; + font-weight: 800; + letter-spacing: 1.4px; + text-transform: uppercase; + color: #c8102e; + margin-top: 6px; + } + + .est-row-line { + font-size: 15px; + line-height: 1.6; + color: rgba(17, 17, 17, 0.62); + margin: 28px 0 0; + } + + @media (max-width: 1000px) { + .est-head, + .est-feature { grid-template-columns: 1fr; } + .est-row { + min-height: 0; + flex-basis: 78vw; + } + } + + @media (max-width: 640px) { + .est-section { padding-top: 54px; padding-bottom: 6px; } + /* .est-feature's margin-bottom (clamp(44px, 6vw, 76px)) was sized + to precede an .est-list testimonial row block that no longer + exists in this component's JSX. Since .est-feature is now the + section's last child, that margin was pure dead space stacking + on top of .est-section's own padding-bottom above — the real + source of the oversized mobile gap before the next section. */ + .est-feature { margin-bottom: 0; } + .est-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .est-quote-text { + font-size: clamp(25px, 8vw, 34px); + overflow-wrap: anywhere; + } + .est-photo, + .est-copy { border-radius: 20px; } + .est-photo { min-height: 420px; } + } + 14:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2b"}}],"$L2c"] +2d:T16dc, + .epn-section { + position: relative; + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto; + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + background: #09090b; + padding: clamp(68px, 8vw, 112px) 0; + } + + .epn-section::before { + content: ""; + position: absolute; + inset: 0; + background: + linear-gradient(120deg, rgba(9, 9, 11, 0.98) 0%, rgba(9, 9, 11, 0.88) 54%, rgba(192, 18, 39, 0.18) 100%), + url("/images/wings-heroslider3.png"); + background-size: cover; + background-position: center 70%; + opacity: 1; + } + + .epn-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + } + + .epn-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(50px, 7vw, 84px); + } + + .epn-head-reveal { + width: 100%; + } + + .epn-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(255, 255, 255, 0.16); + } + + .epn-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.52); + } + + .epn-title { + max-width: 930px; + font-size: clamp(42px, 6.3vw, 90px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #ffffff !important; + margin: 0; + } + + .epn-title em { + color: #ff5470; + font-style: normal; + } + + .epn-body { + display: grid; + grid-template-columns: minmax(280px, 0.46fr) minmax(0, 1fr); + gap: clamp(32px, 5vw, 72px); + align-items: stretch; + } + + .epn-manifesto { + border-left: 4px solid #c8102e; + padding-left: clamp(22px, 3vw, 36px); + align-self: start; + } + + .epn-intro { + font-size: clamp(22px, 2.5vw, 36px); + font-weight: 800; + line-height: 1.12; + letter-spacing: -0.035em; + color: #ffffff; + margin: 0 0 22px; + } + + .epn-note { + font-size: 15.5px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.62); + margin: 0; + max-width: 38ch; + } + + .epn-grid { + display: flex; + flex-direction: column; + border-top: 1px solid rgba(255, 255, 255, 0.16); + } + + .epn-card { + position: relative; + display: grid; + grid-template-columns: 70px minmax(0, 1fr) 32px; + align-items: center; + gap: clamp(18px, 3vw, 40px); + padding: clamp(22px, 2.6vw, 32px) clamp(4px, 1vw, 16px); + border-bottom: 1px solid rgba(255, 255, 255, 0.16); + border-left: 2px solid transparent; + transition: border-color 0.3s ease, padding-left 0.3s ease, background-color 0.3s ease; + } + + .epn-card:hover { + border-left-color: #c8102e; + background: rgba(200, 16, 46, 0.06); + padding-left: clamp(20px, 2.5vw, 32px); + } + + .epn-card-index { + font-size: 15px; + font-weight: 900; + color: rgba(255, 255, 255, 0.35); + } + + .epn-card-title { + font-size: clamp(22px, 2.2vw, 30px) !important; + font-weight: 900 !important; + line-height: 1.1 !important; + letter-spacing: -0.03em !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0 0 8px; + } + + .epn-card-desc { + max-width: 46ch; + font-size: 14.5px; + line-height: 1.6; + color: rgba(255, 255, 255, 0.58); + margin: 0; + } + + .epn-card-arrow { + display: flex; + color: rgba(255, 255, 255, 0.3); + transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s ease; + } + + .epn-card:hover .epn-card-arrow { + transform: translateX(4px); + color: #ff5470; + } + + .epn-cta { + margin-top: clamp(42px, 5vw, 64px); + } + + .epn-cta-btn { + display: inline-flex; + align-items: center; + gap: 10px; + padding: 16px 36px; + border-radius: 100px; + background: #c01227; + color: #ffffff !important; + font-weight: 800; + font-size: 15px; + text-decoration: none !important; + transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease; + } + + .epn-cta-btn:hover { + transform: translateY(-3px); + box-shadow: 0 14px 30px rgba(192, 18, 39, 0.35); + } + + @media (max-width: 1024px) { + .epn-section { width: calc(100% - 24px); border-radius: 22px; } + } + + @media (max-width: 900px) { + .epn-head, + .epn-body { grid-template-columns: 1fr; } + } + + @media (max-width: 700px) { + .epn-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .epn-card { + grid-template-columns: 44px minmax(0, 1fr); + } + .epn-card-arrow { display: none; } + } + + @media (max-width: 460px) { + .epn-section { padding-top: 54px; padding-bottom: 54px; } + } + 15:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2d"}}],"$L2e"] +2f:Tdad, + .emp-cta-wrap { + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto clamp(40px, 5vw, 64px); + } + + .emp-cta { + position: relative; + overflow: hidden; + border-radius: 28px; + min-height: clamp(480px, 48vw, 680px); + background: #09090b; + display: flex; + align-items: flex-end; + } + + .emp-cta::before { + content: ""; + position: absolute; + inset: 0; + background-image: + linear-gradient(180deg, rgba(9, 9, 11, 0.18) 0%, rgba(9, 9, 11, 0.52) 48%, rgba(9, 9, 11, 0.96) 100%), + linear-gradient(90deg, rgba(9, 9, 11, 0.88) 0%, rgba(9, 9, 11, 0.35) 58%, rgba(9, 9, 11, 0.12) 100%), + url("/images/bg-header-women.webp"); + background-size: cover; + background-position: center; + transform: scale(1.02); + } + + .emp-cta-inner { + position: relative; + z-index: 1; + max-width: 1380px; + width: 100%; + margin: 0 auto; + padding: clamp(46px, 7vw, 88px) clamp(24px, 5vw, 64px); + box-sizing: border-box; + } + + .emp-cta-recap { + display: flex; + gap: clamp(28px, 4vw, 52px); + margin-bottom: clamp(28px, 4vw, 44px); + padding-bottom: clamp(24px, 3vw, 36px); + border-bottom: 1px solid rgba(255, 255, 255, 0.16); + } + + .emp-cta-recap-item { + display: flex; + align-items: baseline; + gap: 10px; + } + + .emp-cta-recap-num { + font-size: clamp(22px, 2.4vw, 32px); + font-weight: 900; + letter-spacing: -0.02em; + color: transparent; + -webkit-text-stroke: 1.3px rgba(255, 255, 255, 0.85); + } + + .emp-cta-recap-label { + font-size: 12px; + font-weight: 700; + letter-spacing: 0.6px; + color: rgba(255, 255, 255, 0.5); + } + + .emp-cta-kicker { + font-size: 13px; + font-weight: 900; + letter-spacing: 2.4px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 22px; + } + + .emp-cta-title { + max-width: 980px; + color: #ffffff !important; + font-size: clamp(44px, 7vw, 108px) !important; + font-weight: 900 !important; + line-height: 0.95 !important; + letter-spacing: -0.06em !important; + text-transform: uppercase !important; + margin: 0 0 clamp(24px, 3vw, 34px); + } + + .emp-cta-title em { + color: #ff5470; + font-style: normal; + } + + .emp-cta-bottom { + display: block; + max-width: 1120px; + } + + .emp-cta-sub { + max-width: 620px; + font-size: 16px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.68); + margin: 0; + } + + @media (max-width: 1024px) { + .emp-cta-wrap { width: calc(100% - 24px); } + .emp-cta { border-radius: 22px; } + } + + @media (max-width: 760px) { + .emp-cta { min-height: 600px; } + .emp-cta::before { background-position: 76% center; } + .emp-cta-title { + font-size: clamp(36px, 11vw, 44px) !important; + letter-spacing: -0.05em !important; + overflow-wrap: anywhere; + } + .emp-cta-recap { flex-wrap: wrap; row-gap: 14px; } + } + 16:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2f"}}],"$L30"] +17:["$","script","script-0",{"src":"/_next/static/chunks/0vzdvje64yndv.js","async":true,"nonce":"$undefined"}] +18:["$","$L31",null,{"children":["$","$32",null,{"name":"Next.MetadataOutlet","children":"$@33"}]}] +34:[] +19:"$W34" +1a:["$","$1","h",{"children":[null,["$","$L35",null,{"children":"$L36"}],["$","div",null,{"hidden":true,"children":["$","$L37",null,{"children":["$","$32",null,{"name":"Next.Metadata","children":"$L38"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +1c:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +39:I[5074,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"default"] +3c:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],""] +3e:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"CountUp"] +3f:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"StaggerChildren"] +40:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"Image"] +20:["$","section",null,{"className":"ev-section","id":"wings-empowerment-vision","children":[["$","div",null,{"className":"ev-map","aria-hidden":"true","children":["$","$L39",null,{}]}],["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"ev-inner","children":[["$","$L1d",null,{"delay":0.05,"duration":0.7,"yOffset":20,"children":[["$","p",null,{"className":"ev-eyebrow","children":"/ Our Vision /"}],["$","hr",null,{"className":"ev-divider"}]]}],["$","$L1d",null,{"delay":0.12,"duration":0.85,"yOffset":30,"children":["$","h2",null,{"className":"ev-title","children":"Women Own The Future."}]}],["$","div",null,{"className":"ev-columns","children":[["$","$L1d",null,{"delay":0.18,"duration":0.8,"yOffset":25,"children":["$","p",null,{"className":"ev-statement","children":"A logistics ecosystem where women don’t just participate — they own, build, and lead."}]}],["$","$L1d",null,{"delay":0.26,"duration":0.8,"yOffset":25,"className":"ev-support","children":[["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"The vision"}],["$","p",null,{"className":"ev-lead","children":"We are building an entrepreneurial ecosystem where women launch enterprises, scale operations, and shape the future of logistics from the inside."}]]}],["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"Why it matters"}],["$","p",null,{"className":"ev-note","children":"Industries transform when founders emerge from every corner. Women-led enterprises bring fresh perspective, operational resilience, and long-term economic impact to logistics."}]]}],["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"How Wings contributes"}],["$","p",null,{"className":"ev-note","children":"Wings provides the infrastructure — strategic partnerships, funding access, founder networks, and industry connections — that turns ambition into enterprise."}]]}]]}]]}]]}]}]]}] +22:["$","section",null,{"className":"esy-section","id":"wings-empowerment-story","children":[["$","div",null,{"className":"esy-bg","aria-hidden":"true"}],["$","div",null,{"className":"esy-inner dm-section-container","children":[["$","$L1d",null,{"delay":0.05,"duration":0.85,"yOffset":25,"children":[["$","div",null,{"className":"esy-eyebrow","children":"/ Our Approach /"}],["$","p",null,{"className":"esy-statement","children":["Not a program on a brochure. ",["$","em",null,{"children":"An ecosystem women can build in."}]]}]]}],["$","$L1d",null,{"delay":0.15,"duration":0.8,"yOffset":25,"className":"esy-side","children":[["$","span",null,{"className":"esy-label","children":"Manifesto"}],["$","p",null,{"className":"esy-pull","children":"A venture that starts with conviction. A network that turns it into momentum."}],["$","p",null,{"className":"esy-sub","children":"Wings is designed around the moments that define a founder: the first partnership signed, the first client won, the first team hired, the first enterprise scaled."}]]}]]}]]}] +24:["$","div",null,{"id":"women-entrepreneurship","className":"elementor-element elementor-element-bbc6760 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"bbc6760","data-element_type":"container","data-e-type":"container","style":{"backgroundColor":"#1f1f1f","width":"calc(100% - 40px)","marginLeft":"20px","marginRight":"20px","borderRadius":"25px"},"children":[["$","div",null,{"className":"elementor-element elementor-element-13a7637 elementor-widget__width-auto elementor-absolute elementor-widget elementor-widget-logico_decorative_block","data-id":"13a7637","data-element_type":"widget","data-e-type":"widget","style":{"position":"absolute"},"children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"block-decoration animation-enable block-decoration-style-1","children":["$","div",null,{"className":"block-decoration-item"}]}]}]}],["$","div",null,{"style":{"backgroundImage":"url(/images/bg-header-women.webp)"},"className":"elementor-element elementor-element-7da6646 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"7da6646","data-element_type":"container","data-e-type":"container"}],["$","div",null,{"className":"elementor-element elementor-element-8b5d6e6 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"8b5d6e6","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-1f766ea e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"1f766ea","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-3b61435 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3b61435","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":[["$","div",null,{"className":"elementor-element elementor-element-c364d1c elementor-widget elementor-widget-text-editor","data-id":"c364d1c","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","p",null,{"children":"01"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-239afbb elementor-widget elementor-widget-logico_heading","data-id":"239afbb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h5",null,{"className":"logico-title","children":"Women Entrepreneurship"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-0d307dd elementor-widget elementor-widget-text-editor","data-id":"0d307dd","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","p",null,{"children":"An ecosystem where women build, own, and scale enterprises across logistics."}]}]}]]}],["$","div",null,{"className":"elementor-element elementor-element-5aea22e e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5aea22e","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":["$","div",null,{"className":"elementor-element elementor-element-46b9ffa elementor-widget elementor-widget-logico_button","data-id":"46b9ffa","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"button-widget","children":["$","div",null,{"className":"button-container","children":["$","a",null,{"href":"#wings-empowerment-programs","className":"logico-small-button","children":["Explore the ecosystem",["$","svg",null,{"viewBox":"0 0 13 20","children":"$L3a"}]]}]}]}]}]}]}]]}]}],"$L3b"]}] +26:["$","section",null,{"className":"epr-section","id":"wings-empowerment-programs","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"epr-inner","children":[["$","div",null,{"className":"epr-head","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"epr-head-reveal","children":[["$","div",null,{"className":"epr-eyebrow","children":"/ Entrepreneurship Pillars /"}],["$","hr",null,{"className":"epr-divider"}]]}],["$","$L1d",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"epr-title","children":"Every pillar is built around ownership."}]}]]}],["$","div",null,{"className":"epr-stage","children":[["$","div",null,{"className":"epr-aside-wrap","children":["$","div",null,{"className":"epr-aside-sticky","children":["$","aside",null,{"className":"epr-aside","children":[["$","div",null,{"className":"epr-aside-map","aria-hidden":"true","children":["$","$L39",null,{}]}],["$","$L1d",null,{"delay":0.05,"duration":0.8,"yOffset":24,"className":"epr-aside-content","children":[["$","div",null,{"className":"epr-aside-num","children":"05"}],["$","p",null,{"className":"epr-aside-copy","children":["Building tomorrow’s ",["$","em",null,{"children":"women entrepreneurs."}]]}],["$","p",null,{"className":"epr-aside-desc","children":"Every enterprise starts with one decision. Our pillars move women from idea to ownership through mentorship, real industry partnerships, and hands-on venture building across the logistics ecosystem."}]]}]]}]}]}],["$","div",null,{"children":[["$","$L1d",null,{"delay":0.1,"duration":0.8,"yOffset":24,"children":["$","div",null,{"className":"epr-list","children":[["$","article","Venture Launchpad",{"className":"epr-row epr-row-featured","children":[["$","div",null,{"className":"epr-row-index","children":"01"}],["$","div",null,{"children":[["$","span",null,{"className":"epr-row-flag","children":"Where most founders begin"}],["$","span",null,{"className":"epr-row-type","children":"Start building"}],["$","h3",null,{"className":"epr-row-title","children":"Venture Launchpad"}],["$","p",null,{"className":"epr-row-desc","children":"Business model validation, market entry strategy, entity formation, and go-to-market execution for women-led logistics enterprises."}]]}]]}],["$","article","Strategic Partnerships",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"02"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Connect and grow"}],["$","h3",null,{"className":"epr-row-title","children":"Strategic Partnerships"}],["$","p",null,{"className":"epr-row-desc","children":"Direct access to supply chain networks, B2B relationships, industry alliances, and commercial agreements that accelerate growth."}]]}]]}],["$","article","Founder Mentorship",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"03"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Learn from builders"}],["$","h3",null,{"className":"epr-row-title","children":"Founder Mentorship"}],["$","p",null,{"className":"epr-row-desc","children":"One-on-one guidance from established entrepreneurs, operators, and investors who understand what it takes to scale."}]]}]]}],["$","article","Growth & Scale",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"04"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Scale with confidence"}],["$","h3",null,{"className":"epr-row-title","children":"Growth & Scale"}],["$","p",null,{"className":"epr-row-desc","children":"Operational expansion frameworks, team building, funding readiness, and sustainable unit economics for ventures ready to grow."}]]}]]}],["$","article","Industry Immersion",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"05"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"See the opportunity"}],["$","h3",null,{"className":"epr-row-title","children":"Industry Immersion"}],["$","p",null,{"className":"epr-row-desc","children":"Real exposure to logistics operations, supply chain infrastructure, and distribution networks before founders commit to a vertical."}]]}]]}]]}]}],["$","div",null,{"className":"epr-cta","children":["$","$L3c",null,{"href":"/contact","className":"epr-cta-link","children":["Start your venture","$L3d"]}]}]]}]]}]]}]}]}] +28:["$","section",null,{"className":"eim-section","id":"wings-empowerment-impact","children":["$","div",null,{"className":"eim-inner dm-section-container","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"children":[["$","div",null,{"className":"eim-eyebrow","children":"/ Our Impact /"}],["$","h2",null,{"className":"eim-title","children":"Growth we can measure"}]]}],["$","hr",null,{"className":"eim-divider"}],["$","$L1d",null,{"delay":0.08,"duration":0.8,"yOffset":20,"className":"eim-hero-row","children":[["$","span",null,{"className":"eim-hero-num","children":["$","$L3e",null,{"end":500,"suffix":"+","duration":2.2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-hero-label","children":"Women-Led Enterprises In The Ecosystem"}]]}],["$","hr",null,{"className":"eim-divider-2"}],["$","$L1d",null,{"delay":0.1,"duration":0.8,"yOffset":20,"children":["$","div",null,{"className":"eim-secondary-row","children":[["$","div","Enterprises Launched",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L3e",null,{"end":100,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Enterprises Launched"}]]}],["$","div","Industry Partners",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L3e",null,{"end":25,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Industry Partners"}]]}],["$","div","Cities Active",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L3e",null,{"end":15,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Cities Active"}]]}],["$","div","In Economic Value Created",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":"Millions"}],["$","span",null,{"className":"eim-secondary-label","children":"In Economic Value Created"}]]}]]}]}],["$","$L1d",null,{"delay":0.12,"duration":0.75,"yOffset":20,"className":"eim-copy","children":["$","p",null,{"children":"Every number on this page represents a woman who walked into a room with an idea and walked out with a business. An enterprise launched, a partnership secured, a market entered — each is a marker of real economic impact, not a statistic collected for its own sake."}]}]]}]}] +2a:["$","section",null,{"className":"ehw-section","id":"wings-empowerment-how-it-works","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"ehw-inner","children":[["$","div",null,{"className":"ehw-head","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"ehw-head-reveal","children":[["$","div",null,{"className":"ehw-eyebrow","children":"/ The Founder Journey /"}],["$","hr",null,{"className":"ehw-divider"}]]}],["$","$L1d",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"ehw-title","children":"A clear path, from idea to enterprise"}]}]]}],["$","$L3f",null,{"className":"ehw-sequence","stagger":0.12,"duration":0.7,"yOffset":30,"triggerOnce":true,"children":[["$","div","01",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"01"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Apply"}],["$","p",null,{"className":"ehw-step-desc","children":"Submit your venture idea and tell us about your entrepreneurial vision."}]]}],["$","div","02",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"02"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Discovery"}],["$","p",null,{"className":"ehw-step-desc","children":"Identify the right market opportunity and validate your business model."}]]}],["$","div","03",{"className":"ehw-step is-accent","children":[["$","div",null,{"className":"ehw-step-num","children":"03"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Build"}],["$","p",null,{"className":"ehw-step-desc","children":"Develop your enterprise with ecosystem support, mentorship, and partnerships."}]]}],["$","div","04",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"04"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Launch"}],["$","p",null,{"className":"ehw-step-desc","children":"Go to market with strategic backing, industry connections, and operational infrastructure."}]]}],["$","div","05",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"05"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Scale"}],["$","p",null,{"className":"ehw-step-desc","children":"Grow your team, expand operations, and lead your enterprise to sustainable impact."}]]}]]}]]}]}]}] +2c:["$","section",null,{"className":"est-section","id":"wings-empowerment-stories","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"est-inner","children":[["$","div",null,{"className":"est-head","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"est-head-reveal","children":[["$","div",null,{"className":"est-eyebrow","children":"/ Women in Motion /"}],["$","hr",null,{"className":"est-divider"}]]}],["$","$L1d",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"est-title","children":"Small steps. Lasting careers."}]}]]}],["$","div",null,{"className":"est-feature","children":[["$","$L1d",null,{"delay":0.05,"duration":0.85,"yOffset":24,"className":"est-photo","children":[["$","$L40",null,{"src":"/images/women-hero-slider-3.png","alt":"A Wings program participant on the operations floor at a Doormile logistics hub","fill":true,"sizes":"(max-width: 1000px) 100vw, 58vw","style":{"objectPosition":"80% 22%"}}],["$","div",null,{"className":"est-photo-caption","children":[["$","span",null,{"children":"Wings Participant"}],["$","strong",null,{"children":" building a career, one milestone at a time."}]]}]]}],["$","$L1d",null,{"delay":0.12,"duration":0.85,"yOffset":24,"className":"est-copy","children":["$","div",null,{"children":[["$","span",null,{"className":"est-quote-mark","aria-hidden":"true","children":"“"}],["$","p",null,{"className":"est-quote-text","children":"I came in looking for a way forward. I found the confidence to lead."}],["$","p",null,{"className":"est-narrative","children":"She started with limited exposure to logistics. Through structured training, mentorship, and hands-on experience, she built real operational skills — and now supports other women stepping into the industry."}]]}]}]]}]]}]}]}] +2e:["$","section",null,{"className":"epn-section","id":"wings-empowerment-partners","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"epn-inner","children":[["$","div",null,{"className":"epn-head","children":[["$","$L1d",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"epn-head-reveal","children":[["$","div",null,{"className":"epn-eyebrow","children":"/ Collaboration /"}],["$","hr",null,{"className":"epn-divider"}]]}],["$","$L1d",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"epn-title","children":["Partnership is how ",["$","em",null,{"children":"ecosystems grow."}]]}]}]]}],["$","div",null,{"className":"epn-body","children":[["$","$L1d",null,{"delay":0.08,"duration":0.8,"yOffset":22,"className":"epn-manifesto","children":[["$","p",null,{"className":"epn-intro","children":"The strongest ecosystems are built by many hands."}],["$","p",null,{"className":"epn-note","children":"Wings partners bring industry access, strategic infrastructure, capital, and networks. Together, we build the foundation women-led enterprises need to thrive."}]]}],["$","$L1d",null,{"delay":0.12,"duration":0.8,"yOffset":22,"children":["$","div",null,{"className":"epn-grid","children":[["$","article","Industry Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"01"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Industry Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Strategic alliances with logistics operators, supply chain leaders, and distribution networks that open doors for women-led enterprises."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Technology Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"02"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Technology Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Platforms, tools, and infrastructure that give founders the operational edge to compete and scale efficiently."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Community Networks",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"03"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Community Networks"}],["$","p",null,{"className":"epn-card-desc","children":"Founder communities, women's business networks, and ecosystem builders who extend reach and amplify impact."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Investment Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"04"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Investment Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Funding access, grant programs, angel networks, and capital partners aligned with women-led enterprise growth."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}]]}]}]]}]]}]}]}] +30:["$","div",null,{"className":"emp-cta-wrap","children":["$","section",null,{"className":"emp-cta","aria-labelledby":"empowerment-final-cta","children":["$","div",null,{"className":"emp-cta-inner","children":[["$","div",null,{"className":"emp-cta-recap","children":[["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"500+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Women Founders"}]]}],["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"100+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Enterprises Launched"}]]}],["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"25+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Industry Partners"}]]}]]}],["$","div",null,{"className":"emp-cta-kicker","children":"/ Build the next mile /"}],["$","h2",null,{"className":"emp-cta-title","id":"empowerment-final-cta","children":["Build what’s ",["$","em",null,{"children":"next."}]]}],["$","div",null,{"className":"emp-cta-bottom","children":["$","p",null,{"className":"emp-cta-sub","children":"Join Doormile Wings in building the entrepreneurial ecosystem where women launch, grow, and lead enterprises that create lasting value across logistics."}]}]]}]}]}] +3a:["$","polyline",null,{"points":"0.5 19.5 3 19.5 12.5 10 3 0.5"}] +3b:["$","div",null,{"className":"elementor-element elementor-element-b6e14bd e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"b6e14bd","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":[["$","div",null,{"className":"ws-map","aria-hidden":"true","children":["$","$L39",null,{}]}],["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-90cc867 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"90cc867","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-24c0280 elementor-widget__width-inherit elementor-widget elementor-widget-logico_heading","data-id":"24c0280","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/ Women Empowerment /"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-2ed47f3 e-con-full e-grid cut-corner-no sticky-container-off e-con e-child","data-id":"2ed47f3","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-36efec7 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"36efec7","data-element_type":"container","data-e-type":"container","children":[["$","$L1d",null,{"duration":0.8,"yOffset":28,"triggerOnce":true,"children":["$","div",null,{"className":"elementor-element elementor-element-778840d elementor-widget elementor-widget-logico_heading","data-id":"778840d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h3",null,{"className":"logico-title","children":"Women Building The Next Mile"}]}]}]}],["$","div",null,{"className":"elementor-element elementor-element-bbfb67f elementor-widget elementor-widget-image","data-id":"bbfb67f","data-element_type":"widget","data-e-type":"widget","data-widget_type":"image.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","$L40",null,{"src":"/images/bg-map-women.webp","alt":"Women Map","width":626,"height":692,"style":{"maxWidth":"100%","height":"auto"}}]}]}]]}],["$","div",null,{"className":"elementor-element elementor-element-b2c956f e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"b2c956f","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"id":"ws-stories","children":[["$","$L3f",null,{"className":"ws__stats","stagger":0.1,"duration":0.6,"yOffset":20,"triggerOnce":true,"children":[["$","div","Women Founders",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L3e",null,{"end":500,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Women Founders"}]]}],["$","div","Cities Active",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L3e",null,{"end":35,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Cities Active"}]]}],["$","div","Enterprises Launched",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L3e",null,{"end":100,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Enterprises Launched"}]]}]]}],["$","$L3f",null,{"className":"ws__cards","stagger":0.08,"duration":0.6,"yOffset":24,"triggerOnce":true,"children":[["$","div","Venture Building",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M4 19V5"}],["$","path",null,{"d":"M4 7h12l-2 4 2 4H4"}],["$","path",null,{"d":"M18 19h2"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Venture Building"}],["$","p",null,{"className":"ws__card-desc","children":"End-to-end support for women launching logistics enterprises — from ideation to market entry."}]]}],"$L41","$L42","$L43"]}]]}]}]]}]]}]}]]}] +3d:["$","svg",null,{"width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}] +41:["$","div","Entrepreneurship",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"7","width":"18","height":"13","rx":"2"}],["$","path",null,{"d":"M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 12h18"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Entrepreneurship"}],["$","p",null,{"className":"ws__card-desc","children":"Women building, owning, and scaling sustainable businesses within the logistics ecosystem."}]]}] +42:["$","div","Founder Networks",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"8","cy":"8","r":"3"}],["$","circle",null,{"cx":"16","cy":"8","r":"3"}],["$","path",null,{"d":"M2.5 20c.7-3.1 2.8-5 5.5-5s4.8 1.9 5.5 5"}],["$","path",null,{"d":"M10.5 20c.7-3.1 2.8-5 5.5-5s4.8 1.9 5.5 5"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Founder Networks"}],["$","p",null,{"className":"ws__card-desc","children":"Peer communities and strategic connections that accelerate growth and open new markets."}]]}] +43:["$","div","Enterprise Leadership",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"12","cy":"9","r":"5"}],["$","path",null,{"d":"M9 13.5 7.5 21 12 18l4.5 3-1.5-7.5"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Enterprise Leadership"}],["$","p",null,{"className":"ws__card-desc","children":"Strategic decision-making, operational excellence, and vision-driven leadership for women founders."}]]}] +36:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +44:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +33:null +38:[["$","title","0",{"children":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","1",{"name":"description","content":"Doormile Wings empowers women to build, own, and lead enterprises within the logistics ecosystem through strategic partnerships, founder networks, and entrepreneurial infrastructure."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/empowerment"}],["$","meta","4",{"property":"og:title","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","5",{"property":"og:description","content":"An entrepreneurial ecosystem empowering women to launch, grow, and lead logistics enterprises with strategic partnerships and industry collaboration."}],["$","meta","6",{"property":"og:url","content":"https://doormile.com/empowerment"}],["$","meta","7",{"property":"og:site_name","content":"Doormile"}],["$","meta","8",{"property":"og:image","content":"https://doormile.com/images/wings-logo.png"}],["$","meta","9",{"property":"og:image:width","content":"1200"}],["$","meta","10",{"property":"og:image:height","content":"630"}],["$","meta","11",{"property":"og:image:alt","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","12",{"property":"og:type","content":"website"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","15",{"name":"twitter:description","content":"An entrepreneurial ecosystem empowering women to launch, grow, and lead logistics enterprises with strategic partnerships and industry collaboration."}],["$","meta","16",{"name":"twitter:image","content":"https://doormile.com/images/wings-logo.png"}],["$","link","17",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","18",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","19",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L44","21",{}]] diff --git a/build/.next/server/app/empowerment.segments/_head.segment.rsc b/build/.next/server/app/empowerment.segments/_head.segment.rsc new file mode 100644 index 0000000..6bb21d4 --- /dev/null +++ b/build/.next/server/app/empowerment.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","1",{"name":"description","content":"Doormile Wings empowers women to build, own, and lead enterprises within the logistics ecosystem through strategic partnerships, founder networks, and entrepreneurial infrastructure."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/empowerment"}],["$","meta","4",{"property":"og:title","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","5",{"property":"og:description","content":"An entrepreneurial ecosystem empowering women to launch, grow, and lead logistics enterprises with strategic partnerships and industry collaboration."}],["$","meta","6",{"property":"og:url","content":"https://doormile.com/empowerment"}],["$","meta","7",{"property":"og:site_name","content":"Doormile"}],["$","meta","8",{"property":"og:image","content":"https://doormile.com/images/wings-logo.png"}],["$","meta","9",{"property":"og:image:width","content":"1200"}],["$","meta","10",{"property":"og:image:height","content":"630"}],["$","meta","11",{"property":"og:image:alt","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","12",{"property":"og:type","content":"website"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"Doormile Wings — Women Entrepreneurship Initiative"}],["$","meta","15",{"name":"twitter:description","content":"An entrepreneurial ecosystem empowering women to launch, grow, and lead logistics enterprises with strategic partnerships and industry collaboration."}],["$","meta","16",{"name":"twitter:image","content":"https://doormile.com/images/wings-logo.png"}],["$","link","17",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","18",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","19",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","20",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","21",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/empowerment.segments/_index.segment.rsc b/build/.next/server/app/empowerment.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/empowerment.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/empowerment.segments/_tree.segment.rsc b/build/.next/server/app/empowerment.segments/_tree.segment.rsc new file mode 100644 index 0000000..3038b59 --- /dev/null +++ b/build/.next/server/app/empowerment.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"empowerment","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/empowerment.segments/empowerment.segment.rsc b/build/.next/server/app/empowerment.segments/empowerment.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/empowerment.segments/empowerment.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/empowerment.segments/empowerment/__PAGE__.segment.rsc b/build/.next/server/app/empowerment.segments/empowerment/__PAGE__.segment.rsc new file mode 100644 index 0000000..16ac15c --- /dev/null +++ b/build/.next/server/app/empowerment.segments/empowerment/__PAGE__.segment.rsc @@ -0,0 +1,2166 @@ +1:"$Sreact.fragment" +f:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"ScrollReveal"] +10:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"ShimmerText"] +23:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +24:"$Sreact.suspense" +26:I[5074,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"default"] +29:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],""] +2b:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"CountUp"] +2c:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"StaggerChildren"] +2d:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"Image"] +2:Tf99, + .eh-outer { + box-sizing: border-box; + padding: 20px; + } + + .eh-section { + position: relative; + border-radius: 25px; + overflow: hidden; + box-sizing: border-box; + height: 800px; + display: flex; + align-items: center; + justify-content: center; + background: #07080c; + } + + .eh-bg { + position: absolute; + inset: 0; + background-image: url("/images/women-hero-slider-2.png"); + background-size: cover; + background-position: 30% 72%; + z-index: 0; + } + + .eh-scrim { + position: absolute; + inset: 0; + background: + linear-gradient(180deg, rgba(7, 8, 12, 0.72) 0%, rgba(7, 8, 12, 0.5) 40%, rgba(7, 8, 12, 0.86) 100%); + z-index: 1; + } + + .eh-inner { + position: relative; + z-index: 2; + width: 100%; + max-width: 1000px; + margin: 0 auto; + padding: 0 15px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + box-sizing: border-box; + } + + .eh-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.6px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 20px; + } + + .eh-title { + width: 100%; + font-size: clamp(30px, 5.5vw, 80px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.08 !important; + text-transform: uppercase !important; + color: #ffffff !important; + margin: 0; + word-wrap: break-word; + overflow-wrap: break-word; + } + + .eh-title .eh-soft { + color: rgba(255, 255, 255, 0.72); + } + + .eh-desc { + width: 100%; + max-width: 680px; + margin: 23px auto 0; + font-size: clamp(16px, 1.35vw, 23px); + line-height: 1.65; + color: rgba(255, 255, 255, 0.78); + } + + .eh-btns { + display: flex; + align-items: center; + justify-content: center; + gap: 14px; + flex-wrap: wrap; + margin-top: 32px; + } + + .eh-btn-primary, + .eh-btn-outline { + display: inline-flex; + align-items: center; + gap: 10px; + padding: 15px 28px; + border-radius: 100px; + font-weight: 800; + font-size: 14px; + text-decoration: none; + transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, background-color 0.3s ease, border-color 0.3s ease; + } + + .eh-btn-primary { + background: #c01227; + color: #ffffff !important; + border: 1.5px solid #c01227; + } + + .eh-btn-primary:hover { + transform: translateY(-3px); + box-shadow: 0 14px 30px rgba(192, 18, 39, 0.4); + } + + .eh-btn-outline { + background: rgba(255, 255, 255, 0.04); + color: #ffffff !important; + border: 1.5px solid rgba(255, 255, 255, 0.36); + } + + .eh-btn-outline:hover { + border-color: rgba(255, 255, 255, 0.82); + background: rgba(255, 255, 255, 0.09); + transform: translateY(-3px); + } + + @media (max-width: 1020px) { + .eh-outer { padding: 10px; } + } + + @media (max-width: 840px) { + .eh-section { height: 600px; } + } + + @media (max-width: 660px) { + .eh-title { + font-size: clamp(20px, 7vw, 32px) !important; + } + } + + @media (max-width: 480px) { + .eh-section { height: 520px; } + .eh-btn-primary, .eh-btn-outline { width: 100%; justify-content: center; padding: 14px 22px; } + .eh-btns { width: 100%; } + } + 0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"empowerment","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"86","className":"elementor elementor-86 elementor-59 elementor-empowerment","children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],"$L3"],"$L4","$L5","$L6","$L7","$L8","$L9","$La","$Lb","$Lc"]}]}]}]}],["$Ld"],"$Le"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +3:["$","div",null,{"className":"eh-outer","children":["$","section",null,{"className":"eh-section","id":"wings-empowerment-hero","children":[["$","div",null,{"className":"eh-bg","aria-hidden":"true"}],["$","div",null,{"className":"eh-scrim","aria-hidden":"true"}],["$","$Lf",null,{"delay":0.05,"duration":0.85,"yOffset":30,"className":"eh-inner","children":[["$","h1",null,{"className":"eh-title","children":["Building ",["$","span",null,{"className":"eh-soft","children":"Women"}],["$","br",null,{}],["$","$L10",null,{"children":"Entrepreneurs."}]]}],["$","p",null,{"className":"eh-desc","children":"Empowering ambitious women with the network, strategic partnerships, and opportunities to build, grow, and lead successful enterprises that shape the future of logistics."}]]}]]}]}] +11:Te8f, + .ev-section { + position: relative; + background: #ffffff; + padding: clamp(96px, 11vw, 150px) 0; + overflow: hidden; + } + + .ev-map { + position: absolute; + inset: 0; + z-index: 0; + opacity: 0.4; + pointer-events: none; + } + + .ev-inner { + position: relative; + z-index: 1; + max-width: 1380px; + min-width: 0; + margin: 0 auto; + } + + .ev-eyebrow { + margin: 0 0 18px 0; + font-size: 14px; + font-weight: 500; + letter-spacing: 1.5px; + color: rgba(17, 17, 17, 0.6); + } + + .ev-divider { + width: 100%; + height: 1px; + margin: 0 0 clamp(64px, 7.8vw, 92px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.16); + } + + .ev-title { + margin: 0 0 clamp(92px, 11.5vw, 156px) 0 !important; + max-width: 1320px; + display: block; + font-weight: 800 !important; + font-style: normal !important; + letter-spacing: -0.018em !important; + word-spacing: 0.02em; + line-height: 1.04em !important; + text-transform: none !important; + color: #ffffff !important; + -webkit-text-stroke: 2px #c01227; + paint-order: stroke fill; + font-size: clamp(48px, 8.5vw, 128px) !important; + white-space: normal; + overflow-wrap: normal; + text-wrap: balance; + } + + @media (max-width: 1280px) { + .ev-title { + font-size: 118px !important; + } + } + + @media (max-width: 1020px) { + .ev-title { + font-size: 96px !important; + } + } + + @media (max-width: 767px) { + .ev-title { + font-size: 72px !important; + } + } + + .ev-columns { + display: grid; + grid-template-columns: minmax(0, 0.6fr) minmax(0, 1fr); + gap: clamp(60px, 8vw, 122px); + align-items: start; + } + + .ev-columns > * { + min-width: 0; + } + + .ev-statement { + margin: 0; + font-size: clamp(28px, 3vw, 52px); + font-weight: 600; + line-height: 1.2; + letter-spacing: -0.03em; + color: #111111; + overflow-wrap: break-word; + } + + .ev-support { + display: grid; + gap: clamp(34px, 3.8vw, 52px); + min-width: 0; + } + + .ev-block { + display: grid; + gap: 12px; + } + + .ev-block-label { + margin: 0; + font-size: 12px; + font-weight: 700; + letter-spacing: 1.4px; + line-height: 1; + text-transform: uppercase; + color: rgba(192, 18, 39, 0.86); + } + + .ev-lead, + .ev-note { + font-size: clamp(17px, 1.3vw, 20px); + line-height: 1.6; + color: #333333; + margin: 0; + overflow-wrap: break-word; + } + + .ev-lead { + font-weight: 700; + } + + .ev-note { + font-weight: 400; + } + + @media (max-width: 900px) { + .ev-columns { + grid-template-columns: 1fr; + } + } + + @media (max-width: 600px) { + .ev-section { padding-top: 64px; padding-bottom: 64px; } + .ev-title { + max-width: calc(100vw - (var(--dm-mobile-gutter, 10px) * 2)); + font-size: 56px !important; + letter-spacing: -0.025em !important; + line-height: 1.02em !important; + -webkit-text-stroke-width: 1.5px; + } + } + 4:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$11"}}],"$L12"] +13:T1091, + .esy-section { + position: relative; + width: calc(100% - 40px); + margin: 0 auto clamp(24px, 4vw, 40px); + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + min-height: clamp(500px, 50vw, 690px); + display: flex; + align-items: stretch; + background: #09090b; + } + + .esy-bg { + position: absolute; + inset: 0; + background-image: + linear-gradient(100deg, rgba(9, 9, 11, 0.96) 0%, rgba(9, 9, 11, 0.84) 43%, rgba(192, 18, 39, 0.28) 100%), + url("/images/wings-heroslider4.png"); + background-size: cover; + background-position: center; + z-index: 0; + } + + .esy-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + width: 100%; + padding-top: clamp(60px, 7vw, 98px); + padding-bottom: clamp(60px, 7vw, 98px); + display: grid; + grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.52fr); + gap: clamp(36px, 6vw, 96px); + align-items: end; + } + + .esy-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 24px; + } + + .esy-statement { + max-width: 920px; + font-size: clamp(38px, 5.7vw, 86px); + font-weight: 800; + letter-spacing: -0.055em; + line-height: 0.98; + text-transform: uppercase; + color: #ffffff; + margin: 0; + } + + .esy-statement em { + color: #ff5470; + font-style: normal; + } + + .esy-side { + border-left: 1px solid rgba(255, 255, 255, 0.18); + padding-left: clamp(24px, 3vw, 42px); + } + + .esy-label { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.8px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.45); + margin-bottom: 18px; + } + + .esy-pull { + font-size: clamp(22px, 2.3vw, 34px); + font-weight: 800; + line-height: 1.16; + letter-spacing: -0.03em; + color: #ffffff; + margin: 0 0 22px 0; + } + + .esy-sub { + font-size: 15.5px; + line-height: 1.65; + color: rgba(255, 255, 255, 0.64); + margin: 0; + } + + /* ---- Desktop-only inner spacing compaction ---- + .esy-section never set its own padding, so it was silently + inheriting 96px top/bottom from the global bare-tag "section" + padding rule (6rem 0) in site.css — stacking with .esy-inner's + own clamp(60-98px) padding into a huge, unbalanced inset. Cancel + that leak here. Also tighten .esy-inner's own padding and widen its + max-width (so a fixed padding, not a narrow centered column, + controls the left/right inset at every desktop width) — and bring + min-height down to match the now-tighter natural content height, + since the old 690px floor was itself forcing extra empty space + once the padding was reduced. Scoped to desktop only; tablet/ + mobile keep their original spacing untouched below. */ + @media (min-width: 1025px) { + .esy-section { + padding: 0; + min-height: clamp(420px, 38vw, 500px); + } + .esy-inner { + max-width: 1900px; + padding-top: 64px; + padding-bottom: 56px; + padding-left: 64px; + padding-right: 64px; + } + } + + @media (max-width: 1024px) { + .esy-section { width: calc(100% - 24px); border-radius: 22px; } + .esy-inner { grid-template-columns: 1fr; align-items: start; } + .esy-side { max-width: 640px; } + } + + @media (max-width: 640px) { + .esy-section { min-height: 560px; } + .esy-side { border-left: none; padding-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.18); padding-top: 24px; } + } + 5:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$13"}}],"$L14"] +15:T3756, + /* ============================================================ + Success Stories — redesigned right column (stats + 2x2 cards) + Dark section · red accent #dc2626 / #ef4444 · Manrope + ============================================================ */ + /* Neutralise the right column's asymmetric 140px left padding so the + box group can be centered instead of pushed to one side. */ + .elementor-element.elementor-element-b2c956f { padding: 0 !important; } + + /* Vertically center the two columns so the right content lines up with + the image instead of needing a big top gap; tighten row gap. */ + .elementor-element.elementor-element-2ed47f3 { align-items: center !important; } + + /* Animated map background behind the Success Stories content */ + .elementor-element.elementor-element-b6e14bd { position: relative; overflow: hidden; } + .elementor-element.elementor-element-b6e14bd > .e-con-inner { position: relative; z-index: 1; } + .ws-map { position: absolute; inset: 0; z-index: 0; opacity: 0.5; pointer-events: none; } + .ws-map canvas { display: block; } + + #ws-stories { + display: flex; + flex-direction: column; + gap: 16px; + width: 100%; + max-width: 620px; + margin: 0 auto; /* center the 7 boxes as a group — no negative margins */ + } + + #ws-stories .ws__stats { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 12px; + } + #ws-stories .ws__stat { + background: rgba(255,255,255,0.04); + border: 1px solid rgba(255,255,255,0.08); + border-radius: 14px; + padding: 20px 16px; + transition: border-color 0.3s ease, background-color 0.3s ease; + } + #ws-stories .ws__stat:hover { border-color: rgba(220,38,38,0.28); background: rgba(220,38,38,0.05); } + #ws-stories .ws__stat-num { + color: #fff !important; + font-weight: 900; + font-size: clamp(28px, 3vw, 38px); + line-height: 1; + letter-spacing: -0.01em; + } + #ws-stories .ws__stat-num span { color: #dc2626 !important; } + #ws-stories .ws__stat-label { + margin-top: 9px; + color: rgba(255,255,255,0.7) !important; + font-size: 14px !important; + font-weight: 700; + letter-spacing: 0.03em; + text-transform: uppercase; + } + + #ws-stories .ws__cards { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px; + align-items: stretch; + } + #ws-stories .ws__card { + position: relative; + overflow: hidden; + display: flex; + flex-direction: column; + min-height: 168px; + background: rgba(255,255,255,0.035); + border: 1px solid rgba(255,255,255,0.08); + border-radius: 14px; + padding: 20px; + transition: transform 0.35s cubic-bezier(.25,1,.5,1), border-color 0.35s ease, background-color 0.35s ease, box-shadow 0.35s ease; + } + #ws-stories .ws__card::after { + content: ''; + position: absolute; + top: -45%; left: -25%; + width: 150px; height: 150px; + background: radial-gradient(circle, rgba(220,38,38,0.2), transparent 70%); + opacity: 0; + transition: opacity 0.35s ease; + pointer-events: none; + } + #ws-stories .ws__card:hover { + transform: translateY(-4px); + border-color: rgba(220,38,38,0.3); + background: rgba(220,38,38,0.05); + box-shadow: 0 18px 44px -20px rgba(0,0,0,0.7); + } + #ws-stories .ws__card:hover::after { opacity: 1; } + #ws-stories .ws__card-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 40px; height: 40px; + border-radius: 11px; + background: rgba(220,38,38,0.12); + border: 1px solid rgba(220,38,38,0.25); + color: #ef4444; + margin-bottom: 16px; + transition: background-color 0.3s ease, color 0.3s ease; + } + #ws-stories .ws__card:hover .ws__card-icon { background: #dc2626; color: #fff; } + #ws-stories .ws__card-icon svg { width: 21px; height: 21px; } + #ws-stories .ws__card-title { + color: #fff !important; + font-weight: 800; + font-size: 19px; + line-height: 1.2; + letter-spacing: 0; + margin-bottom: 9px; + } + #ws-stories .ws__card-desc { + max-width: 28ch; + color: rgba(255,255,255,0.66) !important; + font-size: 15px; + line-height: 1.52; + margin: 0; + font-weight: 500; + } + + /* ---- Floating card sizing: content-driven, not container-driven ---- + Matches the EV Logistics card height proportions exactly by trimming + red content padding and white footer min-height. */ + .elementor-element.elementor-element-3b61435 { + --padding-top: 46px; + --padding-bottom: 38px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 38px; + --padding-top: 14px; + --padding-bottom: 14px; + } + @media (max-width: 1020px) { + .elementor-element.elementor-element-3b61435 { + --padding-top: 34px; + --padding-bottom: 28px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 32px; + --padding-top: 12px; + --padding-bottom: 12px; + } + } + @media (max-width: 660px) { + .elementor-element.elementor-element-3b61435 { + --padding-top: 26px; + --padding-bottom: 22px; + } + .elementor-element.elementor-element-5aea22e { + --min-height: 24px; + --padding-top: 10px; + --padding-bottom: 10px; + } + } + + .elementor-element-778840d .logico-title { + white-space: nowrap !important; + } + + /* The banner image (bg-header-women.png) is very wide (≈2.48:1) and the + woman — the subject of this section — sits on the right. On narrow + screens "cover" center-crops her out, so shift the focal point right + to keep her face in frame. */ + @media (max-width: 1024px) { + .elementor-element.elementor-element-7da6646:not(.elementor-motion-effects-element-type-background) { + background-position: 78% center !important; + } + } + @media (max-width: 767px) { + .elementor-element.elementor-element-7da6646:not(.elementor-motion-effects-element-type-background) { + background-position: 82% 25% !important; + } + } + + /* Stack the two columns below the desktop breakpoint so the box group + always gets full width and stays centered — never clipped. */ + @media (max-width: 1024px) { + .elementor-element-778840d .logico-title { + white-space: normal !important; + } + .elementor-element.elementor-element-2ed47f3 { grid-template-columns: 1fr !important; } + #ws-stories { max-width: 640px; margin: 0 auto; } + /* Align the heading, image and stats/cards to one shared left/right + edge — the heading + image widgets carried extra inset that left + them staggered (80px / 70px / 60px) against the stats column. */ + #women-entrepreneurship .elementor-element-36efec7, + #women-entrepreneurship .elementor-element-b2c956f { + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element-778840d, + #women-entrepreneurship .elementor-element-bbfb67f, + #women-entrepreneurship .elementor-element-778840d > .elementor-widget-container, + #women-entrepreneurship .elementor-element-bbfb67f > .elementor-widget-container { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + } + + @media (max-width: 767px) { + #women-entrepreneurship { + width: calc(100% - 20px) !important; + margin-left: 10px !important; + margin-right: 10px !important; + border-radius: 22px !important; + padding-left: 0px !important; + padding-right: 0px !important; + } + #women-entrepreneurship .e-con-boxed > .e-con-inner { + padding-top: 32px !important; + padding-bottom: 32px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element-8b5d6e6, + #women-entrepreneurship .elementor-element-b6e14bd, + #women-entrepreneurship .elementor-element-90cc867, + #women-entrepreneurship .elementor-element-36efec7, + #women-entrepreneurship .elementor-element-b2c956f { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + #women-entrepreneurship .elementor-element-1f766ea { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + #women-entrepreneurship .elementor-element.elementor-element-2ed47f3 { + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; + margin-top: 0 !important; + padding-top: 0 !important; + gap: 24px !important; + } + #women-entrepreneurship .elementor-element-36efec7 { + margin-top: 0px !important; + padding-top: 0px !important; + gap: 0px !important; + } + #women-entrepreneurship .elementor-element-24c0280 { + margin-bottom: 0px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-778840d { + margin-top: 14px !important; + margin-bottom: 14px !important; + padding-top: 0px !important; + padding-bottom: 0px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-778840d h3.logico-title, + #women-entrepreneurship .elementor-element-778840d > .elementor-widget-container { + margin: 0px !important; + padding: 0px !important; + } + #women-entrepreneurship .elementor-element-7da6646 { + width: calc(100% - 28px) !important; + margin-left: 14px !important; + margin-right: 14px !important; + border-radius: 18px !important; + min-height: 240px !important; + margin-top: 15px !important; + margin-bottom: -50px !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-8b5d6e6 { + padding-left: 14px !important; + padding-right: 14px !important; + margin-left: 0px !important; + margin-right: 0px !important; + width: 100% !important; + max-width: 100% !important; + box-sizing: border-box !important; + } + #women-entrepreneurship .elementor-element-bbfb67f img { + width: 100% !important; + } + #women-entrepreneurship .elementor-element-bbfb67f { + margin-top: 0px !important; + margin-bottom: 16px !important; + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + #ws-stories { + padding-left: 14px !important; + padding-right: 14px !important; + box-sizing: border-box !important; + } + /* KPI stat cards stack one-per-row on mobile. Inside each card the big + number sits on the left and the label on the right, vertically + centered, so every stat reads as a clean full-width row instead of + three cramped columns. */ + #ws-stories .ws__stats { grid-template-columns: 1fr; gap: 12px; } + #ws-stories .ws__stat { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + padding: 16px 20px; + min-width: 0; + } + #ws-stories .ws__stat-num { font-size: clamp(30px, 9vw, 40px); } + #ws-stories .ws__stat-label { + margin-top: 0; + font-size: 13px !important; + letter-spacing: 0.02em; + text-align: right; + min-height: 0; + } + #ws-stories .ws__cards { grid-template-columns: 1fr; gap: 12px; } + } + 6:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$15"}}],"$L16"] +17:T2f8a, + .epr-section { + background: #ffffff; + padding-top: clamp(28px, 3.2vw, 48px); + padding-bottom: clamp(78px, 9vw, 132px); + overflow: visible; + } + + .epr-inner { + max-width: 1380px; + min-width: 0; + margin: 0 auto; + } + + .epr-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(54px, 7vw, 86px); + } + + .epr-head-reveal { + width: 100%; + } + + .epr-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .epr-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .epr-title { + max-width: 950px; + font-size: clamp(42px, 6.2vw, 88px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0; + } + + .epr-stage { + display: grid; + grid-template-columns: minmax(300px, 0.38fr) minmax(0, 0.62fr); + gap: clamp(32px, 5vw, 78px); + /* stretch (not start): .epr-aside-wrap must span the full row + height — the tall Programs column's implicit-row height — so it + defines the sticky travel distance. The visual box no longer + lives here, so stretching this item no longer distorts it. */ + align-items: stretch; + min-width: 0; + } + + .epr-stage > * { + min-width: 0; + } + + /* Responsibility split (desktop sticky architecture): + .epr-aside-wrap — plain grid item, stretched to the full + Programs-list row height. Defines travel + distance. No sizing responsibility of its + own beyond that. + .epr-aside-sticky — owns position: sticky. Its height is + explicitly clamped to the viewport + (100dvh minus header clearance and a + bottom safe-margin), so it can never grow + taller than what's actually visible — + the tall min-height that previously fought + the sticky top offset is gone entirely. + .epr-aside — the visual composition (ghost number, map, + heading, paragraph). Fills the sticky + frame's height and arranges its existing + content inside it; owns the decorative + bleed clipping (overflow: hidden). */ + .epr-aside-wrap { + min-width: 0; + } + + .epr-aside-sticky { + /* 132px clears the site header's fixed state (~122px tall once + scrolled) with a small margin; only grows on very tall + viewports. This is viewport-height-derived, NOT content-height + derived — unlike the old top formula, it never has to react to + how tall the aside's own content happens to be. */ + --epr-sticky-top: clamp(132px, 12dvh, 160px); + --epr-sticky-bottom-safe: 28px; + position: sticky; + top: var(--epr-sticky-top); + height: calc(100dvh - var(--epr-sticky-top) - var(--epr-sticky-bottom-safe)); + min-height: 0; + min-width: 0; + /* Lets the visual composition react to the frame's OWN resolved + height (container query below) rather than guessing from the + viewport or the write-up's vw-based type scale. */ + container-type: size; + container-name: epr-frame; + } + + .epr-aside { + --epr-aside-pad-t: clamp(18px, 3vw, 34px); + --epr-aside-pad-b: clamp(24px, 3.5vw, 42px); + position: relative; + height: 100%; + min-width: 0; + min-height: 0; + padding: var(--epr-aside-pad-t) 0 var(--epr-aside-pad-b); + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #111111; + } + + .epr-aside-map { + position: absolute; + inset: 8% -22% 8% -28%; + z-index: 0; + opacity: 0.22; + pointer-events: none; + } + + .epr-aside-map canvas { + display: block; + } + + .epr-aside-content { + position: relative; + z-index: 1; + display: grid; + gap: clamp(18px, 2.2vw, 28px); + } + + .epr-aside-num { + position: relative; + font-size: clamp(164px, 17vw, 300px); + font-weight: 900; + line-height: 0.78; + letter-spacing: -0.06em; + color: transparent; + -webkit-text-stroke: 2px rgba(200, 16, 46, 0.2); + } + + .epr-aside-copy { + position: relative; + max-width: 12ch; + font-size: clamp(30px, 3.6vw, 56px); + font-weight: 800; + line-height: 0.98; + letter-spacing: -0.055em; + text-transform: uppercase; + color: #111111; + margin: 0; + } + + .epr-aside-copy em { + font-style: normal; + color: #c8102e; + } + + .epr-aside-desc { + position: relative; + max-width: 34ch; + font-size: 15.5px; + line-height: 1.65; + color: rgba(17, 17, 17, 0.58); + margin: 0; + } + + /* Constrained-frame fallback: the sticky frame is short (short + desktop viewport height), so the decorative ghost number/map + shrink first — spacing second — while the heading and paragraph + stay full size and fully visible, per spec. Placed after the base + .epr-aside-num/-content/-map rules so it wins the cascade at + matching container sizes (equal selector specificity; source + order decides). */ + @container epr-frame (max-height: 660px) { + .epr-aside { padding-top: clamp(12px, 1.8vw, 22px); padding-bottom: clamp(16px, 2.2vw, 26px); } + .epr-aside-content { gap: clamp(12px, 1.6vw, 20px); } + .epr-aside-num { font-size: clamp(90px, 11vw, 180px); } + } + + @container epr-frame (max-height: 560px) { + .epr-aside { padding-top: clamp(8px, 1.2vw, 14px); padding-bottom: clamp(10px, 1.6vw, 18px); } + .epr-aside-content { gap: clamp(6px, 1vw, 12px); } + .epr-aside-num { font-size: clamp(48px, 7vw, 100px); } + .epr-aside-map { opacity: 0.14; } + } + + .epr-list { + display: grid; + gap: clamp(28px, 4vw, 52px); + } + + .epr-row { + display: grid; + grid-template-columns: 110px minmax(0, 1fr); + gap: clamp(22px, 4vw, 58px); + padding-bottom: clamp(28px, 4vw, 52px); + border-bottom: 1px solid rgba(17, 17, 17, 0.14); + } + + .epr-row:nth-child(even) { + margin-left: clamp(0px, 7vw, 96px); + } + + .epr-row-index { + font-size: clamp(38px, 4.2vw, 62px); + font-weight: 900; + line-height: 1; + letter-spacing: -0.05em; + color: #c8102e; + } + + .epr-row-featured { + padding: clamp(28px, 4vw, 44px) clamp(24px, 3vw, 40px); + background: #09090b; + border-radius: 22px; + border-bottom: none; + margin-bottom: clamp(28px, 4vw, 52px); + } + + .epr-row-featured .epr-row-index { + color: rgba(255, 255, 255, 0.22); + -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.5); + } + + .epr-row-featured .epr-row-title { + font-size: clamp(32px, 4vw, 64px) !important; + color: #ffffff !important; + } + + .epr-row-featured .epr-row-desc { + color: rgba(255, 255, 255, 0.62); + } + + .epr-row-flag { + display: inline-block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.3px; + text-transform: uppercase; + color: #ffffff; + background: #c8102e; + padding: 6px 14px; + border-radius: 100px; + margin-bottom: 16px; + } + + .epr-row-type { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.7px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + margin-bottom: 14px; + } + + .epr-row-featured .epr-row-type { + color: rgba(255, 255, 255, 0.42); + } + + .epr-row-title { + font-size: clamp(28px, 3.4vw, 52px) !important; + font-weight: 800 !important; + letter-spacing: -0.045em !important; + line-height: 1.02 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0 0 14px 0; + } + + .epr-row-desc { + max-width: 660px; + font-size: 15.5px; + line-height: 1.65; + color: rgba(17, 17, 17, 0.58); + margin: 0; + } + + .epr-cta { + margin-top: clamp(48px, 6vw, 72px); + } + + .epr-cta-link { + display: inline-flex; + align-items: center; + gap: 10px; + font-size: 15px; + font-weight: 800; + color: #111111 !important; + text-decoration: none !important; + border-bottom: 1.5px solid rgba(17, 17, 17, 0.2); + padding-bottom: 5px; + transition: border-color 0.3s ease, color 0.3s ease; + } + + .epr-cta-link:hover { + color: #c8102e !important; + border-color: #c8102e; + } + + /* Laptop: sticky stays enabled, just a narrower gutter. */ + @media (max-width: 1180px) { + .epr-stage { grid-template-columns: minmax(220px, 0.34fr) minmax(0, 0.66fr); gap: clamp(28px, 4vw, 46px); } + .epr-row:nth-child(even) { margin-left: 0; } + } + + /* Tablet: sticky disabled — the aside scrolls in normal flow instead + of pinning, since there's no longer enough vertical runway next to + the (now narrower, shorter) program list for pinning to read well. */ + @media (max-width: 1023px) { + .epr-aside-sticky { + position: relative; + top: auto; + height: auto; + container-type: normal; + } + } + + @media (max-width: 767px) { + .epr-stage { grid-template-columns: 1fr; } + .epr-aside { + position: relative; + top: auto; + min-height: 300px; + padding-top: 4px; + padding-bottom: clamp(24px, 7vw, 38px); + } + .epr-aside-map { + inset: -8% -18% 0 -20%; + opacity: 0.18; + } + .epr-aside-content { + gap: 20px; + } + .epr-aside-num { + font-size: clamp(128px, 34vw, 180px); + } + .epr-aside-copy { + max-width: 11ch; + font-size: clamp(34px, 10vw, 48px); + } + .epr-aside-desc { + max-width: 32ch; + font-size: 14.5px; + } + } + + @media (max-width: 640px) { + .epr-section { padding-top: 28px; padding-bottom: 54px; } + .epr-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .epr-row-title { + font-size: clamp(27px, 8.5vw, 36px) !important; + overflow-wrap: anywhere; + } + .epr-row { grid-template-columns: 1fr; gap: 12px; } + } + 7:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$17"}}],"$L18"] +19:Te98, + .eim-section { + position: relative; + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto; + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + background: #09090b; + padding: clamp(64px, 8vw, 100px) clamp(24px, 5vw, 48px); + } + + .eim-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + } + + .eim-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: #c8102e; + margin-bottom: 20px; + } + + .eim-title { + font-size: clamp(28px, 3.4vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0 0 clamp(32px, 4vw, 48px) 0; + } + + .eim-divider { + border: none; + border-top: 1px solid rgba(255, 255, 255, 0.12); + margin: 0 0 clamp(40px, 5vw, 56px) 0; + } + + .eim-hero-row { + display: flex; + align-items: flex-end; + gap: clamp(20px, 3vw, 36px); + margin-bottom: clamp(48px, 6vw, 72px); + } + + .eim-hero-num { + font-size: clamp(90px, 13vw, 190px); + font-weight: 800; + line-height: 0.85; + letter-spacing: -0.03em; + color: transparent; + -webkit-text-stroke: 2px #c8102e; + } + + .eim-hero-label { + font-size: 13px; + font-weight: 700; + letter-spacing: 1.5px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.55); + max-width: 90px; + line-height: 1.4; + padding-bottom: clamp(12px, 1.5vw, 24px); + } + + .eim-divider-2 { + border: none; + border-top: 1px solid rgba(255, 255, 255, 0.12); + margin: 0 0 clamp(40px, 5vw, 56px) 0; + } + + .eim-secondary-row { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .eim-secondary-item { + padding-right: 24px; + border-left: 1px solid rgba(255, 255, 255, 0.12); + padding-left: 24px; + } + + .eim-secondary-item:first-child { + border-left: none; + padding-left: 0; + } + + .eim-secondary-num { + display: block; + font-size: clamp(32px, 3vw, 44px); + font-weight: 800; + color: #ff5470; + letter-spacing: -0.02em; + margin-bottom: 10px; + } + + .eim-secondary-label { + font-size: 13px; + font-weight: 600; + color: rgba(255, 255, 255, 0.5); + line-height: 1.4; + } + + .eim-copy { + max-width: 720px; + margin-top: clamp(48px, 6vw, 72px); + font-size: 15.5px; + line-height: 1.7; + color: rgba(255, 255, 255, 0.55); + } + + @media (max-width: 1024px) { + .eim-section { width: calc(100% - 24px); border-radius: 22px; } + } + + @media (max-width: 700px) { + .eim-hero-row { align-items: flex-start; flex-direction: column; gap: 12px; } + .eim-hero-label { padding-bottom: 0; max-width: none; } + .eim-secondary-row { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; } + .eim-secondary-item:nth-child(3) { border-left: none; padding-left: 0; } + } + + @media (max-width: 460px) { + .eim-section { padding-top: 48px; padding-bottom: 48px; } + } + 8:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$19"}}],"$L1a"] +1b:T1f91, + .ehw-section { + background: #ffffff; + padding: var(--space-section-lg, 80px) 0 calc(var(--space-section-lg, 80px) + 32px) 0; + overflow: hidden; + } + + .ehw-inner { + max-width: 1380px; + margin: 0 auto; + } + + .ehw-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(126px, calc(7vw + 60px), 172px); + } + + .ehw-head-reveal { + width: 100%; + } + + .ehw-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .ehw-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .ehw-title { + max-width: 820px; + font-size: clamp(32px, 4vw, 54px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.08 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 !important; + } + + /* ---------------------------------------------------------------- + Premium editorial process row: five milestones in a single + sequence, separated by thin hairline dividers (no cards, no + shadows, no boxed containers). One flex-wrap sequence with + responsive flex-basis handles the composition at every size — + 5-across on desktop, 3 + 2 (centered) on tablet, a single + vertical column on mobile — from one shared markup. + ---------------------------------------------------------------- */ + .ehw-sequence { + display: flex; + flex-wrap: wrap; + justify-content: center; + --ehw-gap: clamp(24px, 2.6vw, 48px); + column-gap: var(--ehw-gap); + row-gap: clamp(48px, 6vw, 84px); + } + + .ehw-step { + position: relative; + flex: 0 1 calc((100% - 4 * var(--ehw-gap)) / 5); + min-width: 168px; + padding-left: clamp(20px, 2vw, 32px); + border-left: 1px solid rgba(17, 17, 17, 0.14); + transition: border-color 0.3s ease; + } + + .ehw-step:first-child { + border-left: none; + padding-left: 0; + } + + .ehw-step:hover { + border-left-color: rgba(200, 16, 46, 0.4); + } + + .ehw-step-num { + font-size: clamp(48px, 4.6vw, 78px); + font-weight: 900; + line-height: 0.84; + letter-spacing: -0.03em; + color: transparent; + -webkit-text-stroke: 1.5px rgba(17, 17, 17, 0.24); + margin: 0 0 18px 0; + transition: -webkit-text-stroke-color 0.3s ease; + } + + .ehw-step.is-accent .ehw-step-num { + -webkit-text-stroke: 1.5px rgba(200, 16, 46, 0.58); + } + + .ehw-step-kicker { + display: flex; + align-items: center; + gap: 7px; + margin-bottom: 18px; + } + + .ehw-step-kicker svg { + width: 13px; + height: 13px; + color: rgba(17, 17, 17, 0.36); + flex-shrink: 0; + } + + .ehw-step-kicker span { + font-size: 11px; + font-weight: 800; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.4); + } + + .ehw-step.is-accent .ehw-step-kicker svg, + .ehw-step.is-accent .ehw-step-kicker span { + color: #c8102e; + } + + .ehw-step-title { + font-size: clamp(18px, 1.4vw, 22px) !important; + font-weight: 800 !important; + letter-spacing: -0.02em !important; + line-height: 1.2 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 0 22px 0; + } + + .ehw-step-desc { + max-width: 27ch; + font-size: 14px; + line-height: 1.6; + color: rgba(17, 17, 17, 0.55); + margin: 0; + } + + /* Tablet: 3 + 2, centered — sever the divider at the start of each row. */ + @media (max-width: 1100px) { + .ehw-step { + flex-basis: calc((100% - 2 * var(--ehw-gap)) / 3); + } + .ehw-step:nth-child(4) { + border-left: none; + padding-left: 0; + } + } + + /* Mobile: compact numbered editorial index — number in a narrow + left column, title/description/divider sharing one right + content column, laid out on the existing milestone markup via + CSS Grid (no duplicated JSX, no new step markup). */ + @media (max-width: 640px) { + .ehw-head { + margin-bottom: clamp(40px, 10vw, 56px); + } + + .ehw-sequence { + row-gap: 0; + } + + .ehw-step { + display: grid; + grid-template-columns: 48px minmax(0, 1fr); + column-gap: 14px; + flex-basis: 100%; + padding-left: 0; + padding-top: clamp(28px, 8vw, 36px); + border-left: none; + border-top: none; + } + + .ehw-step:first-child { + padding-top: 0; + } + + /* Compact solid index number — replaces the oversized pale + outline treatment used on desktop/tablet. */ + .ehw-step-num { + grid-column: 1; + grid-row: 1; + align-self: start; + font-size: clamp(32px, 9vw, 40px); + line-height: 1; + color: #c8102e; + -webkit-text-stroke: 0; + margin: 0; + } + + /* Hidden completely — no reserved gap left in its place since a + display:none grid item takes no track space. */ + .ehw-step-kicker { + display: none; + } + + .ehw-step-title { + grid-column: 2; + grid-row: 1; + font-size: clamp(22px, 6vw, 26px) !important; + } + + .ehw-step-desc { + grid-column: 2; + grid-row: 2; + max-width: none; + font-size: 16px; + } + + /* Divider lives inside the description box (content column + only), so it never runs underneath the number column. */ + .ehw-step-desc::after { + content: ""; + display: block; + margin-top: clamp(24px, 6vw, 28px); + height: 1px; + background-color: rgba(17, 17, 17, 0.14); + } + + .ehw-step:last-child .ehw-step-desc::after { + display: none; + } + } + + /* ---- Mobile title-to-description gap fix ---- + .ehw-step-title is an

, so it's matched by a global, + unscoped site.css rule (.logico-front-end h3:not(...) { margin: + 0 0 30px }) that outranks this component's own single-class + ".ehw-step-title { margin: 0 0 22px }" by specificity — bumping + the real margin-bottom to 30px everywhere, not just here. There + is no min-height, space-between, or fixed row height anywhere in + this component; the gap is purely that extra 8px of margin + reading as oversized once every other element around it (kicker, + description line-height) is tightly spaced. Overridden with + !important, matching how every other property on this selector + already has to defeat the same global rule. Scoped to mobile + only, per spec — desktop/tablet are left exactly as they were + (still resolving to the global 30px; out of scope here). */ + @media (max-width: 767px) { + .ehw-step-title { + margin-bottom: 16px !important; + } + } + + @media (max-width: 480px) { + .ehw-section { padding-top: 48px; padding-bottom: 68px; } + } + 9:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$1b"}}],"$L1c"] +1d:T1df1, + .est-section { + position: relative; + background: #ffffff; + padding-top: clamp(24px, 3vw, 48px); + padding-bottom: clamp(78px, 9vw, 132px); + overflow: hidden; + } + + .est-inner { + max-width: 1380px; + margin: 0 auto; + } + + .est-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(54px, 7vw, 86px); + } + + .est-head-reveal { + width: 100%; + } + + .est-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(17, 17, 17, 0.14); + } + + .est-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.4px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + } + + .est-title { + max-width: 940px; + font-size: clamp(42px, 6.3vw, 90px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #111111 !important; + margin: 0; + } + + .est-feature { + display: grid; + grid-template-columns: minmax(0, 0.94fr) minmax(340px, 0.64fr); + gap: clamp(28px, 4vw, 62px); + align-items: stretch; + margin-bottom: clamp(44px, 6vw, 76px); + } + + .est-photo { + position: relative; + min-height: clamp(460px, 48vw, 680px); + border-radius: 26px; + overflow: hidden; + background: #09090b; + } + + .est-photo img { + object-fit: cover; + object-position: center; + } + + .est-photo::after { + content: ""; + position: absolute; + inset: 0; + background: linear-gradient(180deg, rgba(9, 9, 11, 0) 34%, rgba(9, 9, 11, 0.72) 100%); + pointer-events: none; + } + + .est-photo-caption { + position: absolute; + left: clamp(24px, 3vw, 42px); + right: clamp(24px, 3vw, 42px); + bottom: clamp(24px, 3vw, 42px); + z-index: 1; + color: #ffffff; + } + + .est-photo-caption span { + display: block; + font-size: 12px; + font-weight: 800; + letter-spacing: 1.7px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.6); + margin-bottom: 8px; + } + + .est-photo-caption strong { + display: block; + font-size: clamp(24px, 3vw, 42px); + font-weight: 900; + line-height: 1.02; + letter-spacing: -0.04em; + } + + .est-copy { + border-radius: 26px; + background: #09090b; + color: #ffffff; + padding: clamp(34px, 5vw, 62px); + display: flex; + flex-direction: column; + justify-content: space-between; + overflow: hidden; + position: relative; + } + + .est-copy::before { + content: ""; + position: absolute; + width: 320px; + height: 320px; + right: -120px; + top: -120px; + background: radial-gradient(circle, rgba(200, 16, 46, 0.42), transparent 68%); + pointer-events: none; + } + + .est-quote-mark { + position: relative; + font-family: Georgia, serif; + font-size: 92px; + line-height: 0.8; + color: #c8102e; + display: block; + margin-bottom: 20px; + } + + .est-quote-text { + position: relative; + font-size: clamp(25px, 3vw, 44px); + font-weight: 800; + line-height: 1.12; + letter-spacing: -0.04em; + color: #ffffff; + margin: 0 0 28px 0; + } + + .est-narrative { + position: relative; + font-size: 15.5px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.66); + margin: 0; + max-width: 46ch; + } + + .est-person { + position: relative; + padding-top: clamp(38px, 5vw, 64px); + } + + .est-person-name { + font-size: 18px; + font-weight: 900; + color: #ffffff; + } + + .est-person-role { + font-size: 13.5px; + color: rgba(255, 255, 255, 0.52); + margin-top: 3px; + } + + .est-list-label { + font-size: 12px; + font-weight: 800; + letter-spacing: 1.8px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.42); + padding-top: clamp(24px, 3vw, 38px); + border-top: 1px solid rgba(17, 17, 17, 0.14); + margin-bottom: clamp(20px, 3vw, 30px); + } + + .est-list { + display: flex; + gap: 18px; + overflow-x: auto; + scroll-snap-type: x mandatory; + padding-bottom: 12px; + margin-bottom: clamp(6px, 1vw, 10px); + -webkit-overflow-scrolling: touch; + } + + .est-list::-webkit-scrollbar { + height: 4px; + } + + .est-list::-webkit-scrollbar-thumb { + background: rgba(17, 17, 17, 0.18); + border-radius: 100px; + } + + .est-row { + scroll-snap-align: start; + flex: 0 0 clamp(260px, 30vw, 340px); + min-height: 220px; + padding: clamp(24px, 2.6vw, 32px); + border: 1px solid rgba(17, 17, 17, 0.14); + border-radius: 20px; + display: flex; + flex-direction: column; + justify-content: space-between; + transition: border-color 0.3s ease, transform 0.3s ease; + } + + .est-row:hover { + border-color: rgba(200, 16, 46, 0.4); + transform: translateY(-4px); + } + + .est-row-name { + font-size: 20px; + font-weight: 900; + color: #111111; + } + + .est-row-role { + font-size: 13px; + font-weight: 800; + letter-spacing: 1.4px; + text-transform: uppercase; + color: #c8102e; + margin-top: 6px; + } + + .est-row-line { + font-size: 15px; + line-height: 1.6; + color: rgba(17, 17, 17, 0.62); + margin: 28px 0 0; + } + + @media (max-width: 1000px) { + .est-head, + .est-feature { grid-template-columns: 1fr; } + .est-row { + min-height: 0; + flex-basis: 78vw; + } + } + + @media (max-width: 640px) { + .est-section { padding-top: 54px; padding-bottom: 6px; } + /* .est-feature's margin-bottom (clamp(44px, 6vw, 76px)) was sized + to precede an .est-list testimonial row block that no longer + exists in this component's JSX. Since .est-feature is now the + section's last child, that margin was pure dead space stacking + on top of .est-section's own padding-bottom above — the real + source of the oversized mobile gap before the next section. */ + .est-feature { margin-bottom: 0; } + .est-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .est-quote-text { + font-size: clamp(25px, 8vw, 34px); + overflow-wrap: anywhere; + } + .est-photo, + .est-copy { border-radius: 20px; } + .est-photo { min-height: 420px; } + } + a:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$1d"}}],"$L1e"] +1f:T16dc, + .epn-section { + position: relative; + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto; + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + background: #09090b; + padding: clamp(68px, 8vw, 112px) 0; + } + + .epn-section::before { + content: ""; + position: absolute; + inset: 0; + background: + linear-gradient(120deg, rgba(9, 9, 11, 0.98) 0%, rgba(9, 9, 11, 0.88) 54%, rgba(192, 18, 39, 0.18) 100%), + url("/images/wings-heroslider3.png"); + background-size: cover; + background-position: center 70%; + opacity: 1; + } + + .epn-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + } + + .epn-head { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: clamp(50px, 7vw, 84px); + } + + .epn-head-reveal { + width: 100%; + } + + .epn-divider { + width: 100%; + height: 1px; + margin: 18px 0 clamp(24px, 3.5vw, 40px) 0; + border: none; + background-color: rgba(255, 255, 255, 0.16); + } + + .epn-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.52); + } + + .epn-title { + max-width: 930px; + font-size: clamp(42px, 6.3vw, 90px) !important; + font-weight: 800 !important; + letter-spacing: -0.055em !important; + line-height: 0.98 !important; + text-transform: uppercase !important; + color: #ffffff !important; + margin: 0; + } + + .epn-title em { + color: #ff5470; + font-style: normal; + } + + .epn-body { + display: grid; + grid-template-columns: minmax(280px, 0.46fr) minmax(0, 1fr); + gap: clamp(32px, 5vw, 72px); + align-items: stretch; + } + + .epn-manifesto { + border-left: 4px solid #c8102e; + padding-left: clamp(22px, 3vw, 36px); + align-self: start; + } + + .epn-intro { + font-size: clamp(22px, 2.5vw, 36px); + font-weight: 800; + line-height: 1.12; + letter-spacing: -0.035em; + color: #ffffff; + margin: 0 0 22px; + } + + .epn-note { + font-size: 15.5px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.62); + margin: 0; + max-width: 38ch; + } + + .epn-grid { + display: flex; + flex-direction: column; + border-top: 1px solid rgba(255, 255, 255, 0.16); + } + + .epn-card { + position: relative; + display: grid; + grid-template-columns: 70px minmax(0, 1fr) 32px; + align-items: center; + gap: clamp(18px, 3vw, 40px); + padding: clamp(22px, 2.6vw, 32px) clamp(4px, 1vw, 16px); + border-bottom: 1px solid rgba(255, 255, 255, 0.16); + border-left: 2px solid transparent; + transition: border-color 0.3s ease, padding-left 0.3s ease, background-color 0.3s ease; + } + + .epn-card:hover { + border-left-color: #c8102e; + background: rgba(200, 16, 46, 0.06); + padding-left: clamp(20px, 2.5vw, 32px); + } + + .epn-card-index { + font-size: 15px; + font-weight: 900; + color: rgba(255, 255, 255, 0.35); + } + + .epn-card-title { + font-size: clamp(22px, 2.2vw, 30px) !important; + font-weight: 900 !important; + line-height: 1.1 !important; + letter-spacing: -0.03em !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0 0 8px; + } + + .epn-card-desc { + max-width: 46ch; + font-size: 14.5px; + line-height: 1.6; + color: rgba(255, 255, 255, 0.58); + margin: 0; + } + + .epn-card-arrow { + display: flex; + color: rgba(255, 255, 255, 0.3); + transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s ease; + } + + .epn-card:hover .epn-card-arrow { + transform: translateX(4px); + color: #ff5470; + } + + .epn-cta { + margin-top: clamp(42px, 5vw, 64px); + } + + .epn-cta-btn { + display: inline-flex; + align-items: center; + gap: 10px; + padding: 16px 36px; + border-radius: 100px; + background: #c01227; + color: #ffffff !important; + font-weight: 800; + font-size: 15px; + text-decoration: none !important; + transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease; + } + + .epn-cta-btn:hover { + transform: translateY(-3px); + box-shadow: 0 14px 30px rgba(192, 18, 39, 0.35); + } + + @media (max-width: 1024px) { + .epn-section { width: calc(100% - 24px); border-radius: 22px; } + } + + @media (max-width: 900px) { + .epn-head, + .epn-body { grid-template-columns: 1fr; } + } + + @media (max-width: 700px) { + .epn-title { + font-size: clamp(34px, 10vw, 40px) !important; + letter-spacing: -0.045em !important; + overflow-wrap: anywhere; + } + .epn-card { + grid-template-columns: 44px minmax(0, 1fr); + } + .epn-card-arrow { display: none; } + } + + @media (max-width: 460px) { + .epn-section { padding-top: 54px; padding-bottom: 54px; } + } + b:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$1f"}}],"$L20"] +21:Tdad, + .emp-cta-wrap { + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto clamp(40px, 5vw, 64px); + } + + .emp-cta { + position: relative; + overflow: hidden; + border-radius: 28px; + min-height: clamp(480px, 48vw, 680px); + background: #09090b; + display: flex; + align-items: flex-end; + } + + .emp-cta::before { + content: ""; + position: absolute; + inset: 0; + background-image: + linear-gradient(180deg, rgba(9, 9, 11, 0.18) 0%, rgba(9, 9, 11, 0.52) 48%, rgba(9, 9, 11, 0.96) 100%), + linear-gradient(90deg, rgba(9, 9, 11, 0.88) 0%, rgba(9, 9, 11, 0.35) 58%, rgba(9, 9, 11, 0.12) 100%), + url("/images/bg-header-women.webp"); + background-size: cover; + background-position: center; + transform: scale(1.02); + } + + .emp-cta-inner { + position: relative; + z-index: 1; + max-width: 1380px; + width: 100%; + margin: 0 auto; + padding: clamp(46px, 7vw, 88px) clamp(24px, 5vw, 64px); + box-sizing: border-box; + } + + .emp-cta-recap { + display: flex; + gap: clamp(28px, 4vw, 52px); + margin-bottom: clamp(28px, 4vw, 44px); + padding-bottom: clamp(24px, 3vw, 36px); + border-bottom: 1px solid rgba(255, 255, 255, 0.16); + } + + .emp-cta-recap-item { + display: flex; + align-items: baseline; + gap: 10px; + } + + .emp-cta-recap-num { + font-size: clamp(22px, 2.4vw, 32px); + font-weight: 900; + letter-spacing: -0.02em; + color: transparent; + -webkit-text-stroke: 1.3px rgba(255, 255, 255, 0.85); + } + + .emp-cta-recap-label { + font-size: 12px; + font-weight: 700; + letter-spacing: 0.6px; + color: rgba(255, 255, 255, 0.5); + } + + .emp-cta-kicker { + font-size: 13px; + font-weight: 900; + letter-spacing: 2.4px; + text-transform: uppercase; + color: #ff5470; + margin-bottom: 22px; + } + + .emp-cta-title { + max-width: 980px; + color: #ffffff !important; + font-size: clamp(44px, 7vw, 108px) !important; + font-weight: 900 !important; + line-height: 0.95 !important; + letter-spacing: -0.06em !important; + text-transform: uppercase !important; + margin: 0 0 clamp(24px, 3vw, 34px); + } + + .emp-cta-title em { + color: #ff5470; + font-style: normal; + } + + .emp-cta-bottom { + display: block; + max-width: 1120px; + } + + .emp-cta-sub { + max-width: 620px; + font-size: 16px; + line-height: 1.68; + color: rgba(255, 255, 255, 0.68); + margin: 0; + } + + @media (max-width: 1024px) { + .emp-cta-wrap { width: calc(100% - 24px); } + .emp-cta { border-radius: 22px; } + } + + @media (max-width: 760px) { + .emp-cta { min-height: 600px; } + .emp-cta::before { background-position: 76% center; } + .emp-cta-title { + font-size: clamp(36px, 11vw, 44px) !important; + letter-spacing: -0.05em !important; + overflow-wrap: anywhere; + } + .emp-cta-recap { flex-wrap: wrap; row-gap: 14px; } + } + c:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$21"}}],"$L22"] +d:["$","script","script-0",{"src":"/_next/static/chunks/0vzdvje64yndv.js","async":true}] +e:["$","$L23",null,{"children":["$","$24",null,{"name":"Next.MetadataOutlet","children":"$@25"}]}] +12:["$","section",null,{"className":"ev-section","id":"wings-empowerment-vision","children":[["$","div",null,{"className":"ev-map","aria-hidden":"true","children":["$","$L26",null,{}]}],["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"ev-inner","children":[["$","$Lf",null,{"delay":0.05,"duration":0.7,"yOffset":20,"children":[["$","p",null,{"className":"ev-eyebrow","children":"/ Our Vision /"}],["$","hr",null,{"className":"ev-divider"}]]}],["$","$Lf",null,{"delay":0.12,"duration":0.85,"yOffset":30,"children":["$","h2",null,{"className":"ev-title","children":"Women Own The Future."}]}],["$","div",null,{"className":"ev-columns","children":[["$","$Lf",null,{"delay":0.18,"duration":0.8,"yOffset":25,"children":["$","p",null,{"className":"ev-statement","children":"A logistics ecosystem where women don’t just participate — they own, build, and lead."}]}],["$","$Lf",null,{"delay":0.26,"duration":0.8,"yOffset":25,"className":"ev-support","children":[["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"The vision"}],["$","p",null,{"className":"ev-lead","children":"We are building an entrepreneurial ecosystem where women launch enterprises, scale operations, and shape the future of logistics from the inside."}]]}],["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"Why it matters"}],["$","p",null,{"className":"ev-note","children":"Industries transform when founders emerge from every corner. Women-led enterprises bring fresh perspective, operational resilience, and long-term economic impact to logistics."}]]}],["$","div",null,{"className":"ev-block","children":[["$","p",null,{"className":"ev-block-label","children":"How Wings contributes"}],["$","p",null,{"className":"ev-note","children":"Wings provides the infrastructure — strategic partnerships, funding access, founder networks, and industry connections — that turns ambition into enterprise."}]]}]]}]]}]]}]}]]}] +14:["$","section",null,{"className":"esy-section","id":"wings-empowerment-story","children":[["$","div",null,{"className":"esy-bg","aria-hidden":"true"}],["$","div",null,{"className":"esy-inner dm-section-container","children":[["$","$Lf",null,{"delay":0.05,"duration":0.85,"yOffset":25,"children":[["$","div",null,{"className":"esy-eyebrow","children":"/ Our Approach /"}],["$","p",null,{"className":"esy-statement","children":["Not a program on a brochure. ",["$","em",null,{"children":"An ecosystem women can build in."}]]}]]}],["$","$Lf",null,{"delay":0.15,"duration":0.8,"yOffset":25,"className":"esy-side","children":[["$","span",null,{"className":"esy-label","children":"Manifesto"}],["$","p",null,{"className":"esy-pull","children":"A venture that starts with conviction. A network that turns it into momentum."}],["$","p",null,{"className":"esy-sub","children":"Wings is designed around the moments that define a founder: the first partnership signed, the first client won, the first team hired, the first enterprise scaled."}]]}]]}]]}] +16:["$","div",null,{"id":"women-entrepreneurship","className":"elementor-element elementor-element-bbc6760 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"bbc6760","data-element_type":"container","data-e-type":"container","style":{"backgroundColor":"#1f1f1f","width":"calc(100% - 40px)","marginLeft":"20px","marginRight":"20px","borderRadius":"25px"},"children":[["$","div",null,{"className":"elementor-element elementor-element-13a7637 elementor-widget__width-auto elementor-absolute elementor-widget elementor-widget-logico_decorative_block","data-id":"13a7637","data-element_type":"widget","data-e-type":"widget","style":{"position":"absolute"},"children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"block-decoration animation-enable block-decoration-style-1","children":["$","div",null,{"className":"block-decoration-item"}]}]}]}],["$","div",null,{"style":{"backgroundImage":"url(/images/bg-header-women.webp)"},"className":"elementor-element elementor-element-7da6646 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"7da6646","data-element_type":"container","data-e-type":"container"}],["$","div",null,{"className":"elementor-element elementor-element-8b5d6e6 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"8b5d6e6","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-1f766ea e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"1f766ea","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-3b61435 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3b61435","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":[["$","div",null,{"className":"elementor-element elementor-element-c364d1c elementor-widget elementor-widget-text-editor","data-id":"c364d1c","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","p",null,{"children":"01"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-239afbb elementor-widget elementor-widget-logico_heading","data-id":"239afbb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h5",null,{"className":"logico-title","children":"Women Entrepreneurship"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-0d307dd elementor-widget elementor-widget-text-editor","data-id":"0d307dd","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","p",null,{"children":"An ecosystem where women build, own, and scale enterprises across logistics."}]}]}]]}],["$","div",null,{"className":"elementor-element elementor-element-5aea22e e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5aea22e","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":["$","div",null,{"className":"elementor-element elementor-element-46b9ffa elementor-widget elementor-widget-logico_button","data-id":"46b9ffa","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"button-widget","children":["$","div",null,{"className":"button-container","children":["$","a",null,{"href":"#wings-empowerment-programs","className":"logico-small-button","children":["Explore the ecosystem",["$","svg",null,{"viewBox":"0 0 13 20","children":"$L27"}]]}]}]}]}]}]}]]}]}],"$L28"]}] +18:["$","section",null,{"className":"epr-section","id":"wings-empowerment-programs","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"epr-inner","children":[["$","div",null,{"className":"epr-head","children":[["$","$Lf",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"epr-head-reveal","children":[["$","div",null,{"className":"epr-eyebrow","children":"/ Entrepreneurship Pillars /"}],["$","hr",null,{"className":"epr-divider"}]]}],["$","$Lf",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"epr-title","children":"Every pillar is built around ownership."}]}]]}],["$","div",null,{"className":"epr-stage","children":[["$","div",null,{"className":"epr-aside-wrap","children":["$","div",null,{"className":"epr-aside-sticky","children":["$","aside",null,{"className":"epr-aside","children":[["$","div",null,{"className":"epr-aside-map","aria-hidden":"true","children":["$","$L26",null,{}]}],["$","$Lf",null,{"delay":0.05,"duration":0.8,"yOffset":24,"className":"epr-aside-content","children":[["$","div",null,{"className":"epr-aside-num","children":"05"}],["$","p",null,{"className":"epr-aside-copy","children":["Building tomorrow’s ",["$","em",null,{"children":"women entrepreneurs."}]]}],["$","p",null,{"className":"epr-aside-desc","children":"Every enterprise starts with one decision. Our pillars move women from idea to ownership through mentorship, real industry partnerships, and hands-on venture building across the logistics ecosystem."}]]}]]}]}]}],["$","div",null,{"children":[["$","$Lf",null,{"delay":0.1,"duration":0.8,"yOffset":24,"children":["$","div",null,{"className":"epr-list","children":[["$","article","Venture Launchpad",{"className":"epr-row epr-row-featured","children":[["$","div",null,{"className":"epr-row-index","children":"01"}],["$","div",null,{"children":[["$","span",null,{"className":"epr-row-flag","children":"Where most founders begin"}],["$","span",null,{"className":"epr-row-type","children":"Start building"}],["$","h3",null,{"className":"epr-row-title","children":"Venture Launchpad"}],["$","p",null,{"className":"epr-row-desc","children":"Business model validation, market entry strategy, entity formation, and go-to-market execution for women-led logistics enterprises."}]]}]]}],["$","article","Strategic Partnerships",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"02"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Connect and grow"}],["$","h3",null,{"className":"epr-row-title","children":"Strategic Partnerships"}],["$","p",null,{"className":"epr-row-desc","children":"Direct access to supply chain networks, B2B relationships, industry alliances, and commercial agreements that accelerate growth."}]]}]]}],["$","article","Founder Mentorship",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"03"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Learn from builders"}],["$","h3",null,{"className":"epr-row-title","children":"Founder Mentorship"}],["$","p",null,{"className":"epr-row-desc","children":"One-on-one guidance from established entrepreneurs, operators, and investors who understand what it takes to scale."}]]}]]}],["$","article","Growth & Scale",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"04"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"Scale with confidence"}],["$","h3",null,{"className":"epr-row-title","children":"Growth & Scale"}],["$","p",null,{"className":"epr-row-desc","children":"Operational expansion frameworks, team building, funding readiness, and sustainable unit economics for ventures ready to grow."}]]}]]}],["$","article","Industry Immersion",{"className":"epr-row","children":[["$","div",null,{"className":"epr-row-index","children":"05"}],["$","div",null,{"children":[false,["$","span",null,{"className":"epr-row-type","children":"See the opportunity"}],["$","h3",null,{"className":"epr-row-title","children":"Industry Immersion"}],["$","p",null,{"className":"epr-row-desc","children":"Real exposure to logistics operations, supply chain infrastructure, and distribution networks before founders commit to a vertical."}]]}]]}]]}]}],["$","div",null,{"className":"epr-cta","children":["$","$L29",null,{"href":"/contact","className":"epr-cta-link","children":["Start your venture","$L2a"]}]}]]}]]}]]}]}]}] +1a:["$","section",null,{"className":"eim-section","id":"wings-empowerment-impact","children":["$","div",null,{"className":"eim-inner dm-section-container","children":[["$","$Lf",null,{"delay":0.05,"duration":0.75,"yOffset":20,"children":[["$","div",null,{"className":"eim-eyebrow","children":"/ Our Impact /"}],["$","h2",null,{"className":"eim-title","children":"Growth we can measure"}]]}],["$","hr",null,{"className":"eim-divider"}],["$","$Lf",null,{"delay":0.08,"duration":0.8,"yOffset":20,"className":"eim-hero-row","children":[["$","span",null,{"className":"eim-hero-num","children":["$","$L2b",null,{"end":500,"suffix":"+","duration":2.2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-hero-label","children":"Women-Led Enterprises In The Ecosystem"}]]}],["$","hr",null,{"className":"eim-divider-2"}],["$","$Lf",null,{"delay":0.1,"duration":0.8,"yOffset":20,"children":["$","div",null,{"className":"eim-secondary-row","children":[["$","div","Enterprises Launched",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L2b",null,{"end":100,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Enterprises Launched"}]]}],["$","div","Industry Partners",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L2b",null,{"end":25,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Industry Partners"}]]}],["$","div","Cities Active",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":["$","$L2b",null,{"end":15,"suffix":"+","duration":2,"triggerOnce":true}]}],["$","span",null,{"className":"eim-secondary-label","children":"Cities Active"}]]}],["$","div","In Economic Value Created",{"className":"eim-secondary-item","children":[["$","span",null,{"className":"eim-secondary-num","children":"Millions"}],["$","span",null,{"className":"eim-secondary-label","children":"In Economic Value Created"}]]}]]}]}],["$","$Lf",null,{"delay":0.12,"duration":0.75,"yOffset":20,"className":"eim-copy","children":["$","p",null,{"children":"Every number on this page represents a woman who walked into a room with an idea and walked out with a business. An enterprise launched, a partnership secured, a market entered — each is a marker of real economic impact, not a statistic collected for its own sake."}]}]]}]}] +1c:["$","section",null,{"className":"ehw-section","id":"wings-empowerment-how-it-works","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"ehw-inner","children":[["$","div",null,{"className":"ehw-head","children":[["$","$Lf",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"ehw-head-reveal","children":[["$","div",null,{"className":"ehw-eyebrow","children":"/ The Founder Journey /"}],["$","hr",null,{"className":"ehw-divider"}]]}],["$","$Lf",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"ehw-title","children":"A clear path, from idea to enterprise"}]}]]}],["$","$L2c",null,{"className":"ehw-sequence","stagger":0.12,"duration":0.7,"yOffset":30,"triggerOnce":true,"children":[["$","div","01",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"01"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Apply"}],["$","p",null,{"className":"ehw-step-desc","children":"Submit your venture idea and tell us about your entrepreneurial vision."}]]}],["$","div","02",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"02"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Discovery"}],["$","p",null,{"className":"ehw-step-desc","children":"Identify the right market opportunity and validate your business model."}]]}],["$","div","03",{"className":"ehw-step is-accent","children":[["$","div",null,{"className":"ehw-step-num","children":"03"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Build"}],["$","p",null,{"className":"ehw-step-desc","children":"Develop your enterprise with ecosystem support, mentorship, and partnerships."}]]}],["$","div","04",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"04"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Launch"}],["$","p",null,{"className":"ehw-step-desc","children":"Go to market with strategic backing, industry connections, and operational infrastructure."}]]}],["$","div","05",{"className":"ehw-step","children":[["$","div",null,{"className":"ehw-step-num","children":"05"}],["$","div",null,{"className":"ehw-step-kicker","aria-hidden":"true","children":[["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M7 17 17 7M9 7h8v8"}]}],["$","span",null,{"children":"Step"}]]}],["$","h3",null,{"className":"ehw-step-title","children":"Scale"}],["$","p",null,{"className":"ehw-step-desc","children":"Grow your team, expand operations, and lead your enterprise to sustainable impact."}]]}]]}]]}]}]}] +1e:["$","section",null,{"className":"est-section","id":"wings-empowerment-stories","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"est-inner","children":[["$","div",null,{"className":"est-head","children":[["$","$Lf",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"est-head-reveal","children":[["$","div",null,{"className":"est-eyebrow","children":"/ Women in Motion /"}],["$","hr",null,{"className":"est-divider"}]]}],["$","$Lf",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"est-title","children":"Small steps. Lasting careers."}]}]]}],["$","div",null,{"className":"est-feature","children":[["$","$Lf",null,{"delay":0.05,"duration":0.85,"yOffset":24,"className":"est-photo","children":[["$","$L2d",null,{"src":"/images/women-hero-slider-3.png","alt":"A Wings program participant on the operations floor at a Doormile logistics hub","fill":true,"sizes":"(max-width: 1000px) 100vw, 58vw","style":{"objectPosition":"80% 22%"}}],["$","div",null,{"className":"est-photo-caption","children":[["$","span",null,{"children":"Wings Participant"}],["$","strong",null,{"children":" building a career, one milestone at a time."}]]}]]}],["$","$Lf",null,{"delay":0.12,"duration":0.85,"yOffset":24,"className":"est-copy","children":["$","div",null,{"children":[["$","span",null,{"className":"est-quote-mark","aria-hidden":"true","children":"“"}],["$","p",null,{"className":"est-quote-text","children":"I came in looking for a way forward. I found the confidence to lead."}],["$","p",null,{"className":"est-narrative","children":"She started with limited exposure to logistics. Through structured training, mentorship, and hands-on experience, she built real operational skills — and now supports other women stepping into the industry."}]]}]}]]}]]}]}]}] +20:["$","section",null,{"className":"epn-section","id":"wings-empowerment-partners","children":["$","div",null,{"className":"dm-section-container","children":["$","div",null,{"className":"epn-inner","children":[["$","div",null,{"className":"epn-head","children":[["$","$Lf",null,{"delay":0.05,"duration":0.75,"yOffset":20,"className":"epn-head-reveal","children":[["$","div",null,{"className":"epn-eyebrow","children":"/ Collaboration /"}],["$","hr",null,{"className":"epn-divider"}]]}],["$","$Lf",null,{"delay":0.1,"duration":0.85,"yOffset":24,"children":["$","h2",null,{"className":"epn-title","children":["Partnership is how ",["$","em",null,{"children":"ecosystems grow."}]]}]}]]}],["$","div",null,{"className":"epn-body","children":[["$","$Lf",null,{"delay":0.08,"duration":0.8,"yOffset":22,"className":"epn-manifesto","children":[["$","p",null,{"className":"epn-intro","children":"The strongest ecosystems are built by many hands."}],["$","p",null,{"className":"epn-note","children":"Wings partners bring industry access, strategic infrastructure, capital, and networks. Together, we build the foundation women-led enterprises need to thrive."}]]}],["$","$Lf",null,{"delay":0.12,"duration":0.8,"yOffset":22,"children":["$","div",null,{"className":"epn-grid","children":[["$","article","Industry Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"01"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Industry Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Strategic alliances with logistics operators, supply chain leaders, and distribution networks that open doors for women-led enterprises."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Technology Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"02"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Technology Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Platforms, tools, and infrastructure that give founders the operational edge to compete and scale efficiently."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Community Networks",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"03"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Community Networks"}],["$","p",null,{"className":"epn-card-desc","children":"Founder communities, women's business networks, and ecosystem builders who extend reach and amplify impact."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}],["$","article","Investment Partners",{"className":"epn-card","children":[["$","span",null,{"className":"epn-card-index","children":"04"}],["$","div",null,{"children":[["$","h3",null,{"className":"epn-card-title","children":"Investment Partners"}],["$","p",null,{"className":"epn-card-desc","children":"Funding access, grant programs, angel networks, and capital partners aligned with women-led enterprise growth."}]]}],["$","span",null,{"className":"epn-card-arrow","aria-hidden":"true","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}]}]]}]]}]}]]}]]}]}]}] +22:["$","div",null,{"className":"emp-cta-wrap","children":["$","section",null,{"className":"emp-cta","aria-labelledby":"empowerment-final-cta","children":["$","div",null,{"className":"emp-cta-inner","children":[["$","div",null,{"className":"emp-cta-recap","children":[["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"500+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Women Founders"}]]}],["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"100+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Enterprises Launched"}]]}],["$","div",null,{"className":"emp-cta-recap-item","children":[["$","span",null,{"className":"emp-cta-recap-num","children":"25+"}],["$","span",null,{"className":"emp-cta-recap-label","children":"Industry Partners"}]]}]]}],["$","div",null,{"className":"emp-cta-kicker","children":"/ Build the next mile /"}],["$","h2",null,{"className":"emp-cta-title","id":"empowerment-final-cta","children":["Build what’s ",["$","em",null,{"children":"next."}]]}],["$","div",null,{"className":"emp-cta-bottom","children":["$","p",null,{"className":"emp-cta-sub","children":"Join Doormile Wings in building the entrepreneurial ecosystem where women launch, grow, and lead enterprises that create lasting value across logistics."}]}]]}]}]}] +25:null +27:["$","polyline",null,{"points":"0.5 19.5 3 19.5 12.5 10 3 0.5"}] +28:["$","div",null,{"className":"elementor-element elementor-element-b6e14bd e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"b6e14bd","data-element_type":"container","data-e-type":"container","data-settings":"{\"background_background\":\"classic\"}","children":[["$","div",null,{"className":"ws-map","aria-hidden":"true","children":["$","$L26",null,{}]}],["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-90cc867 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"90cc867","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-24c0280 elementor-widget__width-inherit elementor-widget elementor-widget-logico_heading","data-id":"24c0280","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/ Women Empowerment /"}]}]}],["$","div",null,{"className":"elementor-element elementor-element-2ed47f3 e-con-full e-grid cut-corner-no sticky-container-off e-con e-child","data-id":"2ed47f3","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-36efec7 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"36efec7","data-element_type":"container","data-e-type":"container","children":[["$","$Lf",null,{"duration":0.8,"yOffset":28,"triggerOnce":true,"children":["$","div",null,{"className":"elementor-element elementor-element-778840d elementor-widget elementor-widget-logico_heading","data-id":"778840d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","h3",null,{"className":"logico-title","children":"Women Building The Next Mile"}]}]}]}],["$","div",null,{"className":"elementor-element elementor-element-bbfb67f elementor-widget elementor-widget-image","data-id":"bbfb67f","data-element_type":"widget","data-e-type":"widget","data-widget_type":"image.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","$L2d",null,{"src":"/images/bg-map-women.webp","alt":"Women Map","width":626,"height":692,"style":{"maxWidth":"100%","height":"auto"}}]}]}]]}],["$","div",null,{"className":"elementor-element elementor-element-b2c956f e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"b2c956f","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"id":"ws-stories","children":[["$","$L2c",null,{"className":"ws__stats","stagger":0.1,"duration":0.6,"yOffset":20,"triggerOnce":true,"children":[["$","div","Women Founders",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L2b",null,{"end":500,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Women Founders"}]]}],["$","div","Cities Active",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L2b",null,{"end":35,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Cities Active"}]]}],["$","div","Enterprises Launched",{"className":"ws__stat","children":[["$","div",null,{"className":"ws__stat-num","children":[["$","$L2b",null,{"end":100,"suffix":"","duration":1.8,"triggerOnce":true}],["$","span",null,{"children":"+"}]]}],["$","div",null,{"className":"ws__stat-label","children":"Enterprises Launched"}]]}]]}],["$","$L2c",null,{"className":"ws__cards","stagger":0.08,"duration":0.6,"yOffset":24,"triggerOnce":true,"children":[["$","div","Venture Building",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M4 19V5"}],["$","path",null,{"d":"M4 7h12l-2 4 2 4H4"}],["$","path",null,{"d":"M18 19h2"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Venture Building"}],["$","p",null,{"className":"ws__card-desc","children":"End-to-end support for women launching logistics enterprises — from ideation to market entry."}]]}],"$L2e","$L2f","$L30"]}]]}]}]]}]]}]}]]}] +2a:["$","svg",null,{"width":"16","height":"16","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2.25","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M5 12h14M13 6l6 6-6 6"}]}] +2e:["$","div","Entrepreneurship",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","rect",null,{"x":"3","y":"7","width":"18","height":"13","rx":"2"}],["$","path",null,{"d":"M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 12h18"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Entrepreneurship"}],["$","p",null,{"className":"ws__card-desc","children":"Women building, owning, and scaling sustainable businesses within the logistics ecosystem."}]]}] +2f:["$","div","Founder Networks",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"8","cy":"8","r":"3"}],["$","circle",null,{"cx":"16","cy":"8","r":"3"}],["$","path",null,{"d":"M2.5 20c.7-3.1 2.8-5 5.5-5s4.8 1.9 5.5 5"}],["$","path",null,{"d":"M10.5 20c.7-3.1 2.8-5 5.5-5s4.8 1.9 5.5 5"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Founder Networks"}],["$","p",null,{"className":"ws__card-desc","children":"Peer communities and strategic connections that accelerate growth and open new markets."}]]}] +30:["$","div","Enterprise Leadership",{"className":"ws__card","children":[["$","span",null,{"className":"ws__card-icon","aria-hidden":"true","children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.8","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"12","cy":"9","r":"5"}],["$","path",null,{"d":"M9 13.5 7.5 21 12 18l4.5 3-1.5-7.5"}]]}]}],["$","div",null,{"className":"ws__card-title","children":"Enterprise Leadership"}],["$","p",null,{"className":"ws__card-desc","children":"Strategic decision-making, operational excellence, and vision-driven leadership for women founders."}]]}] diff --git a/build/.next/server/app/empowerment/page.js b/build/.next/server/app/empowerment/page.js new file mode 100644 index 0000000..73d5055 --- /dev/null +++ b/build/.next/server/app/empowerment/page.js @@ -0,0 +1,17 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/empowerment/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0oqdvq1._.js") +R.c("server/chunks/ssr/_0sw0r2k._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/src_07wjkqu._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hb_~4l.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_empowerment_page_actions_12iuwob.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(4776) +module.exports=R.m(4776).exports diff --git a/build/.next/server/app/empowerment/page.js.map b/build/.next/server/app/empowerment/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/empowerment/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/empowerment/page.js.nft.json b/build/.next/server/app/empowerment/page.js.nft.json new file mode 100644 index 0000000..25a8083 --- /dev/null +++ b/build/.next/server/app/empowerment/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[root-of-the-server]__0oqdvq1._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_0sw0r2k._.js","../../chunks/ssr/_next-internal_server_app_empowerment_page_actions_12iuwob.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hb_~4l.js","../../chunks/ssr/src_07wjkqu._.js","../../chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/empowerment/page/app-paths-manifest.json b/build/.next/server/app/empowerment/page/app-paths-manifest.json new file mode 100644 index 0000000..7b8f0fc --- /dev/null +++ b/build/.next/server/app/empowerment/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/empowerment/page": "app/empowerment/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/empowerment/page/build-manifest.json b/build/.next/server/app/empowerment/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/empowerment/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/empowerment/page/next-font-manifest.json b/build/.next/server/app/empowerment/page/next-font-manifest.json new file mode 100644 index 0000000..98869b2 --- /dev/null +++ b/build/.next/server/app/empowerment/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/empowerment/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/empowerment/page/react-loadable-manifest.json b/build/.next/server/app/empowerment/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/empowerment/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/empowerment/page/server-reference-manifest.json b/build/.next/server/app/empowerment/page/server-reference-manifest.json new file mode 100644 index 0000000..0d9e01d --- /dev/null +++ b/build/.next/server/app/empowerment/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/empowerment/page": { + "moduleId": 61215, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/empowerment/page_client-reference-manifest.js b/build/.next/server/app/empowerment/page_client-reference-manifest.js new file mode 100644 index 0000000..7965973 --- /dev/null +++ b/build/.next/server/app/empowerment/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/empowerment/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/Reveal.tsx ":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"async":false},"[project]/src/animations/Reveal.tsx":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"async":false},"[project]/src/components/sections/IndustryWorldMap.tsx ":{"id":5074,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"async":false},"[project]/src/components/sections/IndustryWorldMap.tsx":{"id":5074,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js ":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js ":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vzdvje64yndv.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"2018":{"*":{"id":36002,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js"],"async":false}},"5074":{"*":{"id":22994,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js"],"async":false}},"5500":{"*":{"id":67161,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js"],"async":false}},"22016":{"*":{"id":38246,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"2018":{"*":{"id":9386,"name":"*","chunks":[],"async":false}},"5074":{"*":{"id":17381,"name":"*","chunks":[],"async":false}},"5500":{"*":{"id":43489,"name":"*","chunks":[],"async":false}},"22016":{"*":{"id":84707,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/empowerment/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/empowerment/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/0vzdvje64yndv.js"]}}; + diff --git a/build/.next/server/app/express.html b/build/.next/server/app/express.html new file mode 100644 index 0000000..95c7e1a --- /dev/null +++ b/build/.next/server/app/express.html @@ -0,0 +1,756 @@ +Express – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

Solutions / Express

Doormile Express is on its way

We're building a fast-lane logistics service for time-critical shipments. Check back soon, or explore what Doormile already delivers today.

\ No newline at end of file diff --git a/build/.next/server/app/express.meta b/build/.next/server/app/express.meta new file mode 100644 index 0000000..50a8c51 --- /dev/null +++ b/build/.next/server/app/express.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/express/layout,_N_T_/express/page,_N_T_/express" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/express/__PAGE__", + "/express", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/express.rsc b/build/.next/server/app/express.rsc new file mode 100644 index 0000000..0a1b243 --- /dev/null +++ b/build/.next/server/app/express.rsc @@ -0,0 +1,114 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +12:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","express"],"q":"","i":false,"f":[[["",{"children":["express",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"express","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","section",null,{"className":"express-coming-soon","children":["$","div",null,{"className":"express-coming-soon-inner","children":[["$","span",null,{"className":"express-coming-soon-eyebrow","children":"Solutions / Express"}],["$","h1",null,{"className":"express-coming-soon-heading","children":["Doormile Express is ",["$","span",null,{"className":"express-coming-soon-accent","children":"on its way"}]]}],["$","p",null,{"className":"express-coming-soon-text","children":"We're building a fast-lane logistics service for time-critical shipments. Check back soon, or explore what Doormile already delivers today."}],["$","div",null,{"className":"express-coming-soon-actions","children":["$Lc","$Ld"]}]]}]}]}]}],"$Le"]}],null,"$Lf"]}],{},null,false,null]},null,false,"$@10"]},null,false,null],"$L11",false]],"m":"$undefined","G":["$12",["$L13"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +14:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],""] +16:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +17:"$Sreact.suspense" +1a:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1c:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","$L14",null,{"href":"/doormile-wings","prefetch":true,"className":"logico-alter-button","children":"Explore Doormile Wings"}] +d:["$","$L14",null,{"href":"/contact","className":"express-coming-soon-link","children":"Get notified when we launch →"}] +15:Tb69, + .express-coming-soon { + --logico-dark-text-color: #ffffff; + --logico-light-text-color: #bebebe; + --logico-accent-color: #C01227; + min-height: calc(100vh - 160px); + display: flex; + align-items: center; + justify-content: center; + padding: clamp(48px, 8vw, 120px) 24px; + background: radial-gradient(120% 120% at 50% 0%, rgba(192, 18, 39, 0.18) 0%, rgba(26, 26, 26, 0.98) 55%, #111111 100%); + } + .express-coming-soon-inner { + max-width: 720px; + text-align: center; + } + .express-coming-soon-eyebrow { + display: inline-block; + font-size: 13px; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--logico-accent-color); + margin-bottom: 20px; + } + .express-coming-soon-heading { + font-family: 'Manrope', sans-serif; + font-size: clamp(32px, 5vw, 56px); + line-height: 1.15em; + font-weight: 700; + color: var(--logico-dark-text-color); + margin: 0 0 20px; + } + .express-coming-soon-accent { + color: var(--logico-accent-color); + } + .express-coming-soon-text { + font-size: 16px; + line-height: 1.75em; + color: var(--logico-light-text-color); + margin: 0 auto 36px; + max-width: 520px; + } + .express-coming-soon-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + gap: 24px; + } + .express-coming-soon .logico-alter-button { + color: #ffffff !important; + border-color: rgba(255, 255, 255, 0.45) !important; + background: transparent !important; + } + .express-coming-soon .logico-alter-button:hover { + background: #ffffff !important; + color: #1a1a1a !important; + border-color: #ffffff !important; + } + .express-coming-soon-link { + font-size: 15px; + font-weight: 600; + color: var(--logico-light-text-color); + text-decoration: underline; + text-underline-offset: 4px; + } + .express-coming-soon-link:hover { + color: #ffffff; + } + @media (max-width: 480px) { + .express-coming-soon-actions { + flex-direction: column; + gap: 16px; + } + } + e:["$","style",null,{"suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"$15"}}] +f:["$","$L16",null,{"children":["$","$17",null,{"name":"Next.MetadataOutlet","children":"$@18"}]}] +19:[] +10:"$W19" +11:["$","$1","h",{"children":[null,["$","$L1a",null,{"children":"$L1b"}],["$","div",null,{"hidden":true,"children":["$","$L1c",null,{"children":["$","$17",null,{"name":"Next.Metadata","children":"$L1d"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +13:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +1b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +1e:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +18:null +1d:[["$","title","0",{"children":"Express – Doormile"}],["$","meta","1",{"name":"description","content":"Doormile Express — a fast-lane logistics service for time-critical shipments. Coming soon."}],["$","meta","2",{"name":"robots","content":"noindex, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/express"}],["$","link","4",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","5",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","6",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","7",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L1e","8",{}]] diff --git a/build/.next/server/app/express.segments/_full.segment.rsc b/build/.next/server/app/express.segments/_full.segment.rsc new file mode 100644 index 0000000..0a1b243 --- /dev/null +++ b/build/.next/server/app/express.segments/_full.segment.rsc @@ -0,0 +1,114 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +12:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","express"],"q":"","i":false,"f":[[["",{"children":["express",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"express","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","section",null,{"className":"express-coming-soon","children":["$","div",null,{"className":"express-coming-soon-inner","children":[["$","span",null,{"className":"express-coming-soon-eyebrow","children":"Solutions / Express"}],["$","h1",null,{"className":"express-coming-soon-heading","children":["Doormile Express is ",["$","span",null,{"className":"express-coming-soon-accent","children":"on its way"}]]}],["$","p",null,{"className":"express-coming-soon-text","children":"We're building a fast-lane logistics service for time-critical shipments. Check back soon, or explore what Doormile already delivers today."}],["$","div",null,{"className":"express-coming-soon-actions","children":["$Lc","$Ld"]}]]}]}]}]}],"$Le"]}],null,"$Lf"]}],{},null,false,null]},null,false,"$@10"]},null,false,null],"$L11",false]],"m":"$undefined","G":["$12",["$L13"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +14:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],""] +16:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +17:"$Sreact.suspense" +1a:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1c:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","$L14",null,{"href":"/doormile-wings","prefetch":true,"className":"logico-alter-button","children":"Explore Doormile Wings"}] +d:["$","$L14",null,{"href":"/contact","className":"express-coming-soon-link","children":"Get notified when we launch →"}] +15:Tb69, + .express-coming-soon { + --logico-dark-text-color: #ffffff; + --logico-light-text-color: #bebebe; + --logico-accent-color: #C01227; + min-height: calc(100vh - 160px); + display: flex; + align-items: center; + justify-content: center; + padding: clamp(48px, 8vw, 120px) 24px; + background: radial-gradient(120% 120% at 50% 0%, rgba(192, 18, 39, 0.18) 0%, rgba(26, 26, 26, 0.98) 55%, #111111 100%); + } + .express-coming-soon-inner { + max-width: 720px; + text-align: center; + } + .express-coming-soon-eyebrow { + display: inline-block; + font-size: 13px; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--logico-accent-color); + margin-bottom: 20px; + } + .express-coming-soon-heading { + font-family: 'Manrope', sans-serif; + font-size: clamp(32px, 5vw, 56px); + line-height: 1.15em; + font-weight: 700; + color: var(--logico-dark-text-color); + margin: 0 0 20px; + } + .express-coming-soon-accent { + color: var(--logico-accent-color); + } + .express-coming-soon-text { + font-size: 16px; + line-height: 1.75em; + color: var(--logico-light-text-color); + margin: 0 auto 36px; + max-width: 520px; + } + .express-coming-soon-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + gap: 24px; + } + .express-coming-soon .logico-alter-button { + color: #ffffff !important; + border-color: rgba(255, 255, 255, 0.45) !important; + background: transparent !important; + } + .express-coming-soon .logico-alter-button:hover { + background: #ffffff !important; + color: #1a1a1a !important; + border-color: #ffffff !important; + } + .express-coming-soon-link { + font-size: 15px; + font-weight: 600; + color: var(--logico-light-text-color); + text-decoration: underline; + text-underline-offset: 4px; + } + .express-coming-soon-link:hover { + color: #ffffff; + } + @media (max-width: 480px) { + .express-coming-soon-actions { + flex-direction: column; + gap: 16px; + } + } + e:["$","style",null,{"suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"$15"}}] +f:["$","$L16",null,{"children":["$","$17",null,{"name":"Next.MetadataOutlet","children":"$@18"}]}] +19:[] +10:"$W19" +11:["$","$1","h",{"children":[null,["$","$L1a",null,{"children":"$L1b"}],["$","div",null,{"hidden":true,"children":["$","$L1c",null,{"children":["$","$17",null,{"name":"Next.Metadata","children":"$L1d"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +13:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +1b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +1e:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +18:null +1d:[["$","title","0",{"children":"Express – Doormile"}],["$","meta","1",{"name":"description","content":"Doormile Express — a fast-lane logistics service for time-critical shipments. Coming soon."}],["$","meta","2",{"name":"robots","content":"noindex, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/express"}],["$","link","4",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","5",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","6",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","7",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L1e","8",{}]] diff --git a/build/.next/server/app/express.segments/_head.segment.rsc b/build/.next/server/app/express.segments/_head.segment.rsc new file mode 100644 index 0000000..b124918 --- /dev/null +++ b/build/.next/server/app/express.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Express – Doormile"}],["$","meta","1",{"name":"description","content":"Doormile Express — a fast-lane logistics service for time-critical shipments. Coming soon."}],["$","meta","2",{"name":"robots","content":"noindex, follow"}],["$","link","3",{"rel":"canonical","href":"https://doormile.com/express"}],["$","link","4",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","5",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","6",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","7",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","8",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/express.segments/_index.segment.rsc b/build/.next/server/app/express.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/express.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/express.segments/_tree.segment.rsc b/build/.next/server/app/express.segments/_tree.segment.rsc new file mode 100644 index 0000000..fa6aa99 --- /dev/null +++ b/build/.next/server/app/express.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"express","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/express.segments/express.segment.rsc b/build/.next/server/app/express.segments/express.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/express.segments/express.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/express.segments/express/__PAGE__.segment.rsc b/build/.next/server/app/express.segments/express/__PAGE__.segment.rsc new file mode 100644 index 0000000..8d9149f --- /dev/null +++ b/build/.next/server/app/express.segments/express/__PAGE__.segment.rsc @@ -0,0 +1,83 @@ +1:"$Sreact.fragment" +2:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],""] +5:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +6:"$Sreact.suspense" +3:Tb69, + .express-coming-soon { + --logico-dark-text-color: #ffffff; + --logico-light-text-color: #bebebe; + --logico-accent-color: #C01227; + min-height: calc(100vh - 160px); + display: flex; + align-items: center; + justify-content: center; + padding: clamp(48px, 8vw, 120px) 24px; + background: radial-gradient(120% 120% at 50% 0%, rgba(192, 18, 39, 0.18) 0%, rgba(26, 26, 26, 0.98) 55%, #111111 100%); + } + .express-coming-soon-inner { + max-width: 720px; + text-align: center; + } + .express-coming-soon-eyebrow { + display: inline-block; + font-size: 13px; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--logico-accent-color); + margin-bottom: 20px; + } + .express-coming-soon-heading { + font-family: 'Manrope', sans-serif; + font-size: clamp(32px, 5vw, 56px); + line-height: 1.15em; + font-weight: 700; + color: var(--logico-dark-text-color); + margin: 0 0 20px; + } + .express-coming-soon-accent { + color: var(--logico-accent-color); + } + .express-coming-soon-text { + font-size: 16px; + line-height: 1.75em; + color: var(--logico-light-text-color); + margin: 0 auto 36px; + max-width: 520px; + } + .express-coming-soon-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + gap: 24px; + } + .express-coming-soon .logico-alter-button { + color: #ffffff !important; + border-color: rgba(255, 255, 255, 0.45) !important; + background: transparent !important; + } + .express-coming-soon .logico-alter-button:hover { + background: #ffffff !important; + color: #1a1a1a !important; + border-color: #ffffff !important; + } + .express-coming-soon-link { + font-size: 15px; + font-weight: 600; + color: var(--logico-light-text-color); + text-decoration: underline; + text-underline-offset: 4px; + } + .express-coming-soon-link:hover { + color: #ffffff; + } + @media (max-width: 480px) { + .express-coming-soon-actions { + flex-direction: column; + gap: 16px; + } + } + 0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"express","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":[["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","section",null,{"className":"express-coming-soon","children":["$","div",null,{"className":"express-coming-soon-inner","children":[["$","span",null,{"className":"express-coming-soon-eyebrow","children":"Solutions / Express"}],["$","h1",null,{"className":"express-coming-soon-heading","children":["Doormile Express is ",["$","span",null,{"className":"express-coming-soon-accent","children":"on its way"}]]}],["$","p",null,{"className":"express-coming-soon-text","children":"We're building a fast-lane logistics service for time-critical shipments. Check back soon, or explore what Doormile already delivers today."}],["$","div",null,{"className":"express-coming-soon-actions","children":[["$","$L2",null,{"href":"/doormile-wings","prefetch":true,"className":"logico-alter-button","children":"Explore Doormile Wings"}],["$","$L2",null,{"href":"/contact","className":"express-coming-soon-link","children":"Get notified when we launch →"}]]}]]}]}]}]}],["$","style",null,{"suppressHydrationWarning":true,"dangerouslySetInnerHTML":{"__html":"$3"}}]]}],null,"$L4"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +4:["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}] +7:null diff --git a/build/.next/server/app/express/page.js b/build/.next/server/app/express/page.js new file mode 100644 index 0000000..37b42b6 --- /dev/null +++ b/build/.next/server/app/express/page.js @@ -0,0 +1,15 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/express/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0dzpf04._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12we091.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_express_page_actions_0cygozq.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(31185) +module.exports=R.m(31185).exports diff --git a/build/.next/server/app/express/page.js.map b/build/.next/server/app/express/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/express/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/express/page.js.nft.json b/build/.next/server/app/express/page.js.nft.json new file mode 100644 index 0000000..d5e93e2 --- /dev/null +++ b/build/.next/server/app/express/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0dzpf04._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_next-internal_server_app_express_page_actions_0cygozq.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12we091.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/express/page/app-paths-manifest.json b/build/.next/server/app/express/page/app-paths-manifest.json new file mode 100644 index 0000000..e66d6e0 --- /dev/null +++ b/build/.next/server/app/express/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/express/page": "app/express/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/express/page/build-manifest.json b/build/.next/server/app/express/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/express/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/express/page/next-font-manifest.json b/build/.next/server/app/express/page/next-font-manifest.json new file mode 100644 index 0000000..8c1efd1 --- /dev/null +++ b/build/.next/server/app/express/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/express/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/express/page/react-loadable-manifest.json b/build/.next/server/app/express/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/express/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/express/page/server-reference-manifest.json b/build/.next/server/app/express/page/server-reference-manifest.json new file mode 100644 index 0000000..178f055 --- /dev/null +++ b/build/.next/server/app/express/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/express/page": { + "moduleId": 88309, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/express/page_client-reference-manifest.js b/build/.next/server/app/express/page_client-reference-manifest.js new file mode 100644 index 0000000..a42a825 --- /dev/null +++ b/build/.next/server/app/express/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/express/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js ":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"22016":{"*":{"id":38246,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"22016":{"*":{"id":84707,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/express/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/express/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"]}}; + diff --git a/build/.next/server/app/favicon.ico.body b/build/.next/server/app/favicon.ico.body new file mode 100644 index 0000000000000000000000000000000000000000..91c79c6d8550ffe63c3f59d138d5cdcbb58e6cb6 GIT binary patch literal 3590 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 literal 0 HcmV?d00001 diff --git a/build/.next/server/app/favicon.ico.meta b/build/.next/server/app/favicon.ico.meta new file mode 100644 index 0000000..b5516f2 --- /dev/null +++ b/build/.next/server/app/favicon.ico.meta @@ -0,0 +1 @@ +{"status":200,"headers":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"}} \ No newline at end of file diff --git a/build/.next/server/app/favicon.ico/route.js b/build/.next/server/app/favicon.ico/route.js new file mode 100644 index 0000000..cbd22b1 --- /dev/null +++ b/build/.next/server/app/favicon.ico/route.js @@ -0,0 +1,6 @@ +var R=require("../../chunks/[turbopack]_runtime.js")("server/app/favicon.ico/route.js") +R.c("server/chunks/[root-of-the-server]__009pdeo._.js") +R.c("server/chunks/[root-of-the-server]__0j8-xkl._.js") +R.c("server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js") +R.m(88165) +module.exports=R.m(88165).exports diff --git a/build/.next/server/app/favicon.ico/route.js.map b/build/.next/server/app/favicon.ico/route.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/favicon.ico/route.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/favicon.ico/route.js.nft.json b/build/.next/server/app/favicon.ico/route.js.nft.json new file mode 100644 index 0000000..906c52f --- /dev/null +++ b/build/.next/server/app/favicon.ico/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/[root-of-the-server]__009pdeo._.js","../../chunks/[root-of-the-server]__0j8-xkl._.js","../../chunks/[turbopack]_runtime.js","../../chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js"]} \ No newline at end of file diff --git a/build/.next/server/app/favicon.ico/route/app-paths-manifest.json b/build/.next/server/app/favicon.ico/route/app-paths-manifest.json new file mode 100644 index 0000000..789e89c --- /dev/null +++ b/build/.next/server/app/favicon.ico/route/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/favicon.ico/route": "app/favicon.ico/route.js" +} \ No newline at end of file diff --git a/build/.next/server/app/favicon.ico/route/build-manifest.json b/build/.next/server/app/favicon.ico/route/build-manifest.json new file mode 100644 index 0000000..973d893 --- /dev/null +++ b/build/.next/server/app/favicon.ico/route/build-manifest.json @@ -0,0 +1,9 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [], + "lowPriorityFiles": [], + "rootMainFiles": [], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works.html b/build/.next/server/app/how-it-works.html new file mode 100644 index 0000000..69c8366 --- /dev/null +++ b/build/.next/server/app/how-it-works.html @@ -0,0 +1,891 @@ +How It Works – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

\ No newline at end of file diff --git a/build/.next/server/app/how-it-works.meta b/build/.next/server/app/how-it-works.meta new file mode 100644 index 0000000..ccc78ad --- /dev/null +++ b/build/.next/server/app/how-it-works.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/how-it-works/layout,_N_T_/how-it-works/page,_N_T_/how-it-works" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/how-it-works/__PAGE__", + "/how-it-works", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works.rsc b/build/.next/server/app/how-it-works.rsc new file mode 100644 index 0000000..796baf9 --- /dev/null +++ b/build/.next/server/app/how-it-works.rsc @@ -0,0 +1,33 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[74528,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"default"] +d:I[16948,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"default"] +e:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +f:"$Sreact.suspense" +12:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +16:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","how-it-works"],"q":"","i":false,"f":[[["",{"children":["how-it-works",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"how-it-works","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$Lc",null,{}],["$","$Ld",null,{}]]}]}]}]}],[["$","script","script-0",{"src":"/_next/static/chunks/133p65rq~827a.js","async":true,"nonce":"$undefined"}]],["$","$Le",null,{"children":["$","$f",null,{"name":"Next.MetadataOutlet","children":"$@10"}]}]]}],{},null,false,null]},null,false,"$@11"]},null,false,null],["$","$1","h",{"children":[null,["$","$L12",null,{"children":"$L13"}],["$","div",null,{"hidden":true,"children":["$","$L14",null,{"children":["$","$f",null,{"name":"Next.Metadata","children":"$L15"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +17:[] +11:"$W17" +13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +18:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +10:null +15:[["$","title","0",{"children":"How It Works – Doormile"}],["$","meta","1",{"name":"description","content":"See how Doormile connects first, mid, and last mile into a seamless delivery experience powered by MileTruth™ AI."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L18","7",{}]] diff --git a/build/.next/server/app/how-it-works.segments/_full.segment.rsc b/build/.next/server/app/how-it-works.segments/_full.segment.rsc new file mode 100644 index 0000000..796baf9 --- /dev/null +++ b/build/.next/server/app/how-it-works.segments/_full.segment.rsc @@ -0,0 +1,33 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[74528,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"default"] +d:I[16948,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"default"] +e:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +f:"$Sreact.suspense" +12:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +14:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +16:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","how-it-works"],"q":"","i":false,"f":[[["",{"children":["how-it-works",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"how-it-works","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$Lc",null,{}],["$","$Ld",null,{}]]}]}]}]}],[["$","script","script-0",{"src":"/_next/static/chunks/133p65rq~827a.js","async":true,"nonce":"$undefined"}]],["$","$Le",null,{"children":["$","$f",null,{"name":"Next.MetadataOutlet","children":"$@10"}]}]]}],{},null,false,null]},null,false,"$@11"]},null,false,null],["$","$1","h",{"children":[null,["$","$L12",null,{"children":"$L13"}],["$","div",null,{"hidden":true,"children":["$","$L14",null,{"children":["$","$f",null,{"name":"Next.Metadata","children":"$L15"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +17:[] +11:"$W17" +13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +18:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +10:null +15:[["$","title","0",{"children":"How It Works – Doormile"}],["$","meta","1",{"name":"description","content":"See how Doormile connects first, mid, and last mile into a seamless delivery experience powered by MileTruth™ AI."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L18","7",{}]] diff --git a/build/.next/server/app/how-it-works.segments/_head.segment.rsc b/build/.next/server/app/how-it-works.segments/_head.segment.rsc new file mode 100644 index 0000000..3c33834 --- /dev/null +++ b/build/.next/server/app/how-it-works.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"How It Works – Doormile"}],["$","meta","1",{"name":"description","content":"See how Doormile connects first, mid, and last mile into a seamless delivery experience powered by MileTruth™ AI."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/how-it-works.segments/_index.segment.rsc b/build/.next/server/app/how-it-works.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/how-it-works.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/how-it-works.segments/_tree.segment.rsc b/build/.next/server/app/how-it-works.segments/_tree.segment.rsc new file mode 100644 index 0000000..9d47745 --- /dev/null +++ b/build/.next/server/app/how-it-works.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"how-it-works","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/how-it-works.segments/how-it-works.segment.rsc b/build/.next/server/app/how-it-works.segments/how-it-works.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/how-it-works.segments/how-it-works.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/how-it-works.segments/how-it-works/__PAGE__.segment.rsc b/build/.next/server/app/how-it-works.segments/how-it-works/__PAGE__.segment.rsc new file mode 100644 index 0000000..47dd538 --- /dev/null +++ b/build/.next/server/app/how-it-works.segments/how-it-works/__PAGE__.segment.rsc @@ -0,0 +1,7 @@ +1:"$Sreact.fragment" +2:I[74528,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"default"] +3:I[16948,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"default"] +4:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +5:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"how-it-works","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$L2",null,{}],["$","$L3",null,{}]]}]}]}]}],[["$","script","script-0",{"src":"/_next/static/chunks/133p65rq~827a.js","async":true}]],["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +6:null diff --git a/build/.next/server/app/how-it-works/page.js b/build/.next/server/app/how-it-works/page.js new file mode 100644 index 0000000..2fbb149 --- /dev/null +++ b/build/.next/server/app/how-it-works/page.js @@ -0,0 +1,15 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/how-it-works/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__07qac4.._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uwehq6.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_how-it-works_page_actions_0jck7dp.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(86688) +module.exports=R.m(86688).exports diff --git a/build/.next/server/app/how-it-works/page.js.map b/build/.next/server/app/how-it-works/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/how-it-works/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works/page.js.nft.json b/build/.next/server/app/how-it-works/page.js.nft.json new file mode 100644 index 0000000..186168d --- /dev/null +++ b/build/.next/server/app/how-it-works/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07qac4.._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_0zmlo4s._.js","../../chunks/ssr/_next-internal_server_app_how-it-works_page_actions_0jck7dp.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uwehq6.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works/page/app-paths-manifest.json b/build/.next/server/app/how-it-works/page/app-paths-manifest.json new file mode 100644 index 0000000..c2ef9cb --- /dev/null +++ b/build/.next/server/app/how-it-works/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/how-it-works/page": "app/how-it-works/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works/page/build-manifest.json b/build/.next/server/app/how-it-works/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/how-it-works/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works/page/next-font-manifest.json b/build/.next/server/app/how-it-works/page/next-font-manifest.json new file mode 100644 index 0000000..5b23a71 --- /dev/null +++ b/build/.next/server/app/how-it-works/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/how-it-works/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works/page/react-loadable-manifest.json b/build/.next/server/app/how-it-works/page/react-loadable-manifest.json new file mode 100644 index 0000000..174bf50 --- /dev/null +++ b/build/.next/server/app/how-it-works/page/react-loadable-manifest.json @@ -0,0 +1,12 @@ +{ + "88493": { + "id": 88493, + "files": [ + "static/chunks/0b561qo91.1jg.js", + "static/chunks/04vqjcwjasc-3.js", + "static/chunks/0_54tjq7o59~u.js", + "static/chunks/0o27ue53hohz_.js", + "static/chunks/0zozt9p9-3srt.css" + ] + } +} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works/page/server-reference-manifest.json b/build/.next/server/app/how-it-works/page/server-reference-manifest.json new file mode 100644 index 0000000..800411b --- /dev/null +++ b/build/.next/server/app/how-it-works/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/how-it-works/page": { + "moduleId": 1090, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/how-it-works/page_client-reference-manifest.js b/build/.next/server/app/how-it-works/page_client-reference-manifest.js new file mode 100644 index 0000000..70b15bd --- /dev/null +++ b/build/.next/server/app/how-it-works/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/how-it-works/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/sections/HowItWorksHero.tsx ":{"id":74528,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"async":false},"[project]/src/components/sections/HowItWorksHero.tsx":{"id":74528,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"async":false},"[project]/src/modules/how-it-works-3d/Experience3DLoader.tsx ":{"id":16948,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"async":false},"[project]/src/modules/how-it-works-3d/Experience3DLoader.tsx":{"id":16948,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/133p65rq~827a.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"74528":{"*":{"id":690,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/_0zmlo4s._.js"],"async":false}},"16948":{"*":{"id":27800,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/_0zmlo4s._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"74528":{"*":{"id":96258,"name":"*","chunks":[],"async":false}},"16948":{"*":{"id":66059,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/how-it-works/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/how-it-works/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/133p65rq~827a.js"]}}; + diff --git a/build/.next/server/app/icon.png.body b/build/.next/server/app/icon.png.body new file mode 100644 index 0000000000000000000000000000000000000000..91c79c6d8550ffe63c3f59d138d5cdcbb58e6cb6 GIT binary patch literal 3590 zcmbtXc{tShAO8+=CC8Rrm9b)MjyV{|WH320ImQ`se$Bx!W~P~OQ*ta;9)yZ)%hHP6 z6tzmuEmCPCQdub-NLHz6^ZU-QVxRrv_xyhIJfC?VpV#~Kx!&*h^L*2t9QSXLRF(t) zU<=XK$_0{I{2?w1{U86*5(bGTswa^~B<=ykAwv}S1||%^AdNqiVVeZVA-} zwTcmf^sPc)@$^&?0iFi=`M&^Y@Ol20(5l&DfC%J4VbCa8&Wa9$7=YqcKN^LC6|XQZ zF9U#3@d_h<*TU;`$OIhBePtja!M63{0)TWEf57s!rBwi6lO^5FljrGRk0Z0f^gs$L zkg69I#^y%>rsh#>kQ_?o!2_v5bS54#`)eBlPN(1z9#{vI1KW}sOt+2UP+emj-N-Sa zWD^R)+)UCm3I`E{QF$OdDvZJ8;-c^f0WS{H`EDcv0&yrboQsvsDg?6dh+rO%jYA?M zBO~=9_4QbsASBwv!~}`LATbzS2%*c3X7a!&T_#r@VvvLjIIO5#GKbFQ(OFD5pA!sZ zh4b(Tgd}{Gn!w|6=z(kOOs*a%@PzY2^q@l{K?)a%)Bmv62t;z~U% zFjg!EU9b`xuI!Z~EBfPo*hN@B^Of;=k441>ZL>Y^~Z7z0z}Kc@I= zd=0Pyd7xRW=HYM_Z!d*KUQuu>!ir#PNeYjqy4o7AICNG-IG4)V0CXqVIQkzl3=MT) zZ2$&xKqh4aa-RT6Ff!8RuK45E_9xiM#?4tr@rV>N8rs;v7=ty?r5Tw}bq%N(16>mu z##q--->~(bp6`A?>Q-Tlgepgsk4EaX~WgN(J#NM%CpkOTF-T$j=$01&GnS`pklQ)WE9 zj&F0{rn}u)>6cKtQ<}K3@B2z6o`G|zrdCf^i&bY-FK<`M9g)}Fxosy^aq zWuf$^Ed;BRIVD#rFIs8p6kdD zc|W%W4Nj3Fh|Rt77OAKM%NKfikxlhc-`S9Ow8MxuO1gec@(bQBh7UaD<}Zy~h*}Vp zt!TV!!5<$O4oaZNaj1L2L5WXVF4l|} zs-@N2q7}E>C?nof6L=sK$(HBVmv<@r^&{cV!-lylrFE)dgT{_v zL^_baQ@ACbIQUsZe&}*K^>WHiV^4)Q64w5TfX>~=>e-xWKb+i1 zr|s4n7dsw_=vwR8$0*QN(X*&MOo=ZoZLkEQixx&V+sKfLteyMRFMome_~!rE{^--V ztbz{gZhF_QvSrqZciKeNi&BMl>N;_fYQu+;v*RT-7u1~{_bT@V6?aRcL@r4NG#iyP zWS(xMWMC#Hn?kM~3u@?Mq?a8?xS4k3XtmS{C53a7Cz>^$)A#V+@my#svbSA*x9w4t zdSLYU>Ul3}>ZuIQxdyoof>Ct0))sd>4$3o!5csih$0$IE}~OdN=bv&M!rYJRANK)rSQbJNAEASd7{RTq}PKSfm){ zX&WgcDRH9F7#>|eBTu|b>pB(G&RRS}Bx{E1n=KA_o00?8CgMWbcDdyh)3z!iTN1{aHvjPspYp{0`18(VDk7-B)=_mJ0?gVL zci1?gNWxEFeu62Pv;SM9!eV0IR9SRocp_TA;$`j3TZQtv$%=N1EpN&~T*7nj$|uVn zX~6~5ol$l4e{NU&L%*!Cq{ktBlIQS_54km}W;NPEg^8D{B(^llJsEk0nTm7T-qANH z33R#_JHy2Hqxaqr{%)itIdAv`sxu#mZielwvc!M(%KIe_I6Io~&Cz3%!oeiXLyKn{ z#cD?zJ$C0Cn8tqIYxjG3$5PDBdNVVH8QbY&l~ST=iKDSKA&kD{>l#)kJEj)Fu9Kxo zzvd=l=i*N~$}GoTeEmwhromaImKW^P=9L-?pPErN4?FNt_FTrk484gDc^%i-)(vh3 z_0i@8S=vvR_jxwIH3#miR>UmsnXb;VnNmxQKa!_t6qo(Gi~J6m0+xz7oVRpU5|9`G zx7t062WfWr-Fwni=vr4pi)4J#@!cOS+|VBZEyUBCMc5C$4kl?n{;Cr~dq@Uo2BZdU#K<+XFp$ZgR7J zb^b_Wa&>X@5>~#TaxUpc590Bo4==kbrDVl!S!zZeB%{Pf2*WbpfCVo?3->2BWhR?W zSr5;2)|0$Gg}G4N(ysa_934jw4HUUY)whct47gQ-dg1!$QRZ*-T^&*KS4Er)p7n?N zb~-pF<7F~ue{rF29xKD*;_vvH>KMyC-I8Bmr;{V6eqpS{grXMEs82z{ERxd=7**D( zt(&fn6Kuh(l-(BdF;byHua=t5+Zddu%^TVejkUs!rJc~%m+^QX ztX(sltzKola<`JOO`_E&PkZdTt5#s@=XEFfT;RM_#=O6h%e$hGrkDXj;jeGA4v60* zGP0ADWYPw*j&%=@7-9`CbT!>N$mY6_{8Vx|&P=iF)Es`d!s79WHr0S7_Kil*qsXQO zlZO>cB6ZFkjv-6k8Oc6jpOfXb9lc`cFof{>^PP9=mG4z9^rwgvUZT6!Hg_JUqIr209>((Gynhq literal 0 HcmV?d00001 diff --git a/build/.next/server/app/icon.png.meta b/build/.next/server/app/icon.png.meta new file mode 100644 index 0000000..6287ebb --- /dev/null +++ b/build/.next/server/app/icon.png.meta @@ -0,0 +1 @@ +{"status":200,"headers":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/png","x-next-cache-tags":"_N_T_/layout,_N_T_/icon.png/layout,_N_T_/icon.png/route,_N_T_/icon.png"}} \ No newline at end of file diff --git a/build/.next/server/app/icon.png/route.js b/build/.next/server/app/icon.png/route.js new file mode 100644 index 0000000..75d9f2d --- /dev/null +++ b/build/.next/server/app/icon.png/route.js @@ -0,0 +1,6 @@ +var R=require("../../chunks/[turbopack]_runtime.js")("server/app/icon.png/route.js") +R.c("server/chunks/[root-of-the-server]__0nwnmaq._.js") +R.c("server/chunks/[root-of-the-server]__0j8-xkl._.js") +R.c("server/chunks/_next-internal_server_app_icon_png_route_actions_12.gv.r.js") +R.m(72755) +module.exports=R.m(72755).exports diff --git a/build/.next/server/app/icon.png/route.js.map b/build/.next/server/app/icon.png/route.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/icon.png/route.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/icon.png/route.js.nft.json b/build/.next/server/app/icon.png/route.js.nft.json new file mode 100644 index 0000000..e9f59a5 --- /dev/null +++ b/build/.next/server/app/icon.png/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/[root-of-the-server]__0j8-xkl._.js","../../chunks/[root-of-the-server]__0nwnmaq._.js","../../chunks/[turbopack]_runtime.js","../../chunks/_next-internal_server_app_icon_png_route_actions_12.gv.r.js"]} \ No newline at end of file diff --git a/build/.next/server/app/icon.png/route/app-paths-manifest.json b/build/.next/server/app/icon.png/route/app-paths-manifest.json new file mode 100644 index 0000000..425ba3b --- /dev/null +++ b/build/.next/server/app/icon.png/route/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/icon.png/route": "app/icon.png/route.js" +} \ No newline at end of file diff --git a/build/.next/server/app/icon.png/route/build-manifest.json b/build/.next/server/app/icon.png/route/build-manifest.json new file mode 100644 index 0000000..973d893 --- /dev/null +++ b/build/.next/server/app/icon.png/route/build-manifest.json @@ -0,0 +1,9 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [], + "lowPriorityFiles": [], + "rootMainFiles": [], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/index.html b/build/.next/server/app/index.html new file mode 100644 index 0000000..70655c7 --- /dev/null +++ b/build/.next/server/app/index.html @@ -0,0 +1,1910 @@ +Doormile — Delivering Trust. Beyond Boundaries

Doormile

0.0%
On-Time Delivery
0x Faster
Faster Response
0%
Cost Reduction
/ The Problem /

Fragmented Logistics is Broken

73%

of delays happen at handoffs

3x

higher risk of missed SLAs

2.5x

more time spent on coordination

28%

increase in operational costs

30% More Cost Efficient

30% More Cost Efficient

30% More Cost Efficient

30% More Cost Efficient

30% More Cost Efficient

30% More Cost Efficient

30% More Cost Efficient

30% More Cost Efficient

30% More Cost Efficient

Connected Logistics
/ Connected Logistics /

Smart logistics solutions we deliver for modern supply chains

Real-Time Visibility

See every shipment, every vehicle, every handoff—live. No blind spots.

Dynamic Route Adjustment

AI continuously optimizes routes based on traffic, weather, and real-world conditions.

Proactive Delay Prevention

Detect SLA risks hours before they become problems. Act, don't react.

Execution Intelligence

Learn from every delivery. Get smarter with every mile traveled.

/ Doormile Approach /


The Doormile Way

Smarter, Faster, Connected Logistics

We connect first mile and last mile into one seamless system, reducing delays and improving efficiency. With real-time tracking and digital workflows,
every delivery is faster, reliable, and fully transparent.

Seamless logistics powered by real-time tracking, digital processes, and reliable delivery execution.

End-to-End Protection

End-to-end visibility ensures every shipment stays secure and on schedule.

Proactive delay prevention

Real-time monitoring helps prevent delays before they impact deliveries.

Single owner, single promise

One unified system manages the entire delivery process seamlessly.

Dynamic AI-driven adjustments

AI-powered routing adapts instantly to improve speed and efficiency.

EV Logistics

Cleaner miles, lower costs

/ EV-Native Design /

BUILT FOR ELECTRIC. NOT ADAPTED.

DoorMile electric delivery van
100%ELECTRIC FLEET
-40%COST / MILE
Battery-Aware Routing

Battery level, health, and degradation are first-class inputs to route optimization — not afterthoughts.

Charging Integration

Seamlessly integrate charging stops without compromising delivery windows or SLA commitments.

Energy-Optimized Paths

Factor in elevation, speed limits, payload weight, and live weather for maximum range efficiency.

Predictable Operations

EVs become predictable assets, not operational risks. Full visibility from depot to doorstep.

SLA Compliance0.0%
Distance Saved0%
Fewer Vehicles0%
Dispatch Latency0ms

Smart solutions built exclusively for your industry

\ No newline at end of file diff --git a/build/.next/server/app/index.meta b/build/.next/server/app/index.meta new file mode 100644 index 0000000..897af29 --- /dev/null +++ b/build/.next/server/app/index.meta @@ -0,0 +1,14 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/page,_N_T_/,_N_T_/index" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/__PAGE__", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/index.rsc b/build/.next/server/app/index.rsc new file mode 100644 index 0000000..080629d --- /dev/null +++ b/build/.next/server/app/index.rsc @@ -0,0 +1,166 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[97677,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +d:I[58140,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +e:I[36854,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +19:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/0v290txaarww5.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"home","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"61","className":"elementor elementor-61","children":[["$","$Lc",null,{}],["$","$Ld",null,{}],["$","$Le",null,{}],["$","div",null,{"className":"elementor-element elementor-element-b62c0b3 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"b62c0b3","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-592e9e8 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"592e9e8","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-ab41b28 elementor-widget elementor-widget-logico_marquee","data-id":"ab41b28","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_marquee.default","children":"$Lf"}]}]}],"$L10","$L11","$L12","$L13"]}]}]}]}],["$L14","$L15","$L16"],"$L17"]}],{},null,false,null]},null,false,null],"$L18",false]],"m":"$undefined","G":["$19",["$L1a"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1d:I[32693,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +1e:I[24911,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +1f:I[14224,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +25:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +26:"$Sreact.suspense" +28:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +2a:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +f:["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-ticker-wrapper","style":{"overflow":"hidden","position":"relative","width":"100%"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @keyframes cssMarquee {\n 0% { transform: translate3d(0, 0, 0); }\n 100% { transform: translate3d(-33.33%, 0, 0); }\n }\n .marquee-container-css {\n display: flex;\n width: max-content;\n animation: cssMarquee 25s linear infinite;\n }\n .marquee-container-css:hover {\n animation-play-state: paused;\n }\n "}}],["$","div",null,{"className":"marquee-container-css","children":[["$","div","0",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","1",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","2",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","3",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","4",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","5",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","6",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","7",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],"$L1b"]}],"$L1c"]}]]}]}] +10:["$","$L1d",null,{}] +11:["$","$L1e",null,{}] +12:["$","$L1f",null,{}] +20:T95e, + @media (max-width: 768px) { + .elementor-element.elementor-element-3b4a7cc { + --padding-left: 0px !important; + --padding-right: 0px !important; + padding-left: 0px !important; + padding-right: 0px !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-3b4a7cc > .e-con-inner { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + + .elementor-element.elementor-element-d602f7f { + --padding-left: 20px !important; + --padding-right: 20px !important; + padding-left: 20px !important; + padding-right: 20px !important; + width: 100% !important; + max-width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-f64bd88, + .elementor-element.elementor-element-5ed2dbb, + .elementor-element.elementor-element-6829276 { + --padding-left: 0px !important; + --padding-right: 0px !important; + --margin-left: 0px !important; + --margin-right: 0px !important; + width: 100% !important; + max-width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + padding-left: 0 !important; + padding-right: 0 !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-6829276 { + --e-con-grid-template-columns: minmax(0, 1fr) !important; + --grid-justify-content: stretch !important; + --justify-items: stretch !important; + grid-template-columns: minmax(0, 1fr) !important; + justify-content: stretch !important; + justify-items: stretch !important; + min-width: 0 !important; + } + + .industry-solutions-grid, + .industry-card-link { + width: 100% !important; + max-width: 100% !important; + min-width: 0 !important; + } + + .industry-solutions-grid { + margin-left: 0 !important; + margin-right: 0 !important; + } + } + 13:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$20"}}],["$","div",null,{"className":"elementor-element elementor-element-3b4a7cc e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"3b4a7cc","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-d602f7f e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"d602f7f","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-f64bd88 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"f64bd88","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-5ed2dbb e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5ed2dbb","data-element_type":"container","data-e-type":"container","children":["$L21","$L22"]}],"$L23"]}],"$L24"]}]}]}]] +14:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0v290txaarww5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +15:["$","script","script-0",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true,"nonce":"$undefined"}] +16:["$","script","script-1",{"src":"/_next/static/chunks/0nunuemu9ietr.js","async":true,"nonce":"$undefined"}] +17:["$","$L25",null,{"children":["$","$26",null,{"name":"Next.MetadataOutlet","children":"$@27"}]}] +18:["$","$1","h",{"children":[null,["$","$L28",null,{"children":"$L29"}],["$","div",null,{"hidden":true,"children":["$","$L2a",null,{"children":["$","$26",null,{"name":"Next.Metadata","children":"$L2b"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +1a:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +2d:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"ScrollReveal"] +2e:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],""] +2f:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"Image"] +1b:["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}] +1c:["$","div","8",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}] +2c:T65e, + /* Minimal section label — matches the "/ Doormile Approach /" pattern */ + .industry-section-label { + width: 100%; + } + .industry-section-label > .elementor-widget-container { + max-width: 100%; + margin: 12px 0 50px 0; + padding: 0 0 14px 0; + border-style: solid; + border-width: 0 0 1px 0; + border-color: rgba(17, 17, 17, 0.15); + } + .industry-section-label .logico-title { + font-size: 14px; + font-weight: 500; + line-height: 2.1429em; + letter-spacing: 2px; + text-transform: uppercase; + color: #111111; + } + @media (max-width: 1024px) { + .industry-section-label > .elementor-widget-container { + margin-bottom: 36px; + padding-bottom: 12px; + } + } + @media (max-width: 767px) { + .industry-section-label > .elementor-widget-container { + margin-bottom: 28px; + padding-bottom: 10px; + } + .industry-section-label .logico-title { + font-size: 12px; + letter-spacing: 1.5px; + } + } + 21:["$","div",null,{"className":"elementor-element elementor-element-c8162c4 elementor-widget elementor-widget-logico_heading industry-section-label","data-id":"c8162c4","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2c"}}],["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/ Industry Solutions /"}]}]]}] +22:["$","div",null,{"className":"elementor-element elementor-element-1487241 elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"1487241","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","style":{"margin":"30px 0 0 0"},"children":["$","h2",null,{"className":"logico-title","style":{"fontSize":"clamp(28px, 3.5vw, 48px)","lineHeight":"1.1","fontWeight":800,"textTransform":"uppercase","maxWidth":"900px"},"children":["$","$L2d",null,{"delay":0.05,"duration":0.8,"yOffset":25,"children":["Smart solutions built exclusively for your ",["$","span",null,{"style":{"color":"#c01227"},"children":"industry"}]]}]}]}]}] +23:["$","div",null,{"className":"elementor-element elementor-element-4af73cb e-con-full elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"4af73cb","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-46f2f7d elementor-widget__width-initial elementor-widget elementor-widget-logico_button","data-id":"46f2f7d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default","children":["$","div",null,{"className":"elementor-widget-container"}]}]}] +24:["$","div",null,{"className":"elementor-element elementor-element-6829276 e-grid e-con-full cut-corner-no sticky-container-off e-con e-child","data-id":"6829276","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"industry-solutions-grid","children":[["$","$L2e",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L2f",null,{"src":"/images/tab-pic-1.webp","alt":"FMCG Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"FMCG"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"High volume, tight margins, zero tolerance for stockouts."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Unpredictable demand spikes"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"Fresh product expiry constraints"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Multi-stop route complexity"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"AI-driven demand-responsive routing"}],["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Freshness-aware delivery prioritization"}],["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Dynamic batch optimization"}]]}]]}]]}],["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"FMCG"}]]}]]}]]}],["$","$L2e",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L2f",null,{"src":"/images/tab-pic-2.webp","alt":"Pharma Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"Pharmaceutical"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"Temperature-sensitive, compliance-critical, life-saving."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Cold chain integrity requirements"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"Regulatory compliance tracking"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Critical delivery time windows"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"Real-time temperature monitoring"}],"$L30","$L31"]}]]}]]}],"$L32"]}]]}],"$L33"]}]}] +30:["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Chain-of-custody documentation"}] +31:["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Priority override for critical shipments"}] +32:["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"Pharmaceutical"}]]}] +33:["$","$L2e",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L2f",null,{"src":"/images/tab-pic-3.webp","alt":"Enterprise Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"Enterprise & B2B"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"High-value shipments with complex delivery requirements."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Appointment scheduling coordination"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"White-glove delivery standards"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Multi-location routing complexity"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"Automated appointment optimization"}],["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Service level guarantee tracking"}],["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Enterprise integration APIs"}]]}]]}]]}],["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"Enterprise & B2B"}]]}]]}]]}] +29:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +34:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +27:null +2b:[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile helps logistics companies track every mile with MileTruth™ AI. Real-time SLA protection and connected miles visibility."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L34","7",{}]] diff --git a/build/.next/server/app/index.segments/__PAGE__.segment.rsc b/build/.next/server/app/index.segments/__PAGE__.segment.rsc new file mode 100644 index 0000000..adf50dc --- /dev/null +++ b/build/.next/server/app/index.segments/__PAGE__.segment.rsc @@ -0,0 +1,142 @@ +1:"$Sreact.fragment" +2:I[97677,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +3:I[58140,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +4:I[36854,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +12:I[32693,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +13:I[24911,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +14:I[14224,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +1a:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +1b:"$Sreact.suspense" +1e:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"ScrollReveal"] +1f:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],""] +20:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"Image"] +:HL["/_next/static/chunks/0v290txaarww5.css","style"] +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"home","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"61","className":"elementor elementor-61","children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{}],["$","div",null,{"className":"elementor-element elementor-element-b62c0b3 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"b62c0b3","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-592e9e8 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"592e9e8","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-ab41b28 elementor-widget elementor-widget-logico_marquee","data-id":"ab41b28","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_marquee.default","children":["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-ticker-wrapper","style":{"overflow":"hidden","position":"relative","width":"100%"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @keyframes cssMarquee {\n 0% { transform: translate3d(0, 0, 0); }\n 100% { transform: translate3d(-33.33%, 0, 0); }\n }\n .marquee-container-css {\n display: flex;\n width: max-content;\n animation: cssMarquee 25s linear infinite;\n }\n .marquee-container-css:hover {\n animation-play-state: paused;\n }\n "}}],["$","div",null,{"className":"marquee-container-css","children":[["$","div","0",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","1",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","2",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","3",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","4",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":"$L5"}]]}],"$L6","$L7","$L8","$L9"]}]]}]}]}]}]}],"$La","$Lb","$Lc","$Ld"]}]}]}]}],["$Le","$Lf","$L10"],"$L11"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +5:["$","i",null,{"className":"fontello icon-half-logo"}] +6:["$","div","5",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}] +7:["$","div","6",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}] +8:["$","div","7",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}] +9:["$","div","8",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}] +a:["$","$L12",null,{}] +b:["$","$L13",null,{}] +c:["$","$L14",null,{}] +15:T95e, + @media (max-width: 768px) { + .elementor-element.elementor-element-3b4a7cc { + --padding-left: 0px !important; + --padding-right: 0px !important; + padding-left: 0px !important; + padding-right: 0px !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-3b4a7cc > .e-con-inner { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + + .elementor-element.elementor-element-d602f7f { + --padding-left: 20px !important; + --padding-right: 20px !important; + padding-left: 20px !important; + padding-right: 20px !important; + width: 100% !important; + max-width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-f64bd88, + .elementor-element.elementor-element-5ed2dbb, + .elementor-element.elementor-element-6829276 { + --padding-left: 0px !important; + --padding-right: 0px !important; + --margin-left: 0px !important; + --margin-right: 0px !important; + width: 100% !important; + max-width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + padding-left: 0 !important; + padding-right: 0 !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-6829276 { + --e-con-grid-template-columns: minmax(0, 1fr) !important; + --grid-justify-content: stretch !important; + --justify-items: stretch !important; + grid-template-columns: minmax(0, 1fr) !important; + justify-content: stretch !important; + justify-items: stretch !important; + min-width: 0 !important; + } + + .industry-solutions-grid, + .industry-card-link { + width: 100% !important; + max-width: 100% !important; + min-width: 0 !important; + } + + .industry-solutions-grid { + margin-left: 0 !important; + margin-right: 0 !important; + } + } + d:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$15"}}],["$","div",null,{"className":"elementor-element elementor-element-3b4a7cc e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"3b4a7cc","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-d602f7f e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"d602f7f","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-f64bd88 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"f64bd88","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-5ed2dbb e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5ed2dbb","data-element_type":"container","data-e-type":"container","children":["$L16","$L17"]}],"$L18"]}],"$L19"]}]}]}]] +e:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0v290txaarww5.css","precedence":"next"}] +f:["$","script","script-0",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true}] +10:["$","script","script-1",{"src":"/_next/static/chunks/0nunuemu9ietr.js","async":true}] +11:["$","$L1a",null,{"children":["$","$1b",null,{"name":"Next.MetadataOutlet","children":"$@1c"}]}] +1d:T65e, + /* Minimal section label — matches the "/ Doormile Approach /" pattern */ + .industry-section-label { + width: 100%; + } + .industry-section-label > .elementor-widget-container { + max-width: 100%; + margin: 12px 0 50px 0; + padding: 0 0 14px 0; + border-style: solid; + border-width: 0 0 1px 0; + border-color: rgba(17, 17, 17, 0.15); + } + .industry-section-label .logico-title { + font-size: 14px; + font-weight: 500; + line-height: 2.1429em; + letter-spacing: 2px; + text-transform: uppercase; + color: #111111; + } + @media (max-width: 1024px) { + .industry-section-label > .elementor-widget-container { + margin-bottom: 36px; + padding-bottom: 12px; + } + } + @media (max-width: 767px) { + .industry-section-label > .elementor-widget-container { + margin-bottom: 28px; + padding-bottom: 10px; + } + .industry-section-label .logico-title { + font-size: 12px; + letter-spacing: 1.5px; + } + } + 16:["$","div",null,{"className":"elementor-element elementor-element-c8162c4 elementor-widget elementor-widget-logico_heading industry-section-label","data-id":"c8162c4","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$1d"}}],["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/ Industry Solutions /"}]}]]}] +17:["$","div",null,{"className":"elementor-element elementor-element-1487241 elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"1487241","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","style":{"margin":"30px 0 0 0"},"children":["$","h2",null,{"className":"logico-title","style":{"fontSize":"clamp(28px, 3.5vw, 48px)","lineHeight":"1.1","fontWeight":800,"textTransform":"uppercase","maxWidth":"900px"},"children":["$","$L1e",null,{"delay":0.05,"duration":0.8,"yOffset":25,"children":["Smart solutions built exclusively for your ",["$","span",null,{"style":{"color":"#c01227"},"children":"industry"}]]}]}]}]}] +18:["$","div",null,{"className":"elementor-element elementor-element-4af73cb e-con-full elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"4af73cb","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-46f2f7d elementor-widget__width-initial elementor-widget elementor-widget-logico_button","data-id":"46f2f7d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default","children":["$","div",null,{"className":"elementor-widget-container"}]}]}] +19:["$","div",null,{"className":"elementor-element elementor-element-6829276 e-grid e-con-full cut-corner-no sticky-container-off e-con e-child","data-id":"6829276","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"industry-solutions-grid","children":[["$","$L1f",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L20",null,{"src":"/images/tab-pic-1.webp","alt":"FMCG Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"FMCG"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"High volume, tight margins, zero tolerance for stockouts."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Unpredictable demand spikes"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"Fresh product expiry constraints"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Multi-stop route complexity"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"AI-driven demand-responsive routing"}],["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Freshness-aware delivery prioritization"}],["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Dynamic batch optimization"}]]}]]}]]}],["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"FMCG"}]]}]]}]]}],["$","$L1f",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L20",null,{"src":"/images/tab-pic-2.webp","alt":"Pharma Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"Pharmaceutical"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"Temperature-sensitive, compliance-critical, life-saving."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Cold chain integrity requirements"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"Regulatory compliance tracking"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Critical delivery time windows"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"Real-time temperature monitoring"}],"$L21","$L22"]}]]}]]}],"$L23"]}]]}],"$L24"]}]}] +1c:null +21:["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Chain-of-custody documentation"}] +22:["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Priority override for critical shipments"}] +23:["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"Pharmaceutical"}]]}] +24:["$","$L1f",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L20",null,{"src":"/images/tab-pic-3.webp","alt":"Enterprise Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"Enterprise & B2B"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"High-value shipments with complex delivery requirements."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Appointment scheduling coordination"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"White-glove delivery standards"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Multi-location routing complexity"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"Automated appointment optimization"}],["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Service level guarantee tracking"}],["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Enterprise integration APIs"}]]}]]}]]}],["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"Enterprise & B2B"}]]}]]}]]}] diff --git a/build/.next/server/app/index.segments/_full.segment.rsc b/build/.next/server/app/index.segments/_full.segment.rsc new file mode 100644 index 0000000..080629d --- /dev/null +++ b/build/.next/server/app/index.segments/_full.segment.rsc @@ -0,0 +1,166 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[97677,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +d:I[58140,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +e:I[36854,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +19:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/0v290txaarww5.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"home","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"61","className":"elementor elementor-61","children":[["$","$Lc",null,{}],["$","$Ld",null,{}],["$","$Le",null,{}],["$","div",null,{"className":"elementor-element elementor-element-b62c0b3 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"b62c0b3","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-592e9e8 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"592e9e8","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-ab41b28 elementor-widget elementor-widget-logico_marquee","data-id":"ab41b28","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_marquee.default","children":"$Lf"}]}]}],"$L10","$L11","$L12","$L13"]}]}]}]}],["$L14","$L15","$L16"],"$L17"]}],{},null,false,null]},null,false,null],"$L18",false]],"m":"$undefined","G":["$19",["$L1a"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1d:I[32693,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +1e:I[24911,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +1f:I[14224,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"default"] +25:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +26:"$Sreact.suspense" +28:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +2a:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +f:["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-ticker-wrapper","style":{"overflow":"hidden","position":"relative","width":"100%"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"\n @keyframes cssMarquee {\n 0% { transform: translate3d(0, 0, 0); }\n 100% { transform: translate3d(-33.33%, 0, 0); }\n }\n .marquee-container-css {\n display: flex;\n width: max-content;\n animation: cssMarquee 25s linear infinite;\n }\n .marquee-container-css:hover {\n animation-play-state: paused;\n }\n "}}],["$","div",null,{"className":"marquee-container-css","children":[["$","div","0",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","1",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","2",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","3",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","4",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","5",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","6",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}],["$","div","7",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],"$L1b"]}],"$L1c"]}]]}]}] +10:["$","$L1d",null,{}] +11:["$","$L1e",null,{}] +12:["$","$L1f",null,{}] +20:T95e, + @media (max-width: 768px) { + .elementor-element.elementor-element-3b4a7cc { + --padding-left: 0px !important; + --padding-right: 0px !important; + padding-left: 0px !important; + padding-right: 0px !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-3b4a7cc > .e-con-inner { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + + .elementor-element.elementor-element-d602f7f { + --padding-left: 20px !important; + --padding-right: 20px !important; + padding-left: 20px !important; + padding-right: 20px !important; + width: 100% !important; + max-width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-f64bd88, + .elementor-element.elementor-element-5ed2dbb, + .elementor-element.elementor-element-6829276 { + --padding-left: 0px !important; + --padding-right: 0px !important; + --margin-left: 0px !important; + --margin-right: 0px !important; + width: 100% !important; + max-width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + padding-left: 0 !important; + padding-right: 0 !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-6829276 { + --e-con-grid-template-columns: minmax(0, 1fr) !important; + --grid-justify-content: stretch !important; + --justify-items: stretch !important; + grid-template-columns: minmax(0, 1fr) !important; + justify-content: stretch !important; + justify-items: stretch !important; + min-width: 0 !important; + } + + .industry-solutions-grid, + .industry-card-link { + width: 100% !important; + max-width: 100% !important; + min-width: 0 !important; + } + + .industry-solutions-grid { + margin-left: 0 !important; + margin-right: 0 !important; + } + } + 13:[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$20"}}],["$","div",null,{"className":"elementor-element elementor-element-3b4a7cc e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"3b4a7cc","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"e-con-inner","children":["$","div",null,{"className":"elementor-element elementor-element-d602f7f e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"d602f7f","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-f64bd88 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"f64bd88","data-element_type":"container","data-e-type":"container","children":[["$","div",null,{"className":"elementor-element elementor-element-5ed2dbb e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5ed2dbb","data-element_type":"container","data-e-type":"container","children":["$L21","$L22"]}],"$L23"]}],"$L24"]}]}]}]] +14:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0v290txaarww5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +15:["$","script","script-0",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true,"nonce":"$undefined"}] +16:["$","script","script-1",{"src":"/_next/static/chunks/0nunuemu9ietr.js","async":true,"nonce":"$undefined"}] +17:["$","$L25",null,{"children":["$","$26",null,{"name":"Next.MetadataOutlet","children":"$@27"}]}] +18:["$","$1","h",{"children":[null,["$","$L28",null,{"children":"$L29"}],["$","div",null,{"hidden":true,"children":["$","$L2a",null,{"children":["$","$26",null,{"name":"Next.Metadata","children":"$L2b"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +1a:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +2d:I[2018,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"ScrollReveal"] +2e:I[22016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],""] +2f:I[5500,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"Image"] +1b:["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}] +1c:["$","div","8",{"className":"ticker","style":{"display":"inline-flex","alignItems":"center","whiteSpace":"nowrap","paddingRight":"50px"},"children":[["$","span",null,{"className":"ticker-text","children":["$","p",null,{"style":{"margin":0,"display":"inline"},"children":"30% More Cost Efficient"}]}],["$","span",null,{"className":"separator","style":{"marginLeft":"25px","display":"inline-flex","alignItems":"center"},"children":["$","i",null,{"className":"fontello icon-half-logo"}]}]]}] +2c:T65e, + /* Minimal section label — matches the "/ Doormile Approach /" pattern */ + .industry-section-label { + width: 100%; + } + .industry-section-label > .elementor-widget-container { + max-width: 100%; + margin: 12px 0 50px 0; + padding: 0 0 14px 0; + border-style: solid; + border-width: 0 0 1px 0; + border-color: rgba(17, 17, 17, 0.15); + } + .industry-section-label .logico-title { + font-size: 14px; + font-weight: 500; + line-height: 2.1429em; + letter-spacing: 2px; + text-transform: uppercase; + color: #111111; + } + @media (max-width: 1024px) { + .industry-section-label > .elementor-widget-container { + margin-bottom: 36px; + padding-bottom: 12px; + } + } + @media (max-width: 767px) { + .industry-section-label > .elementor-widget-container { + margin-bottom: 28px; + padding-bottom: 10px; + } + .industry-section-label .logico-title { + font-size: 12px; + letter-spacing: 1.5px; + } + } + 21:["$","div",null,{"className":"elementor-element elementor-element-c8162c4 elementor-widget elementor-widget-logico_heading industry-section-label","data-id":"c8162c4","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2c"}}],["$","div",null,{"className":"elementor-widget-container","children":["$","div",null,{"className":"logico-title","children":"/ Industry Solutions /"}]}]]}] +22:["$","div",null,{"className":"elementor-element elementor-element-1487241 elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"1487241","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default","children":["$","div",null,{"className":"elementor-widget-container","style":{"margin":"30px 0 0 0"},"children":["$","h2",null,{"className":"logico-title","style":{"fontSize":"clamp(28px, 3.5vw, 48px)","lineHeight":"1.1","fontWeight":800,"textTransform":"uppercase","maxWidth":"900px"},"children":["$","$L2d",null,{"delay":0.05,"duration":0.8,"yOffset":25,"children":["Smart solutions built exclusively for your ",["$","span",null,{"style":{"color":"#c01227"},"children":"industry"}]]}]}]}]}] +23:["$","div",null,{"className":"elementor-element elementor-element-4af73cb e-con-full elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"4af73cb","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"elementor-element elementor-element-46f2f7d elementor-widget__width-initial elementor-widget elementor-widget-logico_button","data-id":"46f2f7d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default","children":["$","div",null,{"className":"elementor-widget-container"}]}]}] +24:["$","div",null,{"className":"elementor-element elementor-element-6829276 e-grid e-con-full cut-corner-no sticky-container-off e-con e-child","data-id":"6829276","data-element_type":"container","data-e-type":"container","children":["$","div",null,{"className":"industry-solutions-grid","children":[["$","$L2e",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L2f",null,{"src":"/images/tab-pic-1.webp","alt":"FMCG Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"FMCG"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"High volume, tight margins, zero tolerance for stockouts."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Unpredictable demand spikes"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"Fresh product expiry constraints"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Multi-stop route complexity"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"AI-driven demand-responsive routing"}],["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Freshness-aware delivery prioritization"}],["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Dynamic batch optimization"}]]}]]}]]}],["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"FMCG"}]]}]]}]]}],["$","$L2e",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L2f",null,{"src":"/images/tab-pic-2.webp","alt":"Pharma Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"Pharmaceutical"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"Temperature-sensitive, compliance-critical, life-saving."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Cold chain integrity requirements"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"Regulatory compliance tracking"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Critical delivery time windows"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"Real-time temperature monitoring"}],"$L30","$L31"]}]]}]]}],"$L32"]}]]}],"$L33"]}]}] +30:["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Chain-of-custody documentation"}] +31:["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Priority override for critical shipments"}] +32:["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"Pharmaceutical"}]]}] +33:["$","$L2e",null,{"href":"/solutions","className":"industry-card-link","children":[["$","div",null,{"className":"industry-card-bg","children":["$","$L2f",null,{"src":"/images/tab-pic-3.webp","alt":"Enterprise Logistics","fill":true,"style":{"objectFit":"cover"},"sizes":"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"}]}],["$","div",null,{"className":"industry-card-overlay"}],["$","div",null,{"className":"industry-card-hover-bg"}],["$","div",null,{"className":"industry-card-default-content","children":["$","h4",null,{"className":"industry-card-default-title","children":"Enterprise & B2B"}]}],["$","div",null,{"className":"industry-card-hover-content","children":[["$","div",null,{"className":"industry-card-hover-top","children":[["$","p",null,{"className":"industry-card-description","children":"High-value shipments with complex delivery requirements."}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Challenges"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-1","children":"Appointment scheduling coordination"}],["$","li",null,{"className":"industry-card-list-item bullet-2","children":"White-glove delivery standards"}],["$","li",null,{"className":"industry-card-list-item bullet-3","children":"Multi-location routing complexity"}]]}]]}],["$","div",null,{"children":[["$","h5",null,{"className":"industry-card-section-title","children":"Doormile Solutions"}],["$","ul",null,{"className":"industry-card-list","children":[["$","li",null,{"className":"industry-card-list-item bullet-4","children":"Automated appointment optimization"}],["$","li",null,{"className":"industry-card-list-item bullet-5","children":"Service level guarantee tracking"}],["$","li",null,{"className":"industry-card-list-item bullet-6","children":"Enterprise integration APIs"}]]}]]}]]}],["$","div",null,{"className":"industry-card-hover-bottom","children":[["$","div",null,{"className":"industry-card-hover-icon","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"3","strokeLinecap":"round","strokeLinejoin":"round","style":{"width":"20px","height":"20px"},"children":[["$","line",null,{"x1":"7","y1":"17","x2":"17","y2":"7"}],["$","polyline",null,{"points":"7 7 17 7 17 17"}]]}]}],["$","h4",null,{"className":"industry-card-hover-title","children":"Enterprise & B2B"}]]}]]}]]}] +29:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +34:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +27:null +2b:[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile helps logistics companies track every mile with MileTruth™ AI. Real-time SLA protection and connected miles visibility."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L34","7",{}]] diff --git a/build/.next/server/app/index.segments/_head.segment.rsc b/build/.next/server/app/index.segments/_head.segment.rsc new file mode 100644 index 0000000..99c75d4 --- /dev/null +++ b/build/.next/server/app/index.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Doormile — Delivering Trust. Beyond Boundaries"}],["$","meta","1",{"name":"description","content":"Doormile helps logistics companies track every mile with MileTruth™ AI. Real-time SLA protection and connected miles visibility."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/index.segments/_index.segment.rsc b/build/.next/server/app/index.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/index.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/index.segments/_tree.segment.rsc b/build/.next/server/app/index.segments/_tree.segment.rsc new file mode 100644 index 0000000..aba56ac --- /dev/null +++ b/build/.next/server/app/index.segments/_tree.segment.rsc @@ -0,0 +1,10 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/chunks/0v290txaarww5.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/miletruth.html b/build/.next/server/app/miletruth.html new file mode 100644 index 0000000..c81a168 --- /dev/null +++ b/build/.next/server/app/miletruth.html @@ -0,0 +1,3531 @@ +MileTruth – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

SLA Compliance
1 %
Distance Saved
1 %
Fewer Vehicles
1 %
Dispatch Latency
45ms

OPTIMIZE EVERY MILE

Cut travel distance, reduce operating cost, and improve fleet productivity across every route.

/ Performance /

SMARTER ROUTES. LOWER COSTS.

-42%DISTANCE SAVED
-37%FEWER VEHICLES
Performance InsightAI ENGINE
0%Distance Saved
0%Faster Routes
0%Lower Cost
0.0%On-Time
Route Optimization

AI selects the most efficient path across every zone.

Distance Reduction

Same volume delivered with a leaner, better-used fleet.

Fleet Efficiency

Higher utilisation and lower operating cost.

SLA Performance

Real-time correction keeps deliveries on time.

Distance Saved0%
Faster Routes0%
Lower Cost0%
On-Time0.0%

CHOOSE THE BEST PLAN

Analyze thousands of route possibilities and automatically select the most efficient delivery strategy.

/ Innovation /

MANY STRATEGIES. ONE BEST PLAN.

45msINFERENCE
100%SLA-FIRST
AI Decision EngineAI ENGINE
0msInference
0+Strategies
0.0%SLA Met
0/7Adaptive
Generate Routes

Many strategies explored per dispatch window.

Check Constraints

Battery, capacity, distance and time validated.

Score & Compare

Plans ranked by total cost in parallel.

Select Best Plan

SLA-first plan locked in and dispatched.

Inference0ms
Strategies0+
SLA Met0.0%
Adaptive0/7

BUILDING QUANTUM INTELLIGENCE

Exploring a hybrid optimization layer that treats routing as an energy landscape, not a search problem.

/ Quantum Intelligence /

FROM ROUTE SEARCH. TO ENERGY MINIMIZATION.

QUBOPROBLEM MODEL
HYBRIDINTELLIGENCE
Quantum IntelligenceHYBRID ENGINE
QUBOProblem Model
GLOBALMinimum Search
HYBRIDIntelligence
MULTIObjective
Encode the Problem

Rider assignments, delivery sequences, capacity, traffic, service time, and SLA constraints become part of one mathematical optimization model.

Build the Energy Landscape

Each feasible routing solution is represented as a state with its own energy through a QUBO formulation.

Search the Global Minimum

Optimization becomes the search for the lowest-energy state instead of evaluating route combinations one by one.

Hybrid Intelligence

Classical algorithms, AI models, and quantum optimization work together using the right computational model for each problem.

Dynamic RoutingMulti-Rider
Time WindowsOptimized
Fleet BalancingReal-Time
ObjectivesCost + Distance + SLA
\ No newline at end of file diff --git a/build/.next/server/app/miletruth.meta b/build/.next/server/app/miletruth.meta new file mode 100644 index 0000000..782e29c --- /dev/null +++ b/build/.next/server/app/miletruth.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/miletruth/layout,_N_T_/miletruth/page,_N_T_/miletruth" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/miletruth/__PAGE__", + "/miletruth", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/miletruth.rsc b/build/.next/server/app/miletruth.rsc new file mode 100644 index 0000000..4d8946b --- /dev/null +++ b/build/.next/server/app/miletruth.rsc @@ -0,0 +1,36 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[58829,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +d:I[76756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +e:I[38730,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +f:I[27698,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +10:I[33016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +12:"$Sreact.suspense" +15:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +17:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +19:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","miletruth"],"q":"","i":false,"f":[[["",{"children":["miletruth",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"miletruth","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$Lc",null,{}],["$","$Ld",null,{}],["$","$Le",null,{}],["$","$Lf",null,{}],["$","$L10",null,{}]]}]}]}]}],[["$","script","script-0",{"src":"/_next/static/chunks/043-lr8ahr5l4.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true,"nonce":"$undefined"}]],["$","$L11",null,{"children":["$","$12",null,{"name":"Next.MetadataOutlet","children":"$@13"}]}]]}],{},null,false,null]},null,false,"$@14"]},null,false,null],["$","$1","h",{"children":[null,["$","$L15",null,{"children":"$L16"}],["$","div",null,{"hidden":true,"children":["$","$L17",null,{"children":["$","$12",null,{"name":"Next.Metadata","children":"$L18"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$19",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1a:[] +14:"$W1a" +16:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +1b:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +13:null +18:[["$","title","0",{"children":"MileTruth – Doormile"}],["$","meta","1",{"name":"description","content":"Optimizes every stage of the delivery journey for maximum efficiency. Explore the only AI built exclusively for logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L1b","7",{}]] diff --git a/build/.next/server/app/miletruth.segments/_full.segment.rsc b/build/.next/server/app/miletruth.segments/_full.segment.rsc new file mode 100644 index 0000000..4d8946b --- /dev/null +++ b/build/.next/server/app/miletruth.segments/_full.segment.rsc @@ -0,0 +1,36 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +c:I[58829,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +d:I[76756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +e:I[38730,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +f:I[27698,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +10:I[33016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +11:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +12:"$Sreact.suspense" +15:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +17:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +19:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","miletruth"],"q":"","i":false,"f":[[["",{"children":["miletruth",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"id":"miletruth","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$Lc",null,{}],["$","$Ld",null,{}],["$","$Le",null,{}],["$","$Lf",null,{}],["$","$L10",null,{}]]}]}]}]}],[["$","script","script-0",{"src":"/_next/static/chunks/043-lr8ahr5l4.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true,"nonce":"$undefined"}]],["$","$L11",null,{"children":["$","$12",null,{"name":"Next.MetadataOutlet","children":"$@13"}]}]]}],{},null,false,null]},null,false,"$@14"]},null,false,null],["$","$1","h",{"children":[null,["$","$L15",null,{"children":"$L16"}],["$","div",null,{"hidden":true,"children":["$","$L17",null,{"children":["$","$12",null,{"name":"Next.Metadata","children":"$L18"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$19",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +1a:[] +14:"$W1a" +16:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +1b:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +13:null +18:[["$","title","0",{"children":"MileTruth – Doormile"}],["$","meta","1",{"name":"description","content":"Optimizes every stage of the delivery journey for maximum efficiency. Explore the only AI built exclusively for logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L1b","7",{}]] diff --git a/build/.next/server/app/miletruth.segments/_head.segment.rsc b/build/.next/server/app/miletruth.segments/_head.segment.rsc new file mode 100644 index 0000000..4a70f35 --- /dev/null +++ b/build/.next/server/app/miletruth.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MileTruth – Doormile"}],["$","meta","1",{"name":"description","content":"Optimizes every stage of the delivery journey for maximum efficiency. Explore the only AI built exclusively for logistics."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/miletruth.segments/_index.segment.rsc b/build/.next/server/app/miletruth.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/miletruth.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/miletruth.segments/_tree.segment.rsc b/build/.next/server/app/miletruth.segments/_tree.segment.rsc new file mode 100644 index 0000000..cdf0e84 --- /dev/null +++ b/build/.next/server/app/miletruth.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"miletruth","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/miletruth.segments/miletruth.segment.rsc b/build/.next/server/app/miletruth.segments/miletruth.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/miletruth.segments/miletruth.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/miletruth.segments/miletruth/__PAGE__.segment.rsc b/build/.next/server/app/miletruth.segments/miletruth/__PAGE__.segment.rsc new file mode 100644 index 0000000..e74f46e --- /dev/null +++ b/build/.next/server/app/miletruth.segments/miletruth/__PAGE__.segment.rsc @@ -0,0 +1,10 @@ +1:"$Sreact.fragment" +2:I[58829,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +3:I[76756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +4:I[38730,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +5:I[27698,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +6:I[33016,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"default"] +7:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +8:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","div",null,{"id":"miletruth","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{}],["$","$L5",null,{}],["$","$L6",null,{}]]}]}]}]}],[["$","script","script-0",{"src":"/_next/static/chunks/043-lr8ahr5l4.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0vi1igu-zxb_c.js","async":true}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +9:null diff --git a/build/.next/server/app/miletruth/page.js b/build/.next/server/app/miletruth/page.js new file mode 100644 index 0000000..3a0f7dd --- /dev/null +++ b/build/.next/server/app/miletruth/page.js @@ -0,0 +1,15 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/miletruth/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0~j.xbf._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_086_46y.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_miletruth_page_actions_0vhj20z.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(62456) +module.exports=R.m(62456).exports diff --git a/build/.next/server/app/miletruth/page.js.map b/build/.next/server/app/miletruth/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/miletruth/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/miletruth/page.js.nft.json b/build/.next/server/app/miletruth/page.js.nft.json new file mode 100644 index 0000000..944e320 --- /dev/null +++ b/build/.next/server/app/miletruth/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[root-of-the-server]__0~j.xbf._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_01obfw9._.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_next-internal_server_app_miletruth_page_actions_0vhj20z.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_086_46y.js","../../chunks/ssr/src_components_sections_0xa9u10._.js","../../chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/miletruth/page/app-paths-manifest.json b/build/.next/server/app/miletruth/page/app-paths-manifest.json new file mode 100644 index 0000000..2e8bf94 --- /dev/null +++ b/build/.next/server/app/miletruth/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/miletruth/page": "app/miletruth/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/miletruth/page/build-manifest.json b/build/.next/server/app/miletruth/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/miletruth/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/miletruth/page/next-font-manifest.json b/build/.next/server/app/miletruth/page/next-font-manifest.json new file mode 100644 index 0000000..ea7d5a7 --- /dev/null +++ b/build/.next/server/app/miletruth/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/miletruth/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/miletruth/page/react-loadable-manifest.json b/build/.next/server/app/miletruth/page/react-loadable-manifest.json new file mode 100644 index 0000000..72714ac --- /dev/null +++ b/build/.next/server/app/miletruth/page/react-loadable-manifest.json @@ -0,0 +1,26 @@ +{ + "29539": { + "id": 29539, + "files": [ + "static/chunks/0ckcqe5on274m.js", + "static/chunks/04uib0xi8_zof.js", + "static/chunks/0e.~6vil2~4uy.js" + ] + }, + "39184": { + "id": 39184, + "files": [ + "static/chunks/15p8tu-h65hwr.js", + "static/chunks/0-kxqnmnjtk7l.js", + "static/chunks/04uib0xi8_zof.js", + "static/chunks/0e.~6vil2~4uy.js" + ] + }, + "55819": { + "id": 55819, + "files": [ + "static/chunks/0yqyiard9rg2e.js", + "static/chunks/0d09zs~9jbu5_.js" + ] + } +} \ No newline at end of file diff --git a/build/.next/server/app/miletruth/page/server-reference-manifest.json b/build/.next/server/app/miletruth/page/server-reference-manifest.json new file mode 100644 index 0000000..18656fb --- /dev/null +++ b/build/.next/server/app/miletruth/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/miletruth/page": { + "moduleId": 59753, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/miletruth/page_client-reference-manifest.js b/build/.next/server/app/miletruth/page_client-reference-manifest.js new file mode 100644 index 0000000..92b3ccb --- /dev/null +++ b/build/.next/server/app/miletruth/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/miletruth/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/sections/MileTruthHero.tsx ":{"id":58829,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/MileTruthHero.tsx":{"id":58829,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/Workflow1.tsx ":{"id":76756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/Workflow1.tsx":{"id":76756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/Workflow2.tsx ":{"id":38730,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/Workflow2.tsx":{"id":38730,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/Workflow4.tsx ":{"id":27698,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/Workflow4.tsx":{"id":27698,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/Workflow3Lazy.tsx ":{"id":33016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false},"[project]/src/components/sections/Workflow3Lazy.tsx":{"id":33016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/043-lr8ahr5l4.js","/_next/static/chunks/0vi1igu-zxb_c.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"58829":{"*":{"id":53521,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/_01obfw9._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_0xa9u10._.js"],"async":false}},"76756":{"*":{"id":67095,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/_01obfw9._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_0xa9u10._.js"],"async":false}},"38730":{"*":{"id":752,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/_01obfw9._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_0xa9u10._.js"],"async":false}},"27698":{"*":{"id":76551,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/_01obfw9._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_0xa9u10._.js"],"async":false}},"33016":{"*":{"id":41033,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/_01obfw9._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_0xa9u10._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"58829":{"*":{"id":92655,"name":"*","chunks":[],"async":false}},"76756":{"*":{"id":67020,"name":"*","chunks":[],"async":false}},"38730":{"*":{"id":64531,"name":"*","chunks":[],"async":false}},"27698":{"*":{"id":42311,"name":"*","chunks":[],"async":false}},"33016":{"*":{"id":39925,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/miletruth/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/miletruth/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/043-lr8ahr5l4.js","static/chunks/0vi1igu-zxb_c.js"]}}; + diff --git a/build/.next/server/app/page.js b/build/.next/server/app/page.js new file mode 100644 index 0000000..3d3c46c --- /dev/null +++ b/build/.next/server/app/page.js @@ -0,0 +1,17 @@ +var R=require("../chunks/ssr/[turbopack]_runtime.js")("server/app/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0eood4z._.js") +R.c("server/chunks/ssr/_0sw0r2k._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nqzqrg.js") +R.c("server/chunks/ssr/src_04lygsm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_page_actions_10si78q.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(83584) +module.exports=R.m(83584).exports diff --git a/build/.next/server/app/page.js.map b/build/.next/server/app/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/page.js.nft.json b/build/.next/server/app/page.js.nft.json new file mode 100644 index 0000000..a7efa25 --- /dev/null +++ b/build/.next/server/app/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../node_modules/@swc/helpers/package.json","../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../node_modules/next/dist/client/components/app-router-headers.js","../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../node_modules/next/dist/client/lib/console.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../node_modules/next/dist/compiled/source-map/package.json","../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../node_modules/next/dist/compiled/ws/index.js","../../../node_modules/next/dist/compiled/ws/package.json","../../../node_modules/next/dist/lib/client-and-server-references.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/picocolors.js","../../../node_modules/next/dist/lib/scheduler.js","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../node_modules/next/dist/server/lib/lru-cache.js","../../../node_modules/next/dist/server/lib/parse-stack.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../node_modules/next/dist/server/lib/source-maps.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/dist/server/load-manifest.external.js","../../../node_modules/next/dist/server/node-environment-baseline.js","../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../node_modules/next/dist/server/node-environment.js","../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../node_modules/next/dist/server/patch-error-inspect.js","../../../node_modules/next/dist/server/require-hook.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../node_modules/next/package.json","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/package.json","../chunks/ssr/[root-of-the-server]__055c-aq._.js","../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../chunks/ssr/[root-of-the-server]__0eood4z._.js","../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../chunks/ssr/[turbopack]_runtime.js","../chunks/ssr/_0p0sfo8._.js","../chunks/ssr/_0sw0r2k._.js","../chunks/ssr/_next-internal_server_app_page_actions_10si78q.js","../chunks/ssr/node_modules_0oplp32._.js","../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nqzqrg.js","../chunks/ssr/src_04lygsm._.js","../chunks/ssr/src_components_sections_071-yiu._.js","../chunks/ssr/src_components_sections_133w8q1._.js","../chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/page/app-paths-manifest.json b/build/.next/server/app/page/app-paths-manifest.json new file mode 100644 index 0000000..e234c2e --- /dev/null +++ b/build/.next/server/app/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/page": "app/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/page/build-manifest.json b/build/.next/server/app/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/page/next-font-manifest.json b/build/.next/server/app/page/next-font-manifest.json new file mode 100644 index 0000000..6190fd8 --- /dev/null +++ b/build/.next/server/app/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/page/react-loadable-manifest.json b/build/.next/server/app/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/page/server-reference-manifest.json b/build/.next/server/app/page/server-reference-manifest.json new file mode 100644 index 0000000..8b5e4aa --- /dev/null +++ b/build/.next/server/app/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/page": { + "moduleId": 71970, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/page_client-reference-manifest.js b/build/.next/server/app/page_client-reference-manifest.js new file mode 100644 index 0000000..1c61b36 --- /dev/null +++ b/build/.next/server/app/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/sections/IndexHero.tsx ":{"id":97677,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/IndexHero.tsx":{"id":97677,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/StatsBar.tsx ":{"id":58140,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/StatsBar.tsx":{"id":58140,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/TheProblem.tsx ":{"id":36854,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/TheProblem.tsx":{"id":36854,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/ConnectedLogistics.tsx ":{"id":32693,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/ConnectedLogistics.tsx":{"id":32693,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/TheDoormileWay.tsx ":{"id":24911,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/TheDoormileWay.tsx":{"id":24911,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/EVSection.tsx ":{"id":14224,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/components/sections/EVSection.tsx":{"id":14224,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js ":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js":{"id":22016,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js ":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/node_modules/next/dist/client/image-component.js":{"id":5500,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/animations/Reveal.tsx ":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false},"[project]/src/animations/Reveal.tsx":{"id":2018,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/0vi1igu-zxb_c.js","/_next/static/chunks/0nunuemu9ietr.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"97677":{"*":{"id":52191,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}},"58140":{"*":{"id":9730,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}},"36854":{"*":{"id":54609,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}},"32693":{"*":{"id":82226,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}},"24911":{"*":{"id":67736,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}},"14224":{"*":{"id":61358,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}},"22016":{"*":{"id":38246,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}},"5500":{"*":{"id":67161,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}},"2018":{"*":{"id":36002,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_133w8q1._.js","server/chunks/ssr/src_components_sections_EVSection_tsx_13keyb.._.js","server/chunks/ssr/src_components_sections_071-yiu._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"97677":{"*":{"id":1860,"name":"*","chunks":[],"async":false}},"58140":{"*":{"id":47240,"name":"*","chunks":[],"async":false}},"36854":{"*":{"id":54320,"name":"*","chunks":[],"async":false}},"32693":{"*":{"id":18673,"name":"*","chunks":[],"async":false}},"24911":{"*":{"id":16205,"name":"*","chunks":[],"async":false}},"14224":{"*":{"id":59005,"name":"*","chunks":[],"async":false}},"22016":{"*":{"id":84707,"name":"*","chunks":[],"async":false}},"5500":{"*":{"id":43489,"name":"*","chunks":[],"async":false}},"2018":{"*":{"id":9386,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false},{"path":"static/chunks/0v290txaarww5.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/0vi1igu-zxb_c.js","static/chunks/0nunuemu9ietr.js"]}}; + diff --git a/build/.next/server/app/privacy-policy.html b/build/.next/server/app/privacy-policy.html new file mode 100644 index 0000000..c86eb10 --- /dev/null +++ b/build/.next/server/app/privacy-policy.html @@ -0,0 +1,853 @@ +Privacy Policy – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

\ No newline at end of file diff --git a/build/.next/server/app/privacy-policy.meta b/build/.next/server/app/privacy-policy.meta new file mode 100644 index 0000000..36dd77b --- /dev/null +++ b/build/.next/server/app/privacy-policy.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/privacy-policy/layout,_N_T_/privacy-policy/page,_N_T_/privacy-policy" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/privacy-policy/__PAGE__", + "/privacy-policy", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/privacy-policy.rsc b/build/.next/server/app/privacy-policy.rsc new file mode 100644 index 0000000..0600f38 --- /dev/null +++ b/build/.next/server/app/privacy-policy.rsc @@ -0,0 +1,222 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +19:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","privacy-policy"],"q":"","i":false,"f":[[["",{"children":["privacy-policy",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","section",null,{"className":"dm-legal","aria-label":"Privacy Policy","children":[["$","div",null,{"className":"dm-legal__wrap","children":[["$","aside",null,{"className":"dm-legal__toc","aria-label":"On this page","children":["$","div",null,{"className":"dm-legal__toc-inner","children":[["$","p",null,{"className":"dm-legal__toc-label","children":"On this page"}],["$","nav",null,{"children":["$","ul",null,{"children":[["$","li","Information We Collect",{"children":["$","a",null,{"href":"#information-we-collect","children":"Information We Collect"}]}],["$","li","How We Use Your Information",{"children":["$","a",null,{"href":"#how-we-use-your-information","children":"How We Use Your Information"}]}],["$","li","Information Sharing",{"children":"$Lc"}],"$Ld","$Le","$Lf","$L10","$L11","$L12","$L13"]}]}]]}]}],"$L14"]}],"$L15"]}]}]}]}],null,"$L16"]}],{},null,false,null]},null,false,"$@17"]},null,false,null],"$L18",false]],"m":"$undefined","G":["$19",["$L1a"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +20:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +21:"$Sreact.suspense" +24:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +26:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","a",null,{"href":"#information-sharing","children":"Information Sharing"}] +d:["$","li","Data Security",{"children":["$","a",null,{"href":"#data-security","children":"Data Security"}]}] +e:["$","li","Data Retention",{"children":["$","a",null,{"href":"#data-retention","children":"Data Retention"}]}] +f:["$","li","Cookies and Tracking Technologies",{"children":["$","a",null,{"href":"#cookies-and-tracking-technologies","children":"Cookies and Tracking Technologies"}]}] +10:["$","li","Your Rights",{"children":["$","a",null,{"href":"#your-rights","children":"Your Rights"}]}] +11:["$","li","Third-Party Links",{"children":["$","a",null,{"href":"#third-party-links","children":"Third-Party Links"}]}] +12:["$","li","Policy Updates",{"children":["$","a",null,{"href":"#policy-updates","children":"Policy Updates"}]}] +13:["$","li","Contact Us",{"children":["$","a",null,{"href":"#contact-us","children":"Contact Us"}]}] +14:["$","div",null,{"className":"dm-legal__main","children":[["$","header",null,{"className":"dm-legal__hero","children":[["$","h1",null,{"className":"dm-legal__title","children":"Privacy Policy"}],["$","p",null,{"className":"dm-legal__updated","children":["Last Updated: ","June 2026"]}],["$","p",null,{"className":"dm-legal__lead","children":"At Doormile, we are committed to protecting your privacy and maintaining the security of the information you share with us. This Privacy Policy outlines how we collect, use, store, and protect your information when you visit our website, interact with our services, or communicate with us."}]]}],["$","article",null,{"className":"dm-legal__content","children":[["$","section","Information We Collect",{"id":"information-we-collect","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Information We Collect"}],[["$","p","0",{"className":"dm-legal__p","children":"We may collect the following information:"}],["$","ul","1",{"className":"dm-legal__ul","children":[["$","li","0",{"children":"Full name"}],["$","li","1",{"children":"Email address"}],["$","li","2",{"children":"Phone number"}],["$","li","3",{"children":"Company name"}],["$","li","4",{"children":"Job title"}],["$","li","5",{"children":"Information submitted through contact forms"}],["$","li","6",{"children":"Service inquiry details"}],["$","li","7",{"children":"Website usage data and analytics"}],["$","li","8",{"children":"Browser, device, and IP information"}]]}]]]}],["$","section","How We Use Your Information",{"id":"how-we-use-your-information","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"How We Use Your Information"}],[["$","p","0",{"className":"dm-legal__p","children":"We use your information to:"}],["$","ul","1",{"className":"dm-legal__ul","children":[["$","li","0",{"children":"Respond to inquiries and support requests"}],["$","li","1",{"children":"Provide information about our services"}],["$","li","2",{"children":"Improve website performance and user experience"}],["$","li","3",{"children":"Analyze usage trends and platform effectiveness"}],["$","li","4",{"children":"Maintain security and prevent unauthorized access"}],["$","li","5",{"children":"Communicate service updates and business information"}],["$","li","6",{"children":"Comply with legal and regulatory requirements"}]]}]]]}],["$","section","Information Sharing",{"id":"information-sharing","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Information Sharing"}],[["$","p","0",{"className":"dm-legal__p","children":"Doormile does not sell, rent, or trade personal information. Information may be shared with trusted service providers that assist with website hosting, analytics, communications, and operational support, subject to appropriate confidentiality and security obligations."}]]]}],["$","section","Data Security",{"id":"data-security","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Data Security"}],[["$","p","0",{"className":"dm-legal__p","children":"We implement industry-standard administrative, technical, and organizational safeguards designed to protect personal information from unauthorized access, disclosure, alteration, or destruction."}]]]}],["$","section","Data Retention",{"id":"data-retention","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Data Retention"}],[["$","p","0",{"className":"dm-legal__p","children":"We retain information only for as long as necessary to fulfill the purposes described in this policy, comply with legal obligations, resolve disputes, and enforce agreements."}]]]}],["$","section","Cookies and Tracking Technologies",{"id":"cookies-and-tracking-technologies","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Cookies and Tracking Technologies"}],[["$","p","0",{"className":"dm-legal__p","children":"We use cookies and similar technologies to improve website functionality, measure performance, understand user behavior, and enhance user experience."}]]]}],"$L1b","$L1c","$L1d","$L1e"]}]]}] +1f:T15aa, +.dm-legal { + background: #ffffff; + color: #334155; + /* Top padding clears the fixed/absolute floating navbar (~104px) + breathing room. */ + padding: clamp(132px, 16vh, 184px) 0 clamp(72px, 10vw, 96px); + font-family: var(--font-manrope), system-ui, -apple-system, sans-serif; +} + +.dm-legal__wrap { + max-width: 1180px; + margin: 0 auto; + padding: 0 clamp(20px, 5vw, 40px); + display: grid; + grid-template-columns: minmax(0, 1fr); + gap: 0; +} + +/* ---- Sticky table of contents (desktop only) ---- */ +.dm-legal__toc { display: none; } + +@media (min-width: 1080px) { + .dm-legal__wrap { + grid-template-columns: 248px minmax(0, 800px); + justify-content: center; + gap: 64px; + } + .dm-legal__toc { display: block; } +} + +.dm-legal__toc-inner { position: sticky; top: 128px; } +.dm-legal__toc-label { + margin: 0 0 14px; + font-size: 12px; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: #94a3b8; +} +.dm-legal__toc nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; } +.dm-legal__toc nav a { + display: block; + font-size: 14px; + line-height: 1.4; + color: #64748b; + text-decoration: none; + border-left: 2px solid transparent; + padding-left: 12px; + transition: color 0.2s ease, border-color 0.2s ease; +} +.dm-legal__toc nav a:hover { color: #c01227; border-left-color: #c01227; } + +/* ---- Reading column (max 800px) ---- */ +.dm-legal__main { min-width: 0; max-width: 800px; } + +.dm-legal__hero { margin-bottom: clamp(40px, 6vw, 56px); } +.dm-legal__title { + margin: 0 !important; + padding: 0 !important; + /* !important / text-transform override the global ".elementor-kit-5 h1" + (uppercase + kit font-size) so headings render in normal case at the spec sizes. */ + font-size: clamp(40px, 6vw, 60px) !important; + font-weight: 800 !important; + line-height: 1.08 !important; + letter-spacing: -0.02em !important; + text-transform: none !important; + color: #0f172a !important; +} +.dm-legal__updated { + margin: 16px 0 0; + font-size: 14px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + color: #94a3b8; +} + +.dm-legal__lead { + margin: 24px 0 0; + font-size: clamp(18px, 1.6vw, 20px); + line-height: 1.7; + color: #475569; +} +.dm-legal__hero .dm-legal__lead { margin-top: 24px; } + +/* ---- Sections ---- */ +.dm-legal__content { display: flex; flex-direction: column; } +.dm-legal__section { padding-top: 32px; } +.dm-legal__section:first-child { padding-top: 0; } + +.dm-legal__h2 { + margin: 0 0 16px !important; + padding: 0 !important; + font-size: clamp(24px, 3vw, 32px) !important; + font-weight: 700 !important; + line-height: 1.2 !important; + letter-spacing: -0.01em !important; + text-transform: none !important; + color: #0f172a !important; + /* Offset anchor jumps so the heading isn't hidden under the fixed navbar. */ + scroll-margin-top: 120px; +} +.dm-legal__h3 { + margin: 24px 0 8px !important; + padding: 0 !important; + font-size: 20px !important; + font-weight: 700 !important; + line-height: 1.35 !important; + text-transform: none !important; + color: #0f172a !important; +} +.dm-legal__p { + margin: 0 0 16px; + font-size: 18px; + line-height: 1.7; + color: #334155; +} +.dm-legal__p:last-child { margin-bottom: 0; } + +.dm-legal__ul { margin: 4px 0 16px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; } +.dm-legal__ul li { + position: relative; + padding-left: 26px; + font-size: 18px; + line-height: 1.7; + color: #334155; +} +/* Extra .dm-legal prefix raises specificity above the global theme rule + ".logico-front-end ul li:before" (a fontello glyph), so our clean red dot + replaces the inherited checkmark marker. */ +.dm-legal .dm-legal__ul li::before { + content: "" !important; + position: absolute; + left: 4px; + top: 0.62em; + width: 7px; + height: 7px; + border-radius: 50%; + background: #c01227; + font-size: 0; +} +/* TOC links are inside a
    too — suppress the same inherited glyph marker. */ +.dm-legal .dm-legal__toc nav li::before { content: none !important; } + +.dm-legal__link { color: #c01227; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(192,18,39,0.35); } +.dm-legal__link:hover { border-bottom-color: #c01227; } + +@media (max-width: 1079px) { + .dm-legal__main { margin: 0 auto; } +} + +/* ============================================================ + Navbar visibility — LEGAL PAGES ONLY. + This
    FMCG logistics

    FMCG

    FMCG logistics demands speed, precision, and continuous fulfillment across high-volume delivery networks. Businesses must balance tight delivery timelines, inventory movement, and operational efficiency without compromising product availability.

    • Unpredictable demand spikes create delivery pressure and reduce operational efficiency during peak periods.
    • Fresh product expiry constraints require faster, precisely timed deliveries to maintain product quality.
    • Multi-stop route complexity increases travel time, operational costs, and delivery coordination challenges.
    • Inventory stockout risks increase when delivery delays disrupt fast-moving product distribution.
    Pharma logistics

    Pharma

    Pharma logistics requires precision, compliance, and real-time monitoring so every shipment arrives safely and on time — from temperature-sensitive medicines to urgent emergency deliveries.

    • Cold chain integrity demands precise temperature control throughout transit.
    • Regulatory compliance must be tracked and documented on every delivery.
    • Critical delivery time windows require highly accurate scheduling.
    • Emergency shipments need instant dispatch and zero-delay execution.
    Enterprise and B2B logistics

    Enterprise & B2B

    Enterprise and B2B logistics require coordination and reliability to manage high-value shipments at scale — with appointment scheduling, white-glove standards, and strict SLA commitments.

    • Appointment scheduling requires precise timing across many locations.
    • White-glove delivery standards demand premium handling and accuracy.
    • Multi-location routing complexity grows with large-scale operations.
    • Strict SLA commitments pressure teams to stay timely and error-free.

\ No newline at end of file diff --git a/build/.next/server/app/solutions.meta b/build/.next/server/app/solutions.meta new file mode 100644 index 0000000..dfb9fc9 --- /dev/null +++ b/build/.next/server/app/solutions.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/solutions/layout,_N_T_/solutions/page,_N_T_/solutions" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/solutions/__PAGE__", + "/solutions", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/solutions.rsc b/build/.next/server/app/solutions.rsc new file mode 100644 index 0000000..32ee0e1 --- /dev/null +++ b/build/.next/server/app/solutions.rsc @@ -0,0 +1,76 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +12:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +c:T5ca, + /* Fix "Why Businesses Choose Doormile" section — anchor absolute image left, push content right */ + .elementor-element.elementor-element-ead59d3 { + position: relative; + overflow: hidden; + } + .elementor-element.elementor-element-f35119c { + position: absolute !important; + left: -2% !important; + top: 50% !important; + transform: translateY(-50%) !important; + width: 48% !important; + max-width: 520px !important; + opacity: 0.18 !important; + z-index: 0 !important; + pointer-events: none; + } + .elementor-element.elementor-element-56ecbb3 { + position: relative !important; + z-index: 1 !important; + width: 55% !important; + max-width: 55% !important; + margin-left: auto !important; + margin-right: 4% !important; + } + .elementor-element.elementor-element-56ecbb3 .e-con-inner { + max-width: 100% !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + @media (max-width: 1020px) { + .elementor-element.elementor-element-f35119c { display: none !important; } + .elementor-element.elementor-element-56ecbb3 { + width: 100% !important; + max-width: 100% !important; + margin: 0 !important; + } + } + 0:{"P":null,"c":["","solutions"],"q":"","i":false,"f":[[["",{"children":["solutions",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$c"}}],"$Ld"],["$Le"],"$Lf"]}],{},null,false,null]},null,false,"$@10"]},null,false,null],"$L11",false]],"m":"$undefined","G":["$12",["$L13"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +14:I[89937,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"default"] +15:I[40086,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"default"] +16:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +17:"$Sreact.suspense" +1a:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1c:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +d:["$","div",null,{"id":"solutions","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$L14",null,{}],["$","$L15",null,{}]]}]}]}]}] +e:["$","script","script-0",{"src":"/_next/static/chunks/17iyy9kp8dsf4.js","async":true,"nonce":"$undefined"}] +f:["$","$L16",null,{"children":["$","$17",null,{"name":"Next.MetadataOutlet","children":"$@18"}]}] +19:[] +10:"$W19" +11:["$","$1","h",{"children":[null,["$","$L1a",null,{"children":"$L1b"}],["$","div",null,{"hidden":true,"children":["$","$L1c",null,{"children":["$","$17",null,{"name":"Next.Metadata","children":"$L1d"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +13:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +1b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +1e:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +18:null +1d:[["$","title","0",{"children":"Solutions – Doormile"}],["$","meta","1",{"name":"description","content":"Discover how Doormile's connected logistics platform serves diverse industries (FMCG, Pharma, and Enterprise) with tailored solutions."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L1e","7",{}]] diff --git a/build/.next/server/app/solutions.segments/_full.segment.rsc b/build/.next/server/app/solutions.segments/_full.segment.rsc new file mode 100644 index 0000000..32ee0e1 --- /dev/null +++ b/build/.next/server/app/solutions.segments/_full.segment.rsc @@ -0,0 +1,76 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +12:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +c:T5ca, + /* Fix "Why Businesses Choose Doormile" section — anchor absolute image left, push content right */ + .elementor-element.elementor-element-ead59d3 { + position: relative; + overflow: hidden; + } + .elementor-element.elementor-element-f35119c { + position: absolute !important; + left: -2% !important; + top: 50% !important; + transform: translateY(-50%) !important; + width: 48% !important; + max-width: 520px !important; + opacity: 0.18 !important; + z-index: 0 !important; + pointer-events: none; + } + .elementor-element.elementor-element-56ecbb3 { + position: relative !important; + z-index: 1 !important; + width: 55% !important; + max-width: 55% !important; + margin-left: auto !important; + margin-right: 4% !important; + } + .elementor-element.elementor-element-56ecbb3 .e-con-inner { + max-width: 100% !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + @media (max-width: 1020px) { + .elementor-element.elementor-element-f35119c { display: none !important; } + .elementor-element.elementor-element-56ecbb3 { + width: 100% !important; + max-width: 100% !important; + margin: 0 !important; + } + } + 0:{"P":null,"c":["","solutions"],"q":"","i":false,"f":[[["",{"children":["solutions",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$c"}}],"$Ld"],["$Le"],"$Lf"]}],{},null,false,null]},null,false,"$@10"]},null,false,null],"$L11",false]],"m":"$undefined","G":["$12",["$L13"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +14:I[89937,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"default"] +15:I[40086,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"default"] +16:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +17:"$Sreact.suspense" +1a:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +1c:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +d:["$","div",null,{"id":"solutions","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$L14",null,{}],["$","$L15",null,{}]]}]}]}]}] +e:["$","script","script-0",{"src":"/_next/static/chunks/17iyy9kp8dsf4.js","async":true,"nonce":"$undefined"}] +f:["$","$L16",null,{"children":["$","$17",null,{"name":"Next.MetadataOutlet","children":"$@18"}]}] +19:[] +10:"$W19" +11:["$","$1","h",{"children":[null,["$","$L1a",null,{"children":"$L1b"}],["$","div",null,{"hidden":true,"children":["$","$L1c",null,{"children":["$","$17",null,{"name":"Next.Metadata","children":"$L1d"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +13:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] +1b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +1e:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +18:null +1d:[["$","title","0",{"children":"Solutions – Doormile"}],["$","meta","1",{"name":"description","content":"Discover how Doormile's connected logistics platform serves diverse industries (FMCG, Pharma, and Enterprise) with tailored solutions."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L1e","7",{}]] diff --git a/build/.next/server/app/solutions.segments/_head.segment.rsc b/build/.next/server/app/solutions.segments/_head.segment.rsc new file mode 100644 index 0000000..fccf9b4 --- /dev/null +++ b/build/.next/server/app/solutions.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +3:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[27201,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Solutions – Doormile"}],["$","meta","1",{"name":"description","content":"Discover how Doormile's connected logistics platform serves diverse industries (FMCG, Pharma, and Enterprise) with tailored solutions."}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"shortcut icon","href":"/images/cropped-image-2.png"}],["$","link","4",{"rel":"icon","href":"/favicon.ico?favicon.14w3bhkxgz946.ico","sizes":"40x40","type":"image/x-icon"}],["$","link","5",{"rel":"icon","href":"/images/cropped-image-2.png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/images/cropped-image-2.png"}],["$","$L5","7",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/solutions.segments/_index.segment.rsc b/build/.next/server/app/solutions.segments/_index.segment.rsc new file mode 100644 index 0000000..07d07bb --- /dev/null +++ b/build/.next/server/app/solutions.segments/_index.segment.rsc @@ -0,0 +1,15 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","template":["$","$La",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/solutions.segments/_tree.segment.rsc b/build/.next/server/app/solutions.segments/_tree.segment.rsc new file mode 100644 index 0000000..a698018 --- /dev/null +++ b/build/.next/server/app/solutions.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"solutions","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/solutions.segments/solutions.segment.rsc b/build/.next/server/app/solutions.segments/solutions.segment.rsc new file mode 100644 index 0000000..9d4c214 --- /dev/null +++ b/build/.next/server/app/solutions.segments/solutions.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"VkXP3ZSqJcnzcJArhJHd2"} diff --git a/build/.next/server/app/solutions.segments/solutions/__PAGE__.segment.rsc b/build/.next/server/app/solutions.segments/solutions/__PAGE__.segment.rsc new file mode 100644 index 0000000..3db4125 --- /dev/null +++ b/build/.next/server/app/solutions.segments/solutions/__PAGE__.segment.rsc @@ -0,0 +1,45 @@ +1:"$Sreact.fragment" +3:I[89937,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"default"] +4:I[40086,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"default"] +5:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +6:"$Sreact.suspense" +2:T5ca, + /* Fix "Why Businesses Choose Doormile" section — anchor absolute image left, push content right */ + .elementor-element.elementor-element-ead59d3 { + position: relative; + overflow: hidden; + } + .elementor-element.elementor-element-f35119c { + position: absolute !important; + left: -2% !important; + top: 50% !important; + transform: translateY(-50%) !important; + width: 48% !important; + max-width: 520px !important; + opacity: 0.18 !important; + z-index: 0 !important; + pointer-events: none; + } + .elementor-element.elementor-element-56ecbb3 { + position: relative !important; + z-index: 1 !important; + width: 55% !important; + max-width: 55% !important; + margin-left: auto !important; + margin-right: 4% !important; + } + .elementor-element.elementor-element-56ecbb3 .e-con-inner { + max-width: 100% !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + @media (max-width: 1020px) { + .elementor-element.elementor-element-f35119c { display: none !important; } + .elementor-element.elementor-element-56ecbb3 { + width: 100% !important; + max-width: 100% !important; + margin: 0 !important; + } + } + 0:{"rsc":["$","$1","c",{"children":[[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}],["$","div",null,{"id":"solutions","className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","div",null,{"data-elementor-type":"wp-page","data-elementor-id":"59","className":"elementor elementor-59","children":[["$","$L3",null,{}],["$","$L4",null,{}]]}]}]}]}]],[["$","script","script-0",{"src":"/_next/static/chunks/17iyy9kp8dsf4.js","async":true}]],["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"VkXP3ZSqJcnzcJArhJHd2"} +7:null diff --git a/build/.next/server/app/solutions/page.js b/build/.next/server/app/solutions/page.js new file mode 100644 index 0000000..a9dee62 --- /dev/null +++ b/build/.next/server/app/solutions/page.js @@ -0,0 +1,15 @@ +var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/solutions/page.js") +R.c("server/chunks/ssr/[root-of-the-server]__0vver6v._.js") +R.c("server/chunks/ssr/node_modules_next_dist_09jzzl8._.js") +R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_110uwud.js") +R.c("server/chunks/ssr/[root-of-the-server]__07uj_3p._.js") +R.c("server/chunks/ssr/node_modules_next_dist_0_t6nhm._.js") +R.c("server/chunks/ssr/[root-of-the-server]__0ed.-2a._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js") +R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js") +R.c("server/chunks/ssr/_next-internal_server_app_solutions_page_actions_0mr.5pt.js") +R.c("server/chunks/ssr/[root-of-the-server]__055c-aq._.js") +R.m(9547) +module.exports=R.m(9547).exports diff --git a/build/.next/server/app/solutions/page.js.map b/build/.next/server/app/solutions/page.js.map new file mode 100644 index 0000000..c15d7ec --- /dev/null +++ b/build/.next/server/app/solutions/page.js.map @@ -0,0 +1,5 @@ +{ + "version": 3, + "sources": [], + "sections": [] +} \ No newline at end of file diff --git a/build/.next/server/app/solutions/page.js.nft.json b/build/.next/server/app/solutions/page.js.nft.json new file mode 100644 index 0000000..15a27ad --- /dev/null +++ b/build/.next/server/app/solutions/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../chunks/ssr/[root-of-the-server]__055c-aq._.js","../../chunks/ssr/[root-of-the-server]__07uj_3p._.js","../../chunks/ssr/[root-of-the-server]__0ed.-2a._.js","../../chunks/ssr/[root-of-the-server]__0ka9zs8._.js","../../chunks/ssr/[root-of-the-server]__0vver6v._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0p0sfo8._.js","../../chunks/ssr/_next-internal_server_app_solutions_page_actions_0mr.5pt.js","../../chunks/ssr/node_modules_0oplp32._.js","../../chunks/ssr/node_modules_gsap_0xy-.4m._.js","../../chunks/ssr/node_modules_next_dist_09jzzl8._.js","../../chunks/ssr/node_modules_next_dist_0_t6nhm._.js","../../chunks/ssr/node_modules_next_dist_0h9llsw._.js","../../chunks/ssr/node_modules_next_dist_11bk~bs._.js","../../chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js","../../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_110uwud.js","../../chunks/ssr/src_components_sections_06v94o_._.js","../../chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/build/.next/server/app/solutions/page/app-paths-manifest.json b/build/.next/server/app/solutions/page/app-paths-manifest.json new file mode 100644 index 0000000..f98eaae --- /dev/null +++ b/build/.next/server/app/solutions/page/app-paths-manifest.json @@ -0,0 +1,3 @@ +{ + "/solutions/page": "app/solutions/page.js" +} \ No newline at end of file diff --git a/build/.next/server/app/solutions/page/build-manifest.json b/build/.next/server/app/solutions/page/build-manifest.json new file mode 100644 index 0000000..9f25d22 --- /dev/null +++ b/build/.next/server/app/solutions/page/build-manifest.json @@ -0,0 +1,18 @@ +{ + "devFiles": [], + "ampDevFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [], + "rootMainFiles": [ + "static/chunks/098a0lm-b~rn..js", + "static/chunks/0tldj~reb5~dn.js", + "static/chunks/110q6k5sdl4es.js", + "static/chunks/14_678uuyq.tf.js", + "static/chunks/07uz2g0_38qia.js", + "static/chunks/turbopack-11jn_eqn~72wc.js" + ], + "pages": {}, + "ampFirstPages": [] +} \ No newline at end of file diff --git a/build/.next/server/app/solutions/page/next-font-manifest.json b/build/.next/server/app/solutions/page/next-font-manifest.json new file mode 100644 index 0000000..dbe2944 --- /dev/null +++ b/build/.next/server/app/solutions/page/next-font-manifest.json @@ -0,0 +1,14 @@ +{ + "pages": {}, + "app": { + "[project]/src/app/solutions/page": [ + "static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2", + "static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2", + "static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2", + "static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2", + "static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" + ] + }, + "appUsingSizeAdjust": true, + "pagesUsingSizeAdjust": false +} \ No newline at end of file diff --git a/build/.next/server/app/solutions/page/react-loadable-manifest.json b/build/.next/server/app/solutions/page/react-loadable-manifest.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/app/solutions/page/react-loadable-manifest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/app/solutions/page/server-reference-manifest.json b/build/.next/server/app/solutions/page/server-reference-manifest.json new file mode 100644 index 0000000..15cf11d --- /dev/null +++ b/build/.next/server/app/solutions/page/server-reference-manifest.json @@ -0,0 +1,17 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/solutions/page": { + "moduleId": 44019, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "edge": {} +} \ No newline at end of file diff --git a/build/.next/server/app/solutions/page_client-reference-manifest.js b/build/.next/server/app/solutions/page_client-reference-manifest.js new file mode 100644 index 0000000..375f3ae --- /dev/null +++ b/build/.next/server/app/solutions/page_client-reference-manifest.js @@ -0,0 +1,3 @@ +globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; +globalThis.__RSC_MANIFEST["/solutions/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js ":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx ":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Header.tsx":{"id":3374,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx ":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/Footer.tsx":{"id":58234,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx ":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyClasses.tsx":{"id":67989,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx ":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/BodyOverlay.tsx":{"id":92260,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx ":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/HeaderUIProvider.tsx":{"id":82637,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx ":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/AnimationProvider.tsx":{"id":48064,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx ":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/animations/SmoothScroll.tsx":{"id":26290,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx ":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/layout/LoadingScreen.tsx":{"id":8971,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"async":false},"[project]/src/components/sections/SolutionsHero.tsx ":{"id":89937,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"async":false},"[project]/src/components/sections/SolutionsHero.tsx":{"id":89937,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"async":false},"[project]/src/components/sections/IndustryStack.tsx ":{"id":40086,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"async":false},"[project]/src/components/sections/IndustryStack.tsx":{"id":40086,"name":"*","chunks":["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js","/_next/static/chunks/17iyy9kp8dsf4.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"3374":{"*":{"id":43218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"58234":{"*":{"id":25250,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"67989":{"*":{"id":61458,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"92260":{"*":{"id":22433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"82637":{"*":{"id":56080,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"48064":{"*":{"id":75065,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"26290":{"*":{"id":80739,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"8971":{"*":{"id":42734,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/node_modules_next_dist_client_components_06j6hww._.js"],"async":false}},"89937":{"*":{"id":33319,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_06v94o_._.js"],"async":false}},"40086":{"*":{"id":42957,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0ka9zs8._.js","server/chunks/ssr/_0p0sfo8._.js","server/chunks/ssr/node_modules_next_dist_11bk~bs._.js","server/chunks/ssr/node_modules_next_dist_0h9llsw._.js","server/chunks/ssr/node_modules_gsap_0xy-.4m._.js","server/chunks/ssr/node_modules_0oplp32._.js","server/chunks/ssr/src_components_sections_IndustryWorldMap_tsx_01vqqgp._.js","server/chunks/ssr/src_components_sections_06v94o_._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"3374":{"*":{"id":60079,"name":"*","chunks":[],"async":false}},"58234":{"*":{"id":63145,"name":"*","chunks":[],"async":false}},"67989":{"*":{"id":92290,"name":"*","chunks":[],"async":false}},"92260":{"*":{"id":52406,"name":"*","chunks":[],"async":false}},"82637":{"*":{"id":81769,"name":"*","chunks":[],"async":false}},"48064":{"*":{"id":74400,"name":"*","chunks":[],"async":false}},"26290":{"*":{"id":9003,"name":"*","chunks":[],"async":false}},"8971":{"*":{"id":46002,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"89937":{"*":{"id":93775,"name":"*","chunks":[],"async":false}},"40086":{"*":{"id":60915,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}],"[project]/src/app/solutions/page":[{"path":"static/chunks/13ci0umlwh11-.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js"],"[project]/src/app/solutions/page":["static/chunks/0812b12auw1ih.js","static/chunks/0wybzq6mybxiw.js","static/chunks/04xui0pxt.et1.js","static/chunks/0d3shmwh5_nmn.js","static/chunks/14-blkg1qzgwa.js","static/chunks/17iyy9kp8dsf4.js"]}}; + diff --git a/build/.next/server/app/terms-of-service.html b/build/.next/server/app/terms-of-service.html new file mode 100644 index 0000000..7a810a6 --- /dev/null +++ b/build/.next/server/app/terms-of-service.html @@ -0,0 +1,853 @@ +Terms of Service – Doormile

Doormile

Doormile logo
Address
Hyderabad

5th Floor, Vision Ultima,
Street No.3, Jayabheri Enclave,
Gachibowli, Hyderabad,
Telangana 500032.

Coimbatore

Mayflower Valencia,
Near Nava India Bus Stop,
Avinashi Road,
Udayampalayam,
Tamil Nadu 641037.

Bengaluru

C612, 6th Floor,
Trifecta Starlight,
ITPL Road,
Garudacharapalya,
Mahadevapura,
Bangalore 560048,
Karnataka, India.

Contact Us

Tel : +91 86886 97941

Email

care@doormile.com

\ No newline at end of file diff --git a/build/.next/server/app/terms-of-service.meta b/build/.next/server/app/terms-of-service.meta new file mode 100644 index 0000000..2f75094 --- /dev/null +++ b/build/.next/server/app/terms-of-service.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/terms-of-service/layout,_N_T_/terms-of-service/page,_N_T_/terms-of-service" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/terms-of-service/__PAGE__", + "/terms-of-service", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/build/.next/server/app/terms-of-service.rsc b/build/.next/server/app/terms-of-service.rsc new file mode 100644 index 0000000..30cd49d --- /dev/null +++ b/build/.next/server/app/terms-of-service.rsc @@ -0,0 +1,222 @@ +1:"$Sreact.fragment" +2:I[67989,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +3:I[8971,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +4:I[48064,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +5:I[26290,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +6:I[82637,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"HeaderUIProvider"] +7:I[92260,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +8:I[3374,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +9:I[39756,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +a:I[37457,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +b:I[58234,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default"] +19:I[68027,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"default",1] +:HL["/_next/static/chunks/13ci0umlwh11-.css","style"] +:HL["/_next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css","style"] +:HL["/css/site.css","style"] +0:{"P":null,"c":["","terms-of-service"],"q":"","i":false,"f":[[["",{"children":["terms-of-service",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/13ci0umlwh11-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0812b12auw1ih.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0wybzq6mybxiw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/04xui0pxt.et1.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/_next/static/chunks/14-blkg1qzgwa.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en-US","data-scroll-behavior":"smooth","className":"manrope_67dc055e-module__BHrBnq__variable space_grotesk_2e42c3c6-module__3Wl9rq__variable syne_ef5854ac-module__2TJB3a__variable dm_sans_2770e922-module__TdA3fW__variable inter_5dbe1e89-module__i9oJOa__variable","children":[["$","head",null,{"children":[["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"}],["$","link",null,{"rel":"stylesheet","href":"/css/site.css"}]]}],["$","body",null,{"className":"wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page","suppressHydrationWarning":true,"children":[["$","$L2",null,{}],["$","$L3",null,{}],["$","$L4",null,{"children":[["$","$L5",null,{}],["$","$L6",null,{"children":[["$","$L7",null,{}],["$","div",null,{"className":"body-container","children":["$","div",null,{"id":"page","className":"hfeed site","children":[["$","$L8",null,{}],["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$Lb",null,{}]]}]}]]}]]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L9",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none","children":["$","div",null,{"className":"content","children":["$","div",null,{"className":"content-inner","children":["$","section",null,{"className":"dm-legal","aria-label":"Terms of Service","children":[["$","div",null,{"className":"dm-legal__wrap","children":[["$","aside",null,{"className":"dm-legal__toc","aria-label":"On this page","children":["$","div",null,{"className":"dm-legal__toc-inner","children":[["$","p",null,{"className":"dm-legal__toc-label","children":"On this page"}],["$","nav",null,{"children":["$","ul",null,{"children":[["$","li","Acceptance of Terms",{"children":["$","a",null,{"href":"#acceptance-of-terms","children":"Acceptance of Terms"}]}],["$","li","Permitted Use",{"children":["$","a",null,{"href":"#permitted-use","children":"Permitted Use"}]}],["$","li","Intellectual Property Rights",{"children":["$","a",null,{"href":"#intellectual-property-rights","children":"Intellectual Property Rights"}]}],"$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13"]}]}]]}]}],"$L14"]}],"$L15"]}]}]}]}],null,"$L16"]}],{},null,false,null]},null,false,"$@17"]},null,false,null],"$L18",false]],"m":"$undefined","G":["$19",["$L1a"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"VkXP3ZSqJcnzcJArhJHd2"} +20:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"OutletBoundary"] +21:"$Sreact.suspense" +24:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"ViewportBoundary"] +26:I[97367,["/_next/static/chunks/0812b12auw1ih.js","/_next/static/chunks/0wybzq6mybxiw.js","/_next/static/chunks/04xui0pxt.et1.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/14-blkg1qzgwa.js"],"MetadataBoundary"] +c:["$","li","User Submissions",{"children":["$","a",null,{"href":"#user-submissions","children":"User Submissions"}]}] +d:["$","li","Service Availability",{"children":["$","a",null,{"href":"#service-availability","children":"Service Availability"}]}] +e:["$","li","Disclaimer of Warranties",{"children":["$","a",null,{"href":"#disclaimer-of-warranties","children":"Disclaimer of Warranties"}]}] +f:["$","li","Limitation of Liability",{"children":["$","a",null,{"href":"#limitation-of-liability","children":"Limitation of Liability"}]}] +10:["$","li","Indemnification",{"children":["$","a",null,{"href":"#indemnification","children":"Indemnification"}]}] +11:["$","li","Modifications",{"children":["$","a",null,{"href":"#modifications","children":"Modifications"}]}] +12:["$","li","Governing Law",{"children":["$","a",null,{"href":"#governing-law","children":"Governing Law"}]}] +13:["$","li","Contact Us",{"children":["$","a",null,{"href":"#contact-us","children":"Contact Us"}]}] +14:["$","div",null,{"className":"dm-legal__main","children":[["$","header",null,{"className":"dm-legal__hero","children":[["$","h1",null,{"className":"dm-legal__title","children":"Terms of Service"}],["$","p",null,{"className":"dm-legal__updated","children":["Last Updated: ","June 2026"]}],["$","p",null,{"className":"dm-legal__lead","children":"These Terms of Service govern your access to and use of the Doormile website and related services. By accessing or using our website, you agree to comply with these terms."}]]}],["$","article",null,{"className":"dm-legal__content","children":[["$","section","Acceptance of Terms",{"id":"acceptance-of-terms","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Acceptance of Terms"}],[["$","p","0",{"className":"dm-legal__p","children":"By accessing this website, you acknowledge that you have read, understood, and agreed to these Terms of Service and all applicable laws and regulations."}]]]}],["$","section","Permitted Use",{"id":"permitted-use","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Permitted Use"}],[["$","p","0",{"className":"dm-legal__p","children":"You agree to use the website and services only for lawful purposes and in accordance with these terms."}],["$","p","1",{"className":"dm-legal__p","children":"You agree not to:"}],["$","ul","2",{"className":"dm-legal__ul","children":[["$","li","0",{"children":"Violate applicable laws or regulations"}],["$","li","1",{"children":"Attempt unauthorized access to systems or networks"}],["$","li","2",{"children":"Interfere with website functionality or security"}],["$","li","3",{"children":"Distribute malicious software or harmful code"}],["$","li","4",{"children":"Misrepresent your identity or organization"}],["$","li","5",{"children":"Use website content without authorization"}]]}]]]}],["$","section","Intellectual Property Rights",{"id":"intellectual-property-rights","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Intellectual Property Rights"}],[["$","p","0",{"className":"dm-legal__p","children":"All content, technology, software, graphics, trademarks, logos, text, designs, and other materials available on this website are the property of Doormile or its licensors and are protected by applicable intellectual property laws."}]]]}],["$","section","User Submissions",{"id":"user-submissions","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"User Submissions"}],[["$","p","0",{"className":"dm-legal__p","children":"Any information submitted through forms, inquiries, or communications must be accurate and lawful. Users are responsible for the content they submit."}]]]}],["$","section","Service Availability",{"id":"service-availability","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Service Availability"}],[["$","p","0",{"className":"dm-legal__p","children":"While we strive to maintain uninterrupted access, we do not guarantee that the website or services will always be available, secure, or error-free."}]]]}],["$","section","Disclaimer of Warranties",{"id":"disclaimer-of-warranties","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Disclaimer of Warranties"}],[["$","p","0",{"className":"dm-legal__p","children":"The website and services are provided on an \"as is\" and \"as available\" basis without warranties of any kind, whether express or implied."}]]]}],["$","section","Limitation of Liability",{"id":"limitation-of-liability","className":"dm-legal__section","children":[["$","h2",null,{"className":"dm-legal__h2","children":"Limitation of Liability"}],[["$","p","0",{"className":"dm-legal__p","children":"To the maximum extent permitted by law, Doormile shall not be liable for any indirect, incidental, special, consequential, or punitive damages arising from or related to the use of the website or services."}]]]}],"$L1b","$L1c","$L1d","$L1e"]}]]}] +1f:T15aa, +.dm-legal { + background: #ffffff; + color: #334155; + /* Top padding clears the fixed/absolute floating navbar (~104px) + breathing room. */ + padding: clamp(132px, 16vh, 184px) 0 clamp(72px, 10vw, 96px); + font-family: var(--font-manrope), system-ui, -apple-system, sans-serif; +} + +.dm-legal__wrap { + max-width: 1180px; + margin: 0 auto; + padding: 0 clamp(20px, 5vw, 40px); + display: grid; + grid-template-columns: minmax(0, 1fr); + gap: 0; +} + +/* ---- Sticky table of contents (desktop only) ---- */ +.dm-legal__toc { display: none; } + +@media (min-width: 1080px) { + .dm-legal__wrap { + grid-template-columns: 248px minmax(0, 800px); + justify-content: center; + gap: 64px; + } + .dm-legal__toc { display: block; } +} + +.dm-legal__toc-inner { position: sticky; top: 128px; } +.dm-legal__toc-label { + margin: 0 0 14px; + font-size: 12px; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: #94a3b8; +} +.dm-legal__toc nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; } +.dm-legal__toc nav a { + display: block; + font-size: 14px; + line-height: 1.4; + color: #64748b; + text-decoration: none; + border-left: 2px solid transparent; + padding-left: 12px; + transition: color 0.2s ease, border-color 0.2s ease; +} +.dm-legal__toc nav a:hover { color: #c01227; border-left-color: #c01227; } + +/* ---- Reading column (max 800px) ---- */ +.dm-legal__main { min-width: 0; max-width: 800px; } + +.dm-legal__hero { margin-bottom: clamp(40px, 6vw, 56px); } +.dm-legal__title { + margin: 0 !important; + padding: 0 !important; + /* !important / text-transform override the global ".elementor-kit-5 h1" + (uppercase + kit font-size) so headings render in normal case at the spec sizes. */ + font-size: clamp(40px, 6vw, 60px) !important; + font-weight: 800 !important; + line-height: 1.08 !important; + letter-spacing: -0.02em !important; + text-transform: none !important; + color: #0f172a !important; +} +.dm-legal__updated { + margin: 16px 0 0; + font-size: 14px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + color: #94a3b8; +} + +.dm-legal__lead { + margin: 24px 0 0; + font-size: clamp(18px, 1.6vw, 20px); + line-height: 1.7; + color: #475569; +} +.dm-legal__hero .dm-legal__lead { margin-top: 24px; } + +/* ---- Sections ---- */ +.dm-legal__content { display: flex; flex-direction: column; } +.dm-legal__section { padding-top: 32px; } +.dm-legal__section:first-child { padding-top: 0; } + +.dm-legal__h2 { + margin: 0 0 16px !important; + padding: 0 !important; + font-size: clamp(24px, 3vw, 32px) !important; + font-weight: 700 !important; + line-height: 1.2 !important; + letter-spacing: -0.01em !important; + text-transform: none !important; + color: #0f172a !important; + /* Offset anchor jumps so the heading isn't hidden under the fixed navbar. */ + scroll-margin-top: 120px; +} +.dm-legal__h3 { + margin: 24px 0 8px !important; + padding: 0 !important; + font-size: 20px !important; + font-weight: 700 !important; + line-height: 1.35 !important; + text-transform: none !important; + color: #0f172a !important; +} +.dm-legal__p { + margin: 0 0 16px; + font-size: 18px; + line-height: 1.7; + color: #334155; +} +.dm-legal__p:last-child { margin-bottom: 0; } + +.dm-legal__ul { margin: 4px 0 16px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; } +.dm-legal__ul li { + position: relative; + padding-left: 26px; + font-size: 18px; + line-height: 1.7; + color: #334155; +} +/* Extra .dm-legal prefix raises specificity above the global theme rule + ".logico-front-end ul li:before" (a fontello glyph), so our clean red dot + replaces the inherited checkmark marker. */ +.dm-legal .dm-legal__ul li::before { + content: "" !important; + position: absolute; + left: 4px; + top: 0.62em; + width: 7px; + height: 7px; + border-radius: 50%; + background: #c01227; + font-size: 0; +} +/* TOC links are inside a
    too — suppress the same inherited glyph marker. */ +.dm-legal .dm-legal__toc nav li::before { content: none !important; } + +.dm-legal__link { color: #c01227; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(192,18,39,0.35); } +.dm-legal__link:hover { border-bottom-color: #c01227; } + +@media (max-width: 1079px) { + .dm-legal__main { margin: 0 auto; } +} + +/* ============================================================ + Navbar visibility — LEGAL PAGES ONLY. + This

    404

    This page could not be found.

\ No newline at end of file diff --git a/build/.next/server/pages/500.html b/build/.next/server/pages/500.html new file mode 100644 index 0000000..5c93d08 --- /dev/null +++ b/build/.next/server/pages/500.html @@ -0,0 +1 @@ +500: This page couldn’t load

This page couldn’t load

A server error occurred. Reload to try again.

\ No newline at end of file diff --git a/build/.next/server/prefetch-hints.json b/build/.next/server/prefetch-hints.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/build/.next/server/prefetch-hints.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/build/.next/server/server-reference-manifest.js b/build/.next/server/server-reference-manifest.js new file mode 100644 index 0000000..6f645ba --- /dev/null +++ b/build/.next/server/server-reference-manifest.js @@ -0,0 +1 @@ +self.__RSC_SERVER_MANIFEST="{\n \"node\": {\n \"40275f0c2193420edd4a0270f91d8fd12134ede38f\": {\n \"workers\": {\n \"app/_not-found/page\": {\n \"moduleId\": 75341,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/about-us/page\": {\n \"moduleId\": 16945,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/air-freight/page\": {\n \"moduleId\": 67113,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/blog/[slug]/page\": {\n \"moduleId\": 68232,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/blog/page\": {\n \"moduleId\": 62245,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/contact/page\": {\n \"moduleId\": 8829,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/cookie-policy/page\": {\n \"moduleId\": 78012,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/doormile-wings/page\": {\n \"moduleId\": 64668,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/empowerment/page\": {\n \"moduleId\": 61215,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/express/page\": {\n \"moduleId\": 88309,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/how-it-works/page\": {\n \"moduleId\": 1090,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/miletruth/page\": {\n \"moduleId\": 59753,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/page\": {\n \"moduleId\": 71970,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/privacy-policy/page\": {\n \"moduleId\": 84290,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/solutions/page\": {\n \"moduleId\": 44019,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n },\n \"app/terms-of-service/page\": {\n \"moduleId\": 61702,\n \"async\": false,\n \"exportedName\": \"sendEmailAction\",\n \"filename\": \"src/actions/sendEmail.ts\"\n }\n },\n \"filename\": \"src/actions/sendEmail.ts\",\n \"exportedName\": \"sendEmailAction\"\n }\n },\n \"edge\": {},\n \"encryptionKey\": \"u2BggUQUmDhxqpXTXbnNte6hoFkUKJCxrIEE0b0b/uo=\"\n}" \ No newline at end of file diff --git a/build/.next/server/server-reference-manifest.json b/build/.next/server/server-reference-manifest.json new file mode 100644 index 0000000..0f348ab --- /dev/null +++ b/build/.next/server/server-reference-manifest.json @@ -0,0 +1,108 @@ +{ + "node": { + "40275f0c2193420edd4a0270f91d8fd12134ede38f": { + "workers": { + "app/_not-found/page": { + "moduleId": 75341, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/about-us/page": { + "moduleId": 16945, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/air-freight/page": { + "moduleId": 67113, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/blog/[slug]/page": { + "moduleId": 68232, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/blog/page": { + "moduleId": 62245, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/contact/page": { + "moduleId": 8829, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/cookie-policy/page": { + "moduleId": 78012, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/doormile-wings/page": { + "moduleId": 64668, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/empowerment/page": { + "moduleId": 61215, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/express/page": { + "moduleId": 88309, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/how-it-works/page": { + "moduleId": 1090, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/miletruth/page": { + "moduleId": 59753, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/page": { + "moduleId": 71970, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/privacy-policy/page": { + "moduleId": 84290, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/solutions/page": { + "moduleId": 44019, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + }, + "app/terms-of-service/page": { + "moduleId": 61702, + "async": false, + "exportedName": "sendEmailAction", + "filename": "src/actions/sendEmail.ts" + } + }, + "filename": "src/actions/sendEmail.ts", + "exportedName": "sendEmailAction" + } + }, + "edge": {}, + "encryptionKey": "u2BggUQUmDhxqpXTXbnNte6hoFkUKJCxrIEE0b0b/uo=" +} \ No newline at end of file diff --git a/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_buildManifest.js b/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_buildManifest.js new file mode 100644 index 0000000..94ca914 --- /dev/null +++ b/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_buildManifest.js @@ -0,0 +1,11 @@ +self.__BUILD_MANIFEST = { + "__rewrites": { + "afterFiles": [], + "beforeFiles": [], + "fallback": [] + }, + "sortedPages": [ + "/_app", + "/_error" + ] +};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_clientMiddlewareManifest.js b/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_clientMiddlewareManifest.js new file mode 100644 index 0000000..a8acaff --- /dev/null +++ b/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_clientMiddlewareManifest.js @@ -0,0 +1 @@ +self.__MIDDLEWARE_MATCHERS = [];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB() \ No newline at end of file diff --git a/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_ssgManifest.js b/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_ssgManifest.js new file mode 100644 index 0000000..becaacd --- /dev/null +++ b/build/.next/static/VkXP3ZSqJcnzcJArhJHd2/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set(["\u002Fblog\u002F[slug]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/build/.next/static/chunks/0-kxqnmnjtk7l.js b/build/.next/static/chunks/0-kxqnmnjtk7l.js new file mode 100644 index 0000000..1686cf0 --- /dev/null +++ b/build/.next/static/chunks/0-kxqnmnjtk7l.js @@ -0,0 +1,57 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,69986,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(75056),i=e.i(25234),s=e.i(79877),o=e.i(33623),a=e.i(90072);let l="#08080c",c="#C01227",u="#E2354A",d="#7E1420",p="#F2667A",h="#3c3c46",m="#6a6a76",f="#43434d",x="#7c7c86",g="#22C55E",y="#FFFFFF",M=[c,f,x,f,x,f],b=["Multi-Trip","Proximity","Balanced","Fuel Saver","EV-Aware","Time-Aware"],j=[{at:0,pos:[0,20,27],look:[0,1.4,0]},{at:.13,pos:[-2.5,20,26.5],look:[-.5,1.2,0]},{at:.28,pos:[3,18.5,25.5],look:[.6,.8,-.8]},{at:.44,pos:[0,23,24.5],look:[0,1,0]},{at:.6,pos:[2.5,21,25.5],look:[0,1.2,0]},{at:.74,pos:[-2,20,26.5],look:[0,1.2,0]},{at:.88,pos:[0,22,25.5],look:[0,1.8,0]},{at:1,pos:[0,21.5,25.5],look:[0,2,0]}];function v(e){return e<0?0:e>1?1:e}function w(e,t,r){let n=v((r-e)/(t-e||1));return n*n*(3-2*n)}function A(e,t,r,n){return e+(t-e)*(1-Math.exp(-r*n))}function B(e){let t=43758.5453*Math.sin(127.1*e+311.7);return t-Math.floor(t)}function z(e,t=0){let r=new Float32Array(3*e),n=Math.PI*(3-Math.sqrt(5));for(let i=0;iz(j,.18),[j]),S=(0,r.useMemo)(()=>z(B,.55),[B]),W=(0,r.useMemo)(()=>z(Math.floor(.6*B),.7),[B]);return(0,i.useFrame)((t,r)=>{let n=e.current??0;b.current=A(b.current,n,3,r);let i=b.current,a=t.clock.elapsedTime,u=s.current;if(!u)return;let d=w(0,.13,i),p=w(.44,.5,i)*(1-w(.74,.88,i)),h=w(.88,1,i),m=.5*(.001+.999*d)*(1-.32*p)*(1+.18*h)*(1+.03*Math.sin(.9*a));if(u.scale.setScalar(m),u.position.y=3+.18*Math.sin(.6*a),u.rotation.y=.12*a,o.current&&o.current.rotation.set(.18*a,.24*a,0),l.current&&l.current.rotation.set(-(.22*a),.16*a,.1*a),x.current&&(x.current.rotation.y=.06*a),g.current&&(g.current.rotation.y=.35*a,g.current.rotation.x=.3*Math.sin(.2*a)),M.current&&(M.current.rotation.y=-(.28*a),M.current.rotation.z=.18*a),c.current){let e=1+.06*Math.sin(1.6*a)+.4*h;c.current.scale.setScalar(e)}f.current&&(f.current.opacity=v(.22+.05*Math.sin(1.6*a)+.25*h)*d)}),(0,t.jsxs)("group",{ref:s,position:[0,3,0],children:[(0,t.jsxs)("mesh",{children:[(0,t.jsx)("sphereGeometry",{args:[.95,24,24]}),(0,t.jsx)("meshBasicMaterial",{color:d,transparent:!0,opacity:.18,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("mesh",{children:[(0,t.jsx)("sphereGeometry",{args:[.42,24,24]}),(0,t.jsx)("meshBasicMaterial",{color:y,transparent:!0,opacity:.9,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("mesh",{ref:o,children:[(0,t.jsx)("icosahedronGeometry",{args:[1.35,1]}),(0,t.jsx)("meshBasicMaterial",{color:u,wireframe:!0,transparent:!0,opacity:.55,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("mesh",{ref:l,children:[(0,t.jsx)("icosahedronGeometry",{args:[1.7,2]}),(0,t.jsx)("meshBasicMaterial",{color:h,wireframe:!0,transparent:!0,opacity:.32,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("points",{ref:x,children:[(0,t.jsx)("bufferGeometry",{children:(0,t.jsx)("bufferAttribute",{attach:"attributes-position",args:[R,3]})}),(0,t.jsx)("pointsMaterial",{size:n?.05:.045,color:p,transparent:!0,opacity:.85,sizeAttenuation:!0,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("points",{ref:g,scale:1.6,children:[(0,t.jsx)("bufferGeometry",{children:(0,t.jsx)("bufferAttribute",{attach:"attributes-position",args:[S,3]})}),(0,t.jsx)("pointsMaterial",{size:.04,color:u,transparent:!0,opacity:.6,sizeAttenuation:!0,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("points",{ref:M,scale:2,children:[(0,t.jsx)("bufferGeometry",{children:(0,t.jsx)("bufferAttribute",{attach:"attributes-position",args:[W,3]})}),(0,t.jsx)("pointsMaterial",{size:.035,color:m,transparent:!0,opacity:.45,sizeAttenuation:!0,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("mesh",{ref:c,rotation:[Math.PI/2,0,0],children:[(0,t.jsx)("ringGeometry",{args:[2.1,2.25,64]}),(0,t.jsx)("meshBasicMaterial",{ref:f,color:u,transparent:!0,opacity:.22,side:a.DoubleSide,blending:a.AdditiveBlending,depthWrite:!1})]})]})}),S=new a.Object3D,W=new a.Color,k=` + attribute vec3 aSize; + attribute float aSeed; + varying vec2 vWinUv; + varying vec3 vWinNrm; + varying vec3 vWinSize; + varying float vWinSeed; +`,G=` + vWinUv = uv; + vWinNrm = normal; + vWinSize = aSize; + vWinSeed = aSeed; +`,C=` + uniform float uTime; + varying vec2 vWinUv; + varying vec3 vWinNrm; + varying vec3 vWinSize; + varying float vWinSeed; + float h11(float p){ p = fract(p*0.1031); p *= p+33.33; p *= p+p; return fract(p); } + float h21(vec2 p){ vec3 p3 = fract(vec3(p.xyx)*0.1031); p3 += dot(p3, p3.yzx+33.33); return fract((p3.x+p3.y)*p3.z); } +`,I=` + // facade tint varies per building — dark neutral charcoal (brand: near-black) + vec3 baseA = vec3(0.040, 0.040, 0.048); + vec3 baseB = vec3(0.065, 0.058, 0.066); + diffuseColor.rgb = mix(baseA, baseB, h11(vWinSeed*1.7)); + + // windows only on the four vertical faces (skip roof/floor) + float isVert = 1.0 - step(0.5, abs(vWinNrm.y)); + vec2 faceDim = abs(vWinNrm.x) > 0.5 ? vec2(vWinSize.z, vWinSize.y) : vec2(vWinSize.x, vWinSize.y); + vec2 cells = max(vec2(1.0), floor(faceDim / 0.52)); + vec2 g = vWinUv * cells; + vec2 id = floor(g); + vec2 f = fract(g); + float m = 0.16; // mullion margin + float pane = step(m, f.x) * step(f.x, 1.0 - m) * step(m, f.y) * step(f.y, 1.0 - m); + + float rnd = h21(id + vWinSeed * 37.0); + float lit = step(0.68, rnd); // ~32% of windows lit (dimmer skyline backdrop) + float toggle = step(0.97, h21(id * 1.31 + vWinSeed * 5.0 + floor(uTime * 0.5))); + lit = clamp(lit + toggle, 0.0, 1.0); // a few flick on/off over time + float flick = 0.9 + 0.1 * sin(uTime * 2.0 + rnd * 30.0); + + // Brand-tinted windows: mostly warm white with occasional brand-red panes. + vec3 warmWhite = vec3(1.0, 0.88, 0.80); + vec3 brandRed = vec3(0.82, 0.18, 0.24); + vec3 wcol = mix(warmWhite, brandRed, step(0.7, h21(id * 0.7 + vWinSeed))); + + float glow = isVert * pane * lit * flick; + totalEmissiveRadiance += wcol * glow * 0.85; + + // dark mullion grid + dimmer unlit glass + diffuseColor.rgb *= (0.42 + 0.58 * pane); +`,F=r.default.memo(function({progress:e,isMobile:n=!1}){let s=(0,r.useRef)(null),o=(0,r.useRef)(null),l=(0,r.useRef)(null),p=(0,r.useRef)(null),m=(0,r.useRef)(null),f=(0,r.useRef)(null),x=(0,r.useRef)(null),g=(0,r.useRef)(null),y=(0,r.useRef)(null),b=(0,r.useRef)(null),j=(0,r.useRef)(0),v=n?20:34,z=(0,r.useMemo)(()=>{let e=[];for(let t=0;t3.4&&B(13.3*t)>.42,d=u?.62*l:l,p=Math.floor(4*B(17.7*t))*Math.PI/8+.12*B(4.1*t),h=l>5;e.push({x:i,z:s,w:o,d:a,h:l,bodyH:d,rot:p,ci:c,tier:u,tall:h})}let t=e.filter(e=>e.tier),r=e.filter(e=>e.tall),n=new a.BoxGeometry(1,1,1),i=new Float32Array(3*v),s=new Float32Array(v);e.forEach((e,t)=>{i[3*t]=e.w,i[3*t+1]=e.bodyH,i[3*t+2]=e.d,s[t]=10*B(23.1*t)}),n.setAttribute("aSize",new a.InstancedBufferAttribute(i,3)),n.setAttribute("aSeed",new a.InstancedBufferAttribute(s,1));let o=new a.BoxGeometry(1,1,1),l=new Float32Array(3*Math.max(1,t.length)),c=new Float32Array(Math.max(1,t.length));return t.forEach((e,t)=>{let r=.64*e.w,n=.64*e.d,i=e.h-e.bodyH;l[3*t]=r,l[3*t+1]=i,l[3*t+2]=n,c[t]=10*B(29.7*t)}),o.setAttribute("aSize",new a.InstancedBufferAttribute(l,3)),o.setAttribute("aSeed",new a.InstancedBufferAttribute(c,1)),{buildings:e,tierList:t,tallList:r,bodyGeom:n,tierGeom:o}},[v]),R=(0,r.useMemo)(()=>{let e=new a.MeshStandardMaterial({color:"#0c1226",emissive:"#000000",metalness:.35,roughness:.62});return e.onBeforeCompile=e=>{e.uniforms.uTime={value:0},b.current=e,e.vertexShader=e.vertexShader.replace("#include ",`#include +${k}`).replace("#include ",`#include +${G}`),e.fragmentShader=e.fragmentShader.replace("#include ",`#include +${C}`).replace("#include ",`#include +${I}`)},e},[]),F=(0,r.useMemo)(()=>{let e=[];for(let t=0;t<12;t++){let r=t/12*Math.PI*2,n=19*(.72+.26*B(4.4*t));e.push(+Math.cos(r),.04,+Math.sin(r)),e.push(Math.cos(r)*n,.04,Math.sin(r)*n)}for(let t of[3.5,7,11,15])for(let r=0;r<64;r++){let n=r/64*Math.PI*2,i=(r+1)/64*Math.PI*2;e.push(Math.cos(n)*t,.04,Math.sin(n)*t),e.push(Math.cos(i)*t,.04,Math.sin(i)*t)}let t=new a.BufferGeometry;return t.setAttribute("position",new a.Float32BufferAttribute(e,3)),t},[]);return(0,r.useLayoutEffect)(()=>{let{buildings:e,tierList:t,tallList:r}=z;o.current&&(e.forEach((e,t)=>{S.position.set(e.x,e.bodyH/2,e.z),S.rotation.set(0,e.rot,0),S.scale.set(e.w,e.bodyH,e.d),S.updateMatrix(),o.current.setMatrixAt(t,S.matrix)}),o.current.instanceMatrix.needsUpdate=!0),l.current&&(t.forEach((e,t)=>{let r=e.h-e.bodyH;S.position.set(e.x,e.bodyH+r/2,e.z),S.rotation.set(0,e.rot,0),S.scale.set(.64*e.w,r,.64*e.d),S.updateMatrix(),l.current.setMatrixAt(t,S.matrix)}),l.current.instanceMatrix.needsUpdate=!0),p.current&&(e.forEach((e,t)=>{let r=e.h,n=e.tier?.64*e.w:e.w,i=e.tier?.64*e.d:e.d;S.position.set(e.x,r+.03,e.z),S.rotation.set(0,e.rot,0),S.scale.set(1.02*n,.07,1.02*i),S.updateMatrix(),p.current.setMatrixAt(t,S.matrix),p.current.setColorAt(t,W.set(M[e.ci]))}),p.current.instanceMatrix.needsUpdate=!0,p.current.instanceColor&&(p.current.instanceColor.needsUpdate=!0)),m.current&&f.current&&(r.forEach((e,t)=>{S.position.set(e.x,e.h+.34,e.z),S.rotation.set(0,0,0),S.scale.set(.05,.68,.05),S.updateMatrix(),m.current.setMatrixAt(t,S.matrix),S.position.set(e.x,e.h+.7,e.z),S.scale.set(1,1,1),S.updateMatrix(),f.current.setMatrixAt(t,S.matrix)}),m.current.instanceMatrix.needsUpdate=!0,f.current.instanceMatrix.needsUpdate=!0)},[z]),(0,i.useFrame)((t,r)=>{let n=e.current??0;j.current=A(j.current,n,3,r);let i=j.current,o=t.clock.elapsedTime;b.current&&(b.current.uniforms.uTime.value=o);let a=w(.01,.15,i);s.current&&(s.current.scale.y=.001+.999*a),f.current&&(f.current.material.opacity=(.5+.3*Math.sin(2.2*o))*a),x.current&&(x.current.opacity=(0+.6*w(.02,.13,i))*(.78+.22*Math.sin(2.2*o)));let l=w(0,.13,i);if(g.current){let e=1+.35*o%1*6;g.current.scale.set(e,e,e),g.current.material.opacity=(1-.35*o%1)*.28*l}if(y.current){let e=1+(.35*o+.5)%1*6;y.current.scale.set(e,e,e),y.current.material.opacity=(1-(.35*o+.5)%1)*.28*l}}),(0,t.jsxs)("group",{children:[(0,t.jsx)("gridHelper",{args:[49.4,60,d,d],position:[0,0,0],children:(0,t.jsx)("lineBasicMaterial",{attach:"material",color:d,transparent:!0,opacity:.11,depthWrite:!1})}),(0,t.jsx)("lineSegments",{geometry:F,children:(0,t.jsx)("lineBasicMaterial",{ref:x,color:u,transparent:!0,opacity:0,blending:a.AdditiveBlending,depthWrite:!1})}),(0,t.jsxs)("mesh",{ref:g,rotation:[-Math.PI/2,0,0],position:[0,.03,0],children:[(0,t.jsx)("ringGeometry",{args:[1,1.12,48]}),(0,t.jsx)("meshBasicMaterial",{color:u,transparent:!0,opacity:0,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("mesh",{ref:y,rotation:[-Math.PI/2,0,0],position:[0,.03,0],children:[(0,t.jsx)("ringGeometry",{args:[1,1.12,48]}),(0,t.jsx)("meshBasicMaterial",{color:h,transparent:!0,opacity:0,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("group",{ref:s,children:[(0,t.jsx)("instancedMesh",{ref:o,args:[z.bodyGeom,R,z.buildings.length]}),z.tierList.length>0&&(0,t.jsx)("instancedMesh",{ref:l,args:[z.tierGeom,R,z.tierList.length]}),(0,t.jsxs)("instancedMesh",{ref:p,args:[void 0,void 0,z.buildings.length],children:[(0,t.jsx)("boxGeometry",{args:[1,1,1]}),(0,t.jsx)("meshBasicMaterial",{toneMapped:!1,transparent:!0,opacity:.9,blending:a.AdditiveBlending})]}),z.tallList.length>0&&(0,t.jsxs)("instancedMesh",{ref:m,args:[void 0,void 0,z.tallList.length],children:[(0,t.jsx)("boxGeometry",{args:[1,1,1]}),(0,t.jsx)("meshStandardMaterial",{color:"#11182c",metalness:.7,roughness:.4})]}),z.tallList.length>0&&(0,t.jsxs)("instancedMesh",{ref:f,args:[void 0,void 0,z.tallList.length],children:[(0,t.jsx)("sphereGeometry",{args:[.07,8,8]}),(0,t.jsx)("meshBasicMaterial",{color:c,toneMapped:!1,transparent:!0,opacity:.8,blending:a.AdditiveBlending,depthWrite:!1})]})]})]})});var P=e.i(60099);let V=[98,76,84,68,58,90],E={display:"flex",alignItems:"center",gap:"6px",padding:"4px 11px",borderRadius:"999px",background:"rgba(7,11,22,0.72)",border:"1px solid rgba(255,255,255,0.16)",color:"#eaf2ff",fontSize:"11px",fontWeight:600,letterSpacing:"0.04em",whiteSpace:"nowrap",backdropFilter:"blur(6px)",WebkitBackdropFilter:"blur(6px)",fontFamily:"var(--font-space-grotesk), system-ui, sans-serif",opacity:0,pointerEvents:"none",willChange:"opacity"},T=.36,U=new a.Color(g),L=new a.Color("#F59E0B"),H=new a.Color(c),D=new a.Color,$=r.default.memo(function({progress:e,isMobile:n=!1}){let s=(0,r.useRef)(0),o=(0,r.useRef)([]),l=(0,r.useRef)([]),d=(0,r.useRef)(null),h=(0,r.useRef)(null),m=(0,r.useRef)(null),f=(0,r.useRef)(null),x=(0,r.useRef)(null),j=(0,r.useRef)(null),z=(0,r.useMemo)(()=>M.map((e,t)=>{let r,n,i,s,o,l;return r=t/M.length*Math.PI*2+.4,n=9+4*B(6.1*t),i=new a.Vector3(Math.cos(r)*n,.16,Math.sin(r)*n),s=(B(3.7*t)-.5)*5,o=new a.Vector3(Math.cos(r)*n*.4+Math.cos(r+Math.PI/2)*s,.18,Math.sin(r)*n*.4+Math.sin(r+Math.PI/2)*s),l=new a.Vector3(0,.2,0),new a.CatmullRomCurve3([l,o,i])}),[]),R=(0,r.useMemo)(()=>z.map(e=>new a.TubeGeometry(e,60,.05,8,!1)),[z]),S=(0,r.useMemo)(()=>new a.CatmullRomCurve3([new a.Vector3(-11,.3,7),new a.Vector3(-4,.3,3),new a.Vector3(2.6,.3,-1.2),new a.Vector3(9.5,.3,-6.5)]),[]),W=(0,r.useMemo)(()=>new a.TubeGeometry(S,70,.07,8,!1),[S]),k=(0,r.useMemo)(()=>{let e=new a.CatmullRomCurve3([new a.Vector3(-11,.3,7),new a.Vector3(-3.5,.3,1.5),new a.Vector3(2.6,.6,-1.2),new a.Vector3(6.5,.3,-3),new a.Vector3(9.5,.3,-6.5)]);return new a.TubeGeometry(e,80,.08,8,!1)},[]),G=(0,r.useMemo)(()=>new a.Vector3(2.6,0,-1.2),[]),C=(0,r.useMemo)(()=>new a.Vector3,[]),I=(0,r.useMemo)(()=>M.map(e=>new a.Color(e)),[]),F=(0,r.useMemo)(()=>new a.Color(c),[]),$=(0,r.useRef)([]),N=(0,r.useRef)([]),O=(0,r.useRef)(null),_=(0,r.useMemo)(()=>z.map(e=>{let t=e.getPointAt(.82).clone();return t.y+=1,t}),[z]);return(0,i.useFrame)((t,r)=>{let n=e.current??0;s.current=A(s.current,n,3.2,r);let i=s.current,a=t.clock.elapsedTime,c=w(.1,.18,i),u=w(.13,.18,i),p=w(.28,.33,i),g=w(.6,.74,i),y=w(.74,.8,i),M=v((i-.74)/.26),b=w(.97,1,i);for(let e=0;e.02;if(r.visible=n,!n)continue;let i=((.14*a+.34*t)%1+1)%1;e.getPointAt(i,C),r.position.set(C.x,.3,C.z),e.getPointAt(Math.min(.999,i+.02),C),r.lookAt(C.x,.3,C.z),r.scale.setScalar(1e-4+w(0,.12,M)*(1-b))}}let R=w(.26,.28+.03,i),W=1-w(.46,.54,i),G=w(T-.015,T+.03,i),P=R*W,V=v((i-.28)/.15999999999999998);if(d.current){let e=G>.5?k.parameters.path:S;e.getPointAt(v(V),C),d.current.position.set(C.x,.32,C.z),e.getPointAt(v(V+.01),C),d.current.lookAt(C.x,.32,C.z),d.current.visible=P>.02,d.current.scale.setScalar(1e-4+P)}let E=v((i-.28)/(T-.28)),_=G>0?.14+.86*G:v(1-.92*E);if(h.current&&(h.current.scale.x=.02+.98*_,h.current.position.x=-.18*(1-_)),m.current&&(_>.5?D.copy(L).lerp(U,(_-.5)*2):D.copy(H).lerp(L,2*_),m.current.color.copy(D)),x.current){let e=w(T-.06,T,i);x.current.opacity=.55*Math.max(.4*R,e)*P*(1-G)*(.7+.3*Math.sin(5*a))}if(j.current&&(j.current.opacity=P*G*(.65+.25*Math.sin(3*a))),f.current&&(f.current.scale.y=1e-4+G,f.current.visible=G>.01&&W>.02),O.current){let e=G*W;O.current.style.opacity=e.toFixed(3),O.current.style.display=e<.02?"none":"flex"}}),(0,t.jsxs)("group",{children:[R.map((e,r)=>(0,t.jsxs)("group",{children:[(0,t.jsx)("mesh",{geometry:e,children:(0,t.jsx)("meshBasicMaterial",{ref:e=>{o.current[r]=e},color:M[r],toneMapped:!1,transparent:!0,opacity:0,blending:a.AdditiveBlending,depthWrite:!1})}),(0,t.jsxs)("mesh",{ref:e=>{l.current[r]=e},children:[(0,t.jsx)("sphereGeometry",{args:[1,12,12]}),(0,t.jsx)("meshBasicMaterial",{color:y,toneMapped:!1,transparent:!0,opacity:.95,blending:a.AdditiveBlending,depthWrite:!1})]})]},r)),_.map((e,r)=>{let i=0===r,s=4===r;if(n)return null;let o=i||s?c:M[r];return(0,t.jsx)(P.Html,{position:[e.x,e.y,e.z],center:!0,zIndexRange:[30,0],style:{pointerEvents:"none"},children:(0,t.jsxs)("div",{ref:e=>{N.current[r]=e},style:{...E,border:i?"1px solid rgba(226,53,66,0.85)":s?"1px solid rgba(239,68,68,0.7)":E.border,background:i?"rgba(28,8,11,0.85)":E.background,boxShadow:i?"0 0 22px rgba(192,18,39,0.6)":"none"},children:[(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:o,boxShadow:`0 0 8px ${o}`}}),b[r],(0,t.jsx)("span",{style:{fontWeight:800,color:s?"#fca5a5":"#fff",marginLeft:2},children:V[r]}),i?(0,t.jsx)("span",{style:{color:"#4ade80",fontWeight:700},children:" ✓ Best"}):null,s?(0,t.jsx)("span",{style:{color:"#fca5a5",fontWeight:700},children:" ✕ Over range"}):null]})},`lbl${r}`)}),(0,t.jsx)("mesh",{geometry:W,children:(0,t.jsx)("meshBasicMaterial",{ref:x,color:c,toneMapped:!1,transparent:!0,opacity:0,blending:a.AdditiveBlending,depthWrite:!1})}),(0,t.jsx)("mesh",{geometry:k,children:(0,t.jsx)("meshBasicMaterial",{ref:j,color:g,toneMapped:!1,transparent:!0,opacity:0,blending:a.AdditiveBlending,depthWrite:!1})}),(0,t.jsxs)("group",{ref:f,position:G,visible:!1,children:[(0,t.jsxs)("mesh",{position:[0,.55,0],children:[(0,t.jsx)("boxGeometry",{args:[.32,1.1,.32]}),(0,t.jsx)("meshStandardMaterial",{color:"#0e1b14",emissive:g,emissiveIntensity:.6,metalness:.4,roughness:.5})]}),(0,t.jsxs)("mesh",{position:[0,1.18,0],children:[(0,t.jsx)("boxGeometry",{args:[.5,.18,.42]}),(0,t.jsx)("meshBasicMaterial",{color:g,toneMapped:!1,transparent:!0,opacity:.9,blending:a.AdditiveBlending})]}),(0,t.jsxs)("mesh",{rotation:[-Math.PI/2,0,0],position:[0,.03,0],children:[(0,t.jsx)("ringGeometry",{args:[.5,.62,40]}),(0,t.jsx)("meshBasicMaterial",{color:g,toneMapped:!1,transparent:!0,opacity:.7,side:a.DoubleSide,blending:a.AdditiveBlending,depthWrite:!1})]})]}),!n&&(0,t.jsx)(P.Html,{position:[G.x,1.7,G.z],center:!0,zIndexRange:[30,0],style:{pointerEvents:"none"},children:(0,t.jsxs)("div",{ref:O,style:{...E,border:"1px solid rgba(34,197,94,0.65)",boxShadow:"0 0 18px rgba(34,197,94,0.45)"},children:[(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:g,boxShadow:`0 0 8px ${g}`}}),"Recharge Hub"]})}),(0,t.jsxs)("group",{ref:d,visible:!1,children:[(0,t.jsxs)("mesh",{position:[0,.12,0],children:[(0,t.jsx)("boxGeometry",{args:[.5,.16,.22]}),(0,t.jsx)("meshStandardMaterial",{color:"#11203a",emissive:u,emissiveIntensity:.5,metalness:.5,roughness:.4})]}),(0,t.jsxs)("mesh",{position:[.18,.26,0],children:[(0,t.jsx)("boxGeometry",{args:[.06,.28,.12]}),(0,t.jsx)("meshStandardMaterial",{color:"#0d1830",emissive:u,emissiveIntensity:.4,metalness:.5,roughness:.4})]}),(0,t.jsxs)("mesh",{position:[.3,.14,0],children:[(0,t.jsx)("sphereGeometry",{args:[.06,10,10]}),(0,t.jsx)("meshBasicMaterial",{color:y,toneMapped:!1})]}),[-.16,.16].map((e,r)=>(0,t.jsxs)("mesh",{position:[e,.05,0],rotation:[Math.PI/2,0,0],children:[(0,t.jsx)("cylinderGeometry",{args:[.09,.09,.05,14]}),(0,t.jsx)("meshStandardMaterial",{color:"#05070d",metalness:.6,roughness:.5})]},r)),(0,t.jsxs)("group",{position:[0,.62,0],children:[(0,t.jsxs)("mesh",{children:[(0,t.jsx)("boxGeometry",{args:[.42,.12,.02]}),(0,t.jsx)("meshBasicMaterial",{color:"#0a0f1c",toneMapped:!1,transparent:!0,opacity:.85})]}),(0,t.jsxs)("mesh",{ref:h,position:[0,0,.012],children:[(0,t.jsx)("boxGeometry",{args:[.38,.08,.02]}),(0,t.jsx)("meshBasicMaterial",{ref:m,color:g,toneMapped:!1,blending:a.AdditiveBlending})]})]})]}),[{w:.34,h:.16,d:.2,col:p},{w:.46,h:.22,d:.26,col:y},{w:.6,h:.3,d:.32,col:c}].map((e,r)=>(0,t.jsxs)("mesh",{ref:e=>{$.current[r]=e},visible:!1,children:[(0,t.jsx)("boxGeometry",{args:[e.w,e.h,e.d]}),(0,t.jsx)("meshStandardMaterial",{color:"#12060a",emissive:e.col,emissiveIntensity:.7,metalness:.5,roughness:.4})]},`disp${r}`))]})}),N=new a.Object3D,O=new a.Color(d),_=new a.Color(g),q=new a.Color,K=new a.Vector3,X=r.default.memo(function({progress:e,isMobile:n=!1}){let s=(0,r.useRef)(0),o=(0,r.useRef)(null),l=(0,r.useRef)([]),c=(0,r.useRef)(null),m=(0,r.useRef)(null),f=(0,r.useRef)(null),x=(0,r.useRef)(null),g=n?40:70,y=n?70:150,M=n?12:24,b=(0,r.useMemo)(()=>Array.from({length:5},(e,t)=>{let r=t/5*Math.PI*2+.6;return new a.Vector3(6.5*Math.cos(r),0,6.5*Math.sin(r))}),[]),j=(0,r.useMemo)(()=>Array.from({length:g},(e,t)=>{let r=B(3.3*t+1)*Math.PI*2,n=3+17*B(1.9*t+5);return new a.Vector3(Math.cos(r)*n,.12,Math.sin(r)*n)}),[g]),z=(0,r.useMemo)(()=>j.map(e=>{let t=b[0],r=1/0;for(let n of b){let i=e.distanceToSquared(n);i{let e=[];for(let t of z)e.push(t.a.x,t.a.y,t.a.z,t.b.x,t.b.y,t.b.z);let t=new a.BufferGeometry;return t.setAttribute("position",new a.Float32BufferAttribute(e,3)),t},[z]),S=(0,r.useMemo)(()=>{let e=new Float32Array(3*j.length);j.forEach((t,r)=>{e[3*r]=t.x,e[3*r+1]=t.y,e[3*r+2]=t.z});let t=new a.BufferGeometry;return t.setAttribute("position",new a.BufferAttribute(e,3)),t},[j]),W=(0,r.useMemo)(()=>Array.from({length:y},(e,t)=>({seg:Math.floor(B(4.7*t)*z.length),speed:.12+.25*B(2.1*t),phase:B(8.3*t)})),[y,z.length]),k=(0,r.useMemo)(()=>{let e=new a.BufferGeometry;return e.setAttribute("position",new a.BufferAttribute(new Float32Array(3*y),3)),e},[y]),G=(0,r.useMemo)(()=>Array.from({length:M},(e,t)=>({seg:Math.floor(B(5.9*t+3)*z.length),speed:.06+.08*B(3.7*t),phase:B(6.6*t),kind:Math.floor(3*B(9.2*t))})),[M,z.length]);return(0,r.useLayoutEffect)(()=>{x.current&&(j.forEach((e,t)=>{N.position.set(e.x,.18,e.z),N.scale.set(.06,.36,.06),N.rotation.set(0,0,0),N.updateMatrix(),x.current.setMatrixAt(t,N.matrix),x.current.setColorAt(t,O)}),x.current.instanceMatrix.needsUpdate=!0,x.current.instanceColor&&(x.current.instanceColor.needsUpdate=!0)),f.current&&(G.forEach((e,t)=>{N.position.set(0,-50,0),N.updateMatrix(),f.current.setMatrixAt(t,N.matrix);let r=0===e.kind?u:1===e.kind?h:p;f.current.setColorAt(t,q.set(r))}),f.current.instanceMatrix.needsUpdate=!0,f.current.instanceColor&&(f.current.instanceColor.needsUpdate=!0))},[j,G]),(0,i.useFrame)((t,r)=>{let n=e.current??0;s.current=A(s.current,n,3,r);let i=s.current,a=t.clock.elapsedTime,u=w(.11,.19,i),d=w(.71,.8,i),p=w(.88,1,i);if(l.current.forEach((e,t)=>{e&&(e.emissiveIntensity=(.3+1.5*d)*(.85+.15*Math.sin(2*a+t)))}),o.current&&(o.current.visible=u>.02),c.current&&(c.current.opacity=(.05+.16*u+.1*p)*(.8+.2*Math.sin(1.5*a))),m.current){let e=m.current.geometry.getAttribute("position");for(let t=0;t.02}if(x.current){for(let e=0;e(0,t.jsxs)("group",{position:[e.x,0,e.z],children:[(0,t.jsxs)("mesh",{position:[0,.5,0],children:[(0,t.jsx)("boxGeometry",{args:[1.6,1,1.3]}),(0,t.jsx)("meshStandardMaterial",{ref:e=>{l.current[r]=e},color:"#0b1426",emissive:d,emissiveIntensity:.3,metalness:.4,roughness:.5})]}),(0,t.jsxs)("mesh",{rotation:[-Math.PI/2,0,0],position:[0,.03,0],children:[(0,t.jsx)("ringGeometry",{args:[1.2,1.4,36]}),(0,t.jsx)("meshBasicMaterial",{color:u,toneMapped:!1,transparent:!0,opacity:.4,side:a.DoubleSide,blending:a.AdditiveBlending,depthWrite:!1})]})]},r))})]})}),Y=r.default.memo(function({progress:e,isMobile:n=!1}){let s=(0,r.useRef)(0),o=(0,r.useRef)(null),l=(0,r.useRef)(null),p=(0,r.useRef)(null),h=(0,r.useRef)([]),m=(0,r.useRef)(null),f=(0,r.useRef)(null),x=n?90:180,M=(0,r.useMemo)(()=>{let e=[];for(let t=0;t{let e=new a.BufferGeometry;return e.setAttribute("position",new a.BufferAttribute(new Float32Array(3*x),3)),e},[x]),j=(0,r.useMemo)(()=>{let e=new a.CatmullRomCurve3([new a.Vector3(-6,.3,5),new a.Vector3(-2,1.6,1),new a.Vector3(3,.3,-4)]);return new a.TubeGeometry(e,50,.07,8,!1)},[]),z=(0,r.useMemo)(()=>new a.Vector3(-2,.6,1),[]);return(0,i.useFrame)((t,r)=>{let n=e.current??0;s.current=A(s.current,n,3,r);let i=s.current,a=t.clock.elapsedTime,c=w(.57,.65,i),u=c*(1-w(.74,.82,i));o.current&&(o.current.visible=u>.02,o.current.position.y=2.6+1.9999999999999996*c,o.current.scale.setScalar(1e-4+1.5*u),o.current.rotation.z=.02*Math.sin(.3*a)),l.current&&(l.current.rotation.z=-(1.4*a)),p.current&&(p.current.opacity=u*(.6+.2*Math.sin(4*a))),h.current.forEach(e=>{e&&(e.opacity=.8*u)});let d=w(.62,.6+.08,i),x=.45*a%1;if(f.current&&(f.current.opacity=u*d*(1-x)*(.6+.4*Math.sin(6*a))),m.current){let e=m.current.geometry.getAttribute("position"),t=3.4*x;for(let r=0;r{let n=r/12*Math.PI*2;return(0,t.jsxs)("mesh",{position:[.88*Math.cos(n),.88*Math.sin(n),0],rotation:[0,0,n],children:[(0,t.jsx)("boxGeometry",{args:[.1,.02,.02]}),(0,t.jsx)("meshBasicMaterial",{ref:e=>{e&&(h.current[r]=e)},color:r%3==0?y:u,toneMapped:!1,transparent:!0,opacity:.8,blending:a.AdditiveBlending,depthWrite:!1})]},r)}),(0,t.jsxs)("mesh",{ref:l,position:[0,0,.02],children:[(0,t.jsx)("boxGeometry",{args:[.04,1.5,.02]}),(0,t.jsx)("meshBasicMaterial",{ref:p,color:g,toneMapped:!1,transparent:!0,opacity:.7,blending:a.AdditiveBlending,depthWrite:!1})]}),(0,t.jsxs)("mesh",{children:[(0,t.jsx)("sphereGeometry",{args:[.07,16,16]}),(0,t.jsx)("meshBasicMaterial",{color:y,toneMapped:!1})]})]}),(0,t.jsx)("mesh",{geometry:j,children:(0,t.jsx)("meshBasicMaterial",{ref:f,color:c,toneMapped:!1,transparent:!0,opacity:0,blending:a.AdditiveBlending,depthWrite:!1})}),(0,t.jsx)("points",{ref:m,geometry:b,children:(0,t.jsx)("pointsMaterial",{size:n?.12:.1,color:c,transparent:!0,opacity:0,sizeAttenuation:!0,blending:a.AdditiveBlending,depthWrite:!1})})]})}),Z=new a.Vector3,J=new a.Vector3;function Q({progress:e}){let t=(0,r.useRef)(new a.Vector3(0,6,0)),n=(0,r.useRef)(!1);return(0,i.useFrame)((r,i)=>{var s,o,a,l,c,u;let d=v(e.current??0),p=0;for(let e=0;e=j[e].at&&d<=j[e+1].at){p=e;break}d>j[j.length-1].at&&(p=j.length-2)}let h=j[p],m=j[p+1],f=m.at-h.at||1,x=w(0,1,v((d-h.at)/f));Z.set((s=h.pos[0],s+(m.pos[0]-s)*x),(o=h.pos[1],o+(m.pos[1]-o)*x),(a=h.pos[2],a+(m.pos[2]-a)*x)),J.set((l=h.look[0],l+(m.look[0]-l)*x),(c=h.look[1],c+(m.look[1]-c)*x),(u=h.look[2],u+(m.look[2]-u)*x));let g=r.clock.elapsedTime;Z.x+=.14*Math.sin(.16*g),Z.y+=.07*Math.sin(.21*g);let y=r.camera;n.current?(y.position.x=A(y.position.x,Z.x,2.6,i),y.position.y=A(y.position.y,Z.y,2.6,i),y.position.z=A(y.position.z,Z.z,2.6,i),t.current.x=A(t.current.x,J.x,3,i),t.current.y=A(t.current.y,J.y,3,i),t.current.z=A(t.current.z,J.z,3,i)):(y.position.copy(Z),t.current.copy(J),n.current=!0),y.lookAt(t.current)}),null}let ee=r.default.memo(function({progress:e,reduced:r=!1,isMobile:i=!1,active:a=!0}){return(0,t.jsxs)(n.Canvas,{flat:!0,dpr:[1,i||r?1.25:1.5],camera:{position:j[0].pos,fov:52,near:.1,far:200},gl:{antialias:!i,powerPreference:"high-performance",alpha:!1},frameloop:a?"always":"never",children:[(0,t.jsx)("color",{attach:"background",args:[l]}),(0,t.jsx)("fog",{attach:"fog",args:[l,40,100]}),(0,t.jsx)("ambientLight",{intensity:.55}),(0,t.jsx)("directionalLight",{position:[8,18,10],intensity:.7,color:p}),(0,t.jsx)("pointLight",{position:[-10,8,-8],intensity:40,distance:60,color:m}),(0,t.jsx)("pointLight",{position:[0,9,0],intensity:30,distance:40,color:u}),(0,t.jsx)(Q,{progress:e}),(0,t.jsx)(F,{progress:e,reduced:r,isMobile:i}),(0,t.jsx)($,{progress:e,reduced:r,isMobile:i}),(0,t.jsx)(X,{progress:e,reduced:r,isMobile:i}),(0,t.jsx)(Y,{progress:e,reduced:r,isMobile:i}),(0,t.jsx)(R,{progress:e,reduced:r,isMobile:i}),!r&&(0,t.jsx)(s.EffectComposer,{multisampling:2*!i,children:(0,t.jsx)(s.Bloom,{mipmapBlur:!0,intensity:i?.9:1.25,luminanceThreshold:.12,luminanceSmoothing:.045,radius:i?.65:.82,kernelSize:o.KernelSize.MEDIUM})})]})});e.s(["default",0,ee],69986)},39184,e=>{e.n(e.i(69986))}]); \ No newline at end of file diff --git a/build/.next/static/chunks/00fiud~fayo7s.css b/build/.next/static/chunks/00fiud~fayo7s.css new file mode 100644 index 0000000..f80e93b --- /dev/null +++ b/build/.next/static/chunks/00fiud~fayo7s.css @@ -0,0 +1 @@ +.OfficeMap-module__ToIo3G__root{border-radius:inherit;isolation:isolate;background:#0b0b0b;width:100%;height:100%;position:relative;overflow:hidden}.OfficeMap-module__ToIo3G__map{width:100%;height:100%;font-family:var(--font-manrope), system-ui, -apple-system, sans-serif;background:#0b0b0b}.OfficeMap-module__ToIo3G__map:focus-visible{outline-offset:-2px;outline:2px solid #c01227}.OfficeMap-module__ToIo3G__controls{z-index:600;pointer-events:none;flex-wrap:wrap;justify-content:center;gap:8px;display:flex;position:absolute;top:14px;left:12px;right:12px}.OfficeMap-module__ToIo3G__controlBtn{pointer-events:auto;appearance:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#f5f5f5;font-family:var(--font-manrope), system-ui, -apple-system, sans-serif;letter-spacing:.01em;cursor:pointer;white-space:nowrap;background:#0f0f11d1;border:1px solid #ffffff2e;border-radius:999px;margin:0;padding:9px 16px;font-size:13px;font-weight:700;line-height:1;transition:background-color .2s,border-color .2s,color .2s,transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s}.OfficeMap-module__ToIo3G__controlBtn:hover{background:#c01227e6;border-color:#c01227;transform:translateY(-1px)}.OfficeMap-module__ToIo3G__controlBtn:focus-visible{outline-offset:2px;outline:2px solid #fff}.OfficeMap-module__ToIo3G__controlBtnActive,.OfficeMap-module__ToIo3G__controlBtnActive:hover{color:#fff;background:#c01227;border-color:#c01227;box-shadow:0 6px 18px #c0122773}.OfficeMap-module__ToIo3G__controlBtnHq{border-color:#c012278c;box-shadow:0 0 0 1px #c0122740,0 4px 14px #c0122733}.OfficeMap-module__ToIo3G__controlBtnHq.OfficeMap-module__ToIo3G__controlBtnActive{box-shadow:0 6px 20px #c012278c}@media (max-width:480px){.OfficeMap-module__ToIo3G__controls{flex-wrap:nowrap;gap:5px;top:12px}.OfficeMap-module__ToIo3G__controlBtn{padding:7px 9px;font-size:11px}}.OfficeMap-module__ToIo3G__markerIcon{filter:drop-shadow(0 4px 6px #0000008c);background:0 0;border:0;transition:transform .18s cubic-bezier(.16,1,.3,1)}.OfficeMap-module__ToIo3G__markerIcon:hover,.OfficeMap-module__ToIo3G__markerIcon:focus-visible{transform:translateY(-3px)scale(1.06)}.OfficeMap-module__ToIo3G__markerIconHq{filter:drop-shadow(0 0 9px #c01227d9)drop-shadow(0 5px 7px #0000008c);background:0 0;border:0;transition:transform .18s cubic-bezier(.16,1,.3,1)}.OfficeMap-module__ToIo3G__markerIconHq svg{z-index:2;position:relative}.OfficeMap-module__ToIo3G__markerIconHq:hover,.OfficeMap-module__ToIo3G__markerIconHq:focus-visible{transform:translateY(-3px)scale(1.05)}.OfficeMap-module__ToIo3G__pinPulse{z-index:1;pointer-events:none;background:#c0122780;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;animation:2.2s ease-out infinite OfficeMap-module__ToIo3G__hqPulse;position:absolute;top:19px;left:20px}@keyframes OfficeMap-module__ToIo3G__hqPulse{0%{opacity:.75;transform:scale(.6)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(3)}}.OfficeMap-module__ToIo3G__root .leaflet-container{background:#0b0b0b}.OfficeMap-module__ToIo3G__root .leaflet-bar{border:1px solid #ffffff1f;box-shadow:0 6px 18px #0006}.OfficeMap-module__ToIo3G__root .leaflet-bar a{color:#f5f5f5;background:#0f0f11eb;border-bottom-color:#ffffff1f;transition:background-color .2s,color .2s}.OfficeMap-module__ToIo3G__root .leaflet-bar a:hover{color:#fff;background:#c01227}.OfficeMap-module__ToIo3G__root .leaflet-bar a:focus-visible{outline-offset:2px;outline:2px solid #c01227}.OfficeMap-module__ToIo3G__root .leaflet-control-attribution{color:#ffffffa6;-webkit-backdrop-filter:blur(6px);background:#0a0a0ab8;border-radius:6px 0 0;padding:2px 8px;font-size:11px}.OfficeMap-module__ToIo3G__root .leaflet-control-attribution a{color:#ffffffd9}.OfficeMap-module__ToIo3G__root .leaflet-popup{animation:.2s ease-out forwards OfficeMap-module__ToIo3G__popupFade}.OfficeMap-module__ToIo3G__root .leaflet-popup-content-wrapper{color:#fff;transform-origin:bottom;background:#0f0f11;border:1px solid #ffffff14;border-radius:8px;padding:0;animation:.2s cubic-bezier(.16,1,.3,1) forwards OfficeMap-module__ToIo3G__popupScale;overflow:hidden;box-shadow:0 12px 32px #0009}.OfficeMap-module__ToIo3G__root .leaflet-popup-content{width:auto!important;height:auto!important;margin:0!important}.OfficeMap-module__ToIo3G__root .leaflet-popup-tip{background:#0f0f11;border:1px solid #ffffff14}@keyframes OfficeMap-module__ToIo3G__popupFade{0%{opacity:0}to{opacity:1}}@keyframes OfficeMap-module__ToIo3G__popupScale{0%{transform:scale(.92)}to{transform:scale(1)}}.OfficeMap-module__ToIo3G__card{box-sizing:border-box;min-width:230px;max-width:280px;font-family:var(--font-manrope), system-ui, -apple-system, sans-serif;background:#0f0f11;border-top:2px solid #c01227;flex-direction:column;height:auto;padding:12px 16px;display:flex}.OfficeMap-module__ToIo3G__cardHeader{border-bottom:1px solid #ffffff14;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:6px;display:flex}.OfficeMap-module__ToIo3G__cardIcon{align-items:center;font-size:15px;display:inline-flex}.OfficeMap-module__ToIo3G__cardTitle{color:#fff!important;letter-spacing:-.01em!important;margin:0!important;font-size:17px!important;font-weight:800!important}.OfficeMap-module__ToIo3G__cardBody{flex-direction:column;gap:4px;display:flex}.OfficeMap-module__ToIo3G__addressLine{color:#ffffffbf!important;margin:0 0 6px!important;padding:0!important;font-size:14px!important;font-weight:500!important;line-height:1.5!important}.OfficeMap-module__ToIo3G__addressLine:last-child{margin-bottom:0!important}@media (max-width:480px){.OfficeMap-module__ToIo3G__card{min-width:200px;max-width:230px;padding:9px 12px}.OfficeMap-module__ToIo3G__cardTitle{font-size:14px!important}.OfficeMap-module__ToIo3G__addressLine{margin-bottom:3px!important;font-size:12px!important;line-height:1.4!important}}.OfficeMap-module__ToIo3G__mapMountReserve{border-radius:inherit;width:100%;height:100%}@media (prefers-reduced-motion:reduce){.OfficeMap-module__ToIo3G__markerIcon,.OfficeMap-module__ToIo3G__markerIconHq{transition:none}.OfficeMap-module__ToIo3G__pinPulse{opacity:.45;animation:none}}.OfficeMap-module__ToIo3G__errorOverlay{z-index:500;text-align:center;color:#ffffffd1;font-family:var(--font-manrope), system-ui, sans-serif;background:#101012;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:absolute;inset:0}.OfficeMap-module__ToIo3G__errorTitle{color:#fff;margin:0;font-size:clamp(15px,2.4vw,18px);font-weight:800}.OfficeMap-module__ToIo3G__errorText{color:#fff9;max-width:38ch;margin:0;font-size:13px;line-height:1.55}.OfficeMap-module__ToIo3G__errorList{flex-wrap:wrap;justify-content:center;gap:8px 12px;margin:4px 0 0;padding:0;list-style:none;display:flex}.OfficeMap-module__ToIo3G__errorList li{color:#f1f1f1;align-items:center;gap:7px;font-size:13px;font-weight:700;display:inline-flex}.OfficeMap-module__ToIo3G__errorList li:before{content:"";background:#c01227;border-radius:50%;width:7px;height:7px}.OfficeMap-module__ToIo3G__srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden} diff --git a/build/.next/static/chunks/01xlw8hd842-c.js b/build/.next/static/chunks/01xlw8hd842-c.js new file mode 100644 index 0000000..fd61718 --- /dev/null +++ b/build/.next/static/chunks/01xlw8hd842-c.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},18967,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={DecodeError:function(){return P},MiddlewareNotFoundError:function(){return O},MissingStaticPage:function(){return h},NormalizeError:function(){return E},PageNotFoundError:function(){return b},SP:function(){return m},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return u},getDisplayName:function(){return l},getLocationOrigin:function(){return c},getURL:function(){return f},isAbsoluteUrl:function(){return a},isResSent:function(){return d},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return N}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function u(e){let r,t=!1;return(...n)=>(t||(t=!0,r=e(...n)),r)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>s.test(e);function c(){let{protocol:e,hostname:r,port:t}=window.location;return`${e}//${r}${t?":"+t:""}`}function f(){let{href:e}=window.location,r=c();return e.substring(r.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let r=e.split("?");return r[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(r[1]?`?${r.slice(1).join("?")}`:"")}async function g(e,r){let t=r.res||r.ctx&&r.ctx.res;if(!e.getInitialProps)return r.ctx&&r.Component?{pageProps:await g(r.Component,r.ctx)}:{};let n=await e.getInitialProps(r);if(t&&d(t))return n;if(!n)throw Object.defineProperty(Error(`"${l(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,y=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class P extends Error{}class E extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class h extends Error{constructor(e,r){super(),this.message=`Failed to load static file for page: ${e} ${r}`}}class O extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function N(e){return JSON.stringify({message:e.message,stack:e.stack})}},98183,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={assign:function(){return a},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});function i(e){let r={};for(let[t,n]of e.entries()){let e=r[t];void 0===e?r[t]=n:Array.isArray(e)?e.push(n):r[t]=[e,n]}return r}function u(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let r=new URLSearchParams;for(let[t,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)r.append(t,u(e));else r.set(t,u(n));return r}function a(e,...r){for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}}]); \ No newline at end of file diff --git a/build/.next/static/chunks/03~yq9q893hmn.js b/build/.next/static/chunks/03~yq9q893hmn.js new file mode 100644 index 0000000..ab422b9 --- /dev/null +++ b/build/.next/static/chunks/03~yq9q893hmn.js @@ -0,0 +1 @@ +!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r,n,o=function(t){return t&&t.Math===Math&&t},i=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof t&&t)||o("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a=function(t){try{return!!t()}catch(t){return!0}},u=!a(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}),s=!a(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}),c=Function.prototype.call,f=s?c.bind(c):function(){return c.apply(c,arguments)},l={}.propertyIsEnumerable,h=Object.getOwnPropertyDescriptor,p=h&&!l.call({1:2},1)?function(t){var e=h(this,t);return!!e&&e.enumerable}:l,v={f:p},d=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},g=Function.prototype,y=g.call,m=s&&g.bind.bind(y,y),b=s?m:function(t){return function(){return y.apply(t,arguments)}},w=b({}.toString),S=b("".slice),E=function(t){return S(w(t),8,-1)},O=Object,x=b("".split),R=a(function(){return!O("z").propertyIsEnumerable(0)})?function(t){return"String"===E(t)?x(t,""):O(t)}:O,P=function(t){return null==t},A=TypeError,j=function(t){if(P(t))throw new A("Can't call method on "+t);return t},k=function(t){return R(j(t))},I="object"==typeof document&&document.all,T=void 0===I&&void 0!==I?function(t){return"function"==typeof t||t===I}:function(t){return"function"==typeof t},M=function(t){return"object"==typeof t?null!==t:T(t)},L=function(t,e){return arguments.length<2?T(r=i[t])?r:void 0:i[t]&&i[t][e];var r},U=b({}.isPrototypeOf),N=i.navigator,C=N&&N.userAgent,_=C?String(C):"",F=i.process,B=i.Deno,D=F&&F.versions||B&&B.version,z=D&&D.v8;z&&(n=(r=z.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&_&&(!(r=_.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=_.match(/Chrome\/(\d+)/))&&(n=+r[1]);var W=n,q=i.String,H=!!Object.getOwnPropertySymbols&&!a(function(){var t=Symbol("symbol detection");return!q(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&W&&W<41}),$=H&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,K=Object,G=$?function(t){return"symbol"==typeof t}:function(t){var e=L("Symbol");return T(e)&&U(e.prototype,K(t))},V=String,Y=function(t){try{return V(t)}catch(t){return"Object"}},X=TypeError,J=function(t){if(T(t))return t;throw new X(Y(t)+" is not a function")},Q=function(t,e){var r=t[e];return P(r)?void 0:J(r)},Z=TypeError,tt=Object.defineProperty,et=function(t,e){try{tt(i,t,{value:e,configurable:!0,writable:!0})}catch(r){i[t]=e}return e},rt=e(function(t){var e="__core-js_shared__",r=t.exports=i[e]||et(e,{});(r.versions||(r.versions=[])).push({version:"3.38.1",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})}),nt=function(t,e){return rt[t]||(rt[t]=e||{})},ot=Object,it=function(t){return ot(j(t))},at=b({}.hasOwnProperty),ut=Object.hasOwn||function(t,e){return at(it(t),e)},st=0,ct=Math.random(),ft=b(1..toString),lt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ft(++st+ct,36)},ht=i.Symbol,pt=nt("wks"),vt=$?ht.for||ht:ht&&ht.withoutSetter||lt,dt=function(t){return ut(pt,t)||(pt[t]=H&&ut(ht,t)?ht[t]:vt("Symbol."+t)),pt[t]},gt=TypeError,yt=dt("toPrimitive"),mt=function(t,e){if(!M(t)||G(t))return t;var r,n=Q(t,yt);if(n){if(void 0===e&&(e="default"),r=f(n,t,e),!M(r)||G(r))return r;throw new gt("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var r,n;if("string"===e&&T(r=t.toString)&&!M(n=f(r,t)))return n;if(T(r=t.valueOf)&&!M(n=f(r,t)))return n;if("string"!==e&&T(r=t.toString)&&!M(n=f(r,t)))return n;throw new Z("Can't convert object to primitive value")}(t,e)},bt=function(t){var e=mt(t,"string");return G(e)?e:e+""},wt=i.document,St=M(wt)&&M(wt.createElement),Et=function(t){return St?wt.createElement(t):{}},Ot=!u&&!a(function(){return 7!==Object.defineProperty(Et("div"),"a",{get:function(){return 7}}).a}),xt=Object.getOwnPropertyDescriptor,Rt={f:u?xt:function(t,e){if(t=k(t),e=bt(e),Ot)try{return xt(t,e)}catch(t){}if(ut(t,e))return d(!f(v.f,t,e),t[e])}},Pt=u&&a(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype}),At=String,jt=TypeError,kt=function(t){if(M(t))return t;throw new jt(At(t)+" is not an object")},It=TypeError,Tt=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Lt="enumerable",Ut="configurable",Nt="writable",Ct={f:u?Pt?function(t,e,r){if(kt(t),e=bt(e),kt(r),"function"==typeof t&&"prototype"===e&&"value"in r&&Nt in r&&!r[Nt]){var n=Mt(t,e);n&&n[Nt]&&(t[e]=r.value,r={configurable:Ut in r?r[Ut]:n[Ut],enumerable:Lt in r?r[Lt]:n[Lt],writable:!1})}return Tt(t,e,r)}:Tt:function(t,e,r){if(kt(t),e=bt(e),kt(r),Ot)try{return Tt(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new It("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},_t=u?function(t,e,r){return Ct.f(t,e,d(1,r))}:function(t,e,r){return t[e]=r,t},Ft=Function.prototype,Bt=u&&Object.getOwnPropertyDescriptor,Dt=ut(Ft,"name"),zt={EXISTS:Dt,PROPER:Dt&&"something"===function(){}.name,CONFIGURABLE:Dt&&(!u||u&&Bt(Ft,"name").configurable)},Wt=b(Function.toString);T(rt.inspectSource)||(rt.inspectSource=function(t){return Wt(t)});var qt,Ht,$t,Kt=rt.inspectSource,Gt=i.WeakMap,Vt=T(Gt)&&/native code/.test(String(Gt)),Yt=nt("keys"),Xt=function(t){return Yt[t]||(Yt[t]=lt(t))},Jt={},Qt="Object already initialized",Zt=i.TypeError;if(Vt||rt.state){var te=rt.state||(rt.state=new(0,i.WeakMap));te.get=te.get,te.has=te.has,te.set=te.set,qt=function(t,e){if(te.has(t))throw new Zt(Qt);return e.facade=t,te.set(t,e),e},Ht=function(t){return te.get(t)||{}},$t=function(t){return te.has(t)}}else{var ee=Xt("state");Jt[ee]=!0,qt=function(t,e){if(ut(t,ee))throw new Zt(Qt);return e.facade=t,_t(t,ee,e),e},Ht=function(t){return ut(t,ee)?t[ee]:{}},$t=function(t){return ut(t,ee)}}var re,ne={set:qt,get:Ht,has:$t,enforce:function(t){return $t(t)?Ht(t):qt(t,{})},getterFor:function(t){return function(e){var r;if(!M(e)||(r=Ht(e)).type!==t)throw new Zt("Incompatible receiver, "+t+" required");return r}}},oe=e(function(t){var e=zt.CONFIGURABLE,r=ne.enforce,n=ne.get,o=String,i=Object.defineProperty,s=b("".slice),c=b("".replace),f=b([].join),l=u&&!a(function(){return 8!==i(function(){},"length",{value:8}).length}),h=String(String).split("String"),p=t.exports=function(t,n,a){"Symbol("===s(o(n),0,7)&&(n="["+c(o(n),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),a&&a.getter&&(n="get "+n),a&&a.setter&&(n="set "+n),(!ut(t,"name")||e&&t.name!==n)&&(u?i(t,"name",{value:n,configurable:!0}):t.name=n),l&&a&&ut(a,"arity")&&t.length!==a.arity&&i(t,"length",{value:a.arity});try{a&&ut(a,"constructor")&&a.constructor?u&&i(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var p=r(t);return ut(p,"source")||(p.source=f(h,"string"==typeof n?n:"")),t};Function.prototype.toString=p(function(){return T(this)&&n(this).source||Kt(this)},"toString")}),ie=function(t,e,r,n){n||(n={});var o=n.enumerable,i=void 0!==n.name?n.name:e;if(T(r)&&oe(r,i,n),n.global)o?t[e]=r:et(e,r);else{try{n.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=r:Ct.f(t,e,{value:r,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return t},ae=Math.ceil,ue=Math.floor,se=Math.trunc||function(t){var e=+t;return(e>0?ue:ae)(e)},ce=function(t){var e=+t;return e!=e||0===e?0:se(e)},fe=Math.max,le=Math.min,he=function(t,e){var r=ce(t);return r<0?fe(r+e,0):le(r,e)},pe=Math.min,ve=function(t){var e=ce(t);return e>0?pe(e,9007199254740991):0},de=function(t){return ve(t.length)},ge=function(t){return function(e,r,n){var o=k(e),i=de(o);if(0===i)return!t&&-1;var a,u=he(n,i);if(t&&r!=r){for(;i>u;)if((a=o[u++])!=a)return!0}else for(;i>u;u++)if((t||u in o)&&o[u]===r)return t||u||0;return!t&&-1}},ye={includes:ge(!0),indexOf:ge(!1)},me=ye.indexOf,be=b([].push),we=function(t,e){var r,n=k(t),o=0,i=[];for(r in n)!ut(Jt,r)&&ut(n,r)&&be(i,r);for(;e.length>o;)ut(n,r=e[o++])&&(~me(i,r)||be(i,r));return i},Se=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ee=Se.concat("length","prototype"),Oe={f:Object.getOwnPropertyNames||function(t){return we(t,Ee)}},xe={f:Object.getOwnPropertySymbols},Re=b([].concat),Pe=L("Reflect","ownKeys")||function(t){var e=Oe.f(kt(t)),r=xe.f;return r?Re(e,r(t)):e},Ae=function(t,e,r){for(var n=Pe(e),o=Ct.f,i=Rt.f,a=0;aa;)Ct.f(t,r=o[a++],n[r]);return t},Be={f:Fe},De=L("document","documentElement"),ze="prototype",We="script",qe=Xt("IE_PROTO"),He=function(){},$e=function(t){return"<"+We+">"+t+""},Ke=function(t){t.write($e("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ge=function(){try{re=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;Ge="undefined"!=typeof document?document.domain&&re?Ke(re):(e=Et("iframe"),r="java"+We+":",e.style.display="none",De.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write($e("document.F=Object")),t.close(),t.F):Ke(re);for(var n=Se.length;n--;)delete Ge[ze][Se[n]];return Ge()};Jt[qe]=!0;var Ve=Object.create||function(t,e){var r;return null!==t?(He[ze]=kt(t),r=new He,He[ze]=null,r[qe]=t):r=Ge(),void 0===e?r:Be.f(r,e)},Ye=Ct.f,Xe=dt("unscopables"),Je=Array.prototype;void 0===Je[Xe]&&Ye(Je,Xe,{configurable:!0,value:Ve(null)});var Qe=function(t){Je[Xe][t]=!0};Ce({target:"Array",proto:!0},{at:function(t){var e=it(this),r=de(e),n=ce(t),o=n>=0?n:r+n;return o<0||o>=r?void 0:e[o]}}),Qe("at");var Ze=function(t,e){return b(i[t].prototype[e])},tr=(Ze("Array","at"),TypeError),er=function(t,e){if(!delete t[e])throw new tr("Cannot delete property "+Y(e)+" of "+Y(t))},rr=Math.min,nr=[].copyWithin||function(t,e){var r=it(this),n=de(r),o=he(t,n),i=he(e,n),a=arguments.length>2?arguments[2]:void 0,u=rr((void 0===a?n:he(a,n))-i,n-o),s=1;for(i0;)i in r?r[o]=r[i]:er(r,o),o+=s,i+=s;return r};Ce({target:"Array",proto:!0},{copyWithin:nr}),Qe("copyWithin"),Ze("Array","copyWithin"),Ce({target:"Array",proto:!0},{fill:function(t){for(var e=it(this),r=de(e),n=arguments.length,o=he(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:he(i,r);a>o;)e[o++]=t;return e}}),Qe("fill"),Ze("Array","fill");var or=function(t){if("Function"===E(t))return b(t)},ir=or(or.bind),ar=function(t,e){return J(t),void 0===e?t:s?ir(t,e):function(){return t.apply(e,arguments)}},ur=Array.isArray||function(t){return"Array"===E(t)},sr={};sr[dt("toStringTag")]="z";var cr="[object z]"===String(sr),fr=dt("toStringTag"),lr=Object,hr="Arguments"===E(function(){return arguments}()),pr=cr?E:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=lr(t),fr))?r:hr?E(e):"Object"===(n=E(e))&&T(e.callee)?"Arguments":n},vr=function(){},dr=L("Reflect","construct"),gr=/^\s*(?:class|function)\b/,yr=b(gr.exec),mr=!gr.test(vr),br=function(t){if(!T(t))return!1;try{return dr(vr,[],t),!0}catch(t){return!1}},wr=function(t){if(!T(t))return!1;switch(pr(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return mr||!!yr(gr,Kt(t))}catch(t){return!0}};wr.sham=!0;var Sr=!dr||a(function(){var t;return br(br.call)||!br(Object)||!br(function(){t=!0})||t})?wr:br,Er=dt("species"),Or=Array,xr=function(t,e){return new(function(t){var e;return ur(t)&&(Sr(e=t.constructor)&&(e===Or||ur(e.prototype))||M(e)&&null===(e=e[Er]))&&(e=void 0),void 0===e?Or:e}(t))(0===e?0:e)},Rr=b([].push),Pr=function(t){var e=1===t,r=2===t,n=3===t,o=4===t,i=6===t,a=7===t,u=5===t||i;return function(s,c,f,l){for(var h,p,v=it(s),d=R(v),g=de(d),y=ar(c,f),m=0,b=l||xr,w=e?b(s,g):r||a?b(s,0):void 0;g>m;m++)if((u||m in d)&&(p=y(h=d[m],m,v),t))if(e)w[m]=p;else if(p)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:Rr(w,h)}else switch(t){case 4:return!1;case 7:Rr(w,h)}return i?-1:n||o?o:w}},Ar={forEach:Pr(0),map:Pr(1),filter:Pr(2),some:Pr(3),every:Pr(4),find:Pr(5),findIndex:Pr(6),filterReject:Pr(7)},jr=Ar.find,kr="find",Ir=!0;kr in[]&&Array(1)[kr](function(){Ir=!1}),Ce({target:"Array",proto:!0,forced:Ir},{find:function(t){return jr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(kr),Ze("Array","find");var Tr=Ar.findIndex,Mr="findIndex",Lr=!0;Mr in[]&&Array(1)[Mr](function(){Lr=!1}),Ce({target:"Array",proto:!0,forced:Lr},{findIndex:function(t){return Tr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(Mr),Ze("Array","findIndex");var Ur=TypeError,Nr=function(t){if(t>9007199254740991)throw Ur("Maximum allowed index exceeded");return t},Cr=function(t,e,r,n,o,i,a,u){for(var s,c,f=o,l=0,h=!!a&&ar(a,u);l0&&ur(s)?(c=de(s),f=Cr(t,e,s,c,f,i-1)-1):(Nr(f+1),t[f]=s),f++),l++;return f},_r=Cr;Ce({target:"Array",proto:!0},{flatMap:function(t){var e,r=it(this),n=de(r);return J(t),(e=xr(r,0)).length=_r(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Qe("flatMap"),Ze("Array","flatMap"),Ce({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=it(this),r=de(e),n=xr(e,0);return n.length=_r(n,e,e,r,0,void 0===t?1:ce(t)),n}}),Qe("flat"),Ze("Array","flat");var Fr,Br,Dr,zr=String,Wr=function(t){if("Symbol"===pr(t))throw new TypeError("Cannot convert a Symbol value to a string");return zr(t)},qr=b("".charAt),Hr=b("".charCodeAt),$r=b("".slice),Kr=function(t){return function(e,r){var n,o,i=Wr(j(e)),a=ce(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=Hr(i,a))<55296||n>56319||a+1===u||(o=Hr(i,a+1))<56320||o>57343?t?qr(i,a):n:t?$r(i,a,a+2):o-56320+(n-55296<<10)+65536}},Gr={codeAt:Kr(!1),charAt:Kr(!0)},Vr=!a(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),Yr=Xt("IE_PROTO"),Xr=Object,Jr=Xr.prototype,Qr=Vr?Xr.getPrototypeOf:function(t){var e=it(t);if(ut(e,Yr))return e[Yr];var r=e.constructor;return T(r)&&e instanceof r?r.prototype:e instanceof Xr?Jr:null},Zr=dt("iterator"),tn=!1;[].keys&&("next"in(Dr=[].keys())?(Br=Qr(Qr(Dr)))!==Object.prototype&&(Fr=Br):tn=!0);var en=!M(Fr)||a(function(){var t={};return Fr[Zr].call(t)!==t});en&&(Fr={}),T(Fr[Zr])||ie(Fr,Zr,function(){return this});var rn={IteratorPrototype:Fr,BUGGY_SAFARI_ITERATORS:tn},nn=Ct.f,on=dt("toStringTag"),an=function(t,e,r){t&&!r&&(t=t.prototype),t&&!ut(t,on)&&nn(t,on,{configurable:!0,value:e})},un={},sn=rn.IteratorPrototype,cn=function(){return this},fn=function(t,e,r,n){var o=e+" Iterator";return t.prototype=Ve(sn,{next:d(+!n,r)}),an(t,o,!1),un[o]=cn,t},ln=function(t,e,r){try{return b(J(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}},hn=String,pn=TypeError,vn=function(t){if(function(t){return M(t)||null===t}(t))return t;throw new pn("Can't set "+hn(t)+" as a prototype")},dn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=ln(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return j(r),vn(n),M(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0),gn=zt.PROPER,yn=zt.CONFIGURABLE,mn=rn.IteratorPrototype,bn=rn.BUGGY_SAFARI_ITERATORS,wn=dt("iterator"),Sn="keys",En="values",On="entries",xn=function(){return this},Rn=function(t,e,r,n,o,i,a){fn(r,e,n);var u,s,c,l=function(t){if(t===o&&g)return g;if(!bn&&t&&t in v)return v[t];switch(t){case Sn:case En:case On:return function(){return new r(this,t)}}return function(){return new r(this)}},h=e+" Iterator",p=!1,v=t.prototype,d=v[wn]||v["@@iterator"]||o&&v[o],g=!bn&&d||l(o),y="Array"===e&&v.entries||d;if(y&&(u=Qr(y.call(new t)))!==Object.prototype&&u.next&&(Qr(u)!==mn&&(dn?dn(u,mn):T(u[wn])||ie(u,wn,xn)),an(u,h,!0)),gn&&o===En&&d&&d.name!==En&&(yn?_t(v,"name",En):(p=!0,g=function(){return f(d,this)})),o)if(s={values:l(En),keys:i?g:l(Sn),entries:l(On)},a)for(c in s)(bn||p||!(c in v))&&ie(v,c,s[c]);else Ce({target:e,proto:!0,forced:bn||p},s);return v[wn]!==g&&ie(v,wn,g,{name:o}),un[e]=g,s},Pn=function(t,e){return{value:t,done:e}},An=Gr.charAt,jn="String Iterator",kn=ne.set,In=ne.getterFor(jn);Rn(String,"String",function(t){kn(this,{type:jn,string:Wr(t),index:0})},function(){var t,e=In(this),r=e.string,n=e.index;return n>=r.length?Pn(void 0,!0):(t=An(r,n),e.index+=t.length,Pn(t,!1))});var Tn=function(t,e,r){var n,o;kt(t);try{if(!(n=Q(t,"return"))){if("throw"===e)throw r;return r}n=f(n,t)}catch(t){o=!0,n=t}if("throw"===e)throw r;if(o)throw n;return kt(n),r},Mn=function(t,e,r,n){try{return n?e(kt(r)[0],r[1]):e(r)}catch(e){Tn(t,"throw",e)}},Ln=dt("iterator"),Un=Array.prototype,Nn=function(t){return void 0!==t&&(un.Array===t||Un[Ln]===t)},Cn=function(t,e,r){u?Ct.f(t,e,d(0,r)):t[e]=r},_n=dt("iterator"),Fn=function(t){if(!P(t))return Q(t,_n)||Q(t,"@@iterator")||un[pr(t)]},Bn=TypeError,Dn=function(t,e){var r=arguments.length<2?Fn(t):e;if(J(r))return kt(f(r,t));throw new Bn(Y(t)+" is not iterable")},zn=Array,Wn=function(t){var e=it(t),r=Sr(this),n=arguments.length,o=n>1?arguments[1]:void 0,i=void 0!==o;i&&(o=ar(o,n>2?arguments[2]:void 0));var a,u,s,c,l,h,p=Fn(e),v=0;if(!p||this===zn&&Nn(p))for(a=de(e),u=r?new this(a):zn(a);a>v;v++)h=i?o(e[v],v):e[v],Cn(u,v,h);else for(u=r?new this:[],l=(c=Dn(e,p)).next;!(s=f(l,c)).done;v++)h=i?Mn(c,o,[s.value,v],!0):s.value,Cn(u,v,h);return u.length=v,u},qn=dt("iterator"),Hn=!1;try{var $n=0,Kn={next:function(){return{done:!!$n++}},return:function(){Hn=!0}};Kn[qn]=function(){return this},Array.from(Kn,function(){throw 2})}catch(t){}var Gn=function(t,e){try{if(!e&&!Hn)return!1}catch(t){return!1}var r=!1;try{var n={};n[qn]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},Vn=!Gn(function(t){Array.from(t)});Ce({target:"Array",stat:!0,forced:Vn},{from:Wn});var Yn=i,Xn=ye.includes,Jn=a(function(){return!Array(1).includes()});Ce({target:"Array",proto:!0,forced:Jn},{includes:function(t){return Xn(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe("includes"),Ze("Array","includes");var Qn=Ct.f,Zn="Array Iterator",to=ne.set,eo=ne.getterFor(Zn),ro=Rn(Array,"Array",function(t,e){to(this,{type:Zn,target:k(t),index:0,kind:e})},function(){var t=eo(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);switch(t.kind){case"keys":return Pn(r,!1);case"values":return Pn(e[r],!1)}return Pn([r,e[r]],!1)},"values"),no=un.Arguments=un.Array;if(Qe("keys"),Qe("values"),Qe("entries"),u&&"values"!==no.name)try{Qn(no,"name",{value:"values"})}catch(t){}cr||ie(Object.prototype,"toString",cr?{}.toString:function(){return"[object "+pr(this)+"]"},{unsafe:!0}),Ze("Array","values");var oo=Array,io=a(function(){function t(){}return!(oo.of.call(t)instanceof t)});Ce({target:"Array",stat:!0,forced:io},{of:function(){for(var t=0,e=arguments.length,r=new(Sr(this)?this:oo)(e);e>t;)Cn(r,t,arguments[t++]);return r.length=e,r}});var ao=dt("hasInstance"),uo=Function.prototype;ao in uo||Ct.f(uo,ao,{value:oe(function(t){if(!T(this)||!M(t))return!1;var e=this.prototype;return M(e)?U(e,t):t instanceof this},ao)}),dt("hasInstance");var so=function(t,e,r){return r.get&&oe(r.get,e,{getter:!0}),r.set&&oe(r.set,e,{setter:!0}),Ct.f(t,e,r)},co=zt.EXISTS,fo=Function.prototype,lo=b(fo.toString),ho=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,po=b(ho.exec);u&&!co&&so(fo,"name",{configurable:!0,get:function(){try{return po(ho,lo(this))[1]}catch(t){return""}}});var vo=b([].slice),go=Oe.f,yo="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],mo={f:function(t){return yo&&"Window"===E(t)?function(t){try{return go(t)}catch(t){return vo(yo)}}(t):go(k(t))}},bo=a(function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}),wo=Object.isExtensible,So=a(function(){wo(1)})||bo?function(t){return!!M(t)&&(!bo||"ArrayBuffer"!==E(t))&&(!wo||wo(t))}:wo,Eo=!a(function(){return Object.isExtensible(Object.preventExtensions({}))}),Oo=e(function(t){var e=Ct.f,r=!1,n=lt("meta"),o=0,i=function(t){e(t,n,{value:{objectID:"O"+o++,weakData:{}}})},a=t.exports={enable:function(){a.enable=function(){},r=!0;var t=Oe.f,e=b([].splice),o={};o[n]=1,t(o).length&&(Oe.f=function(r){for(var o=t(r),i=0,a=o.length;ii;i++)if((u=y(t[i]))&&U(Po,u))return u;return new Ro(!1)}n=Dn(t,o)}for(s=h?t.next:n.next;!(c=f(s,n)).done;){try{u=y(c.value)}catch(t){Tn(n,"throw",t)}if("object"==typeof u&&u&&U(Po,u))return u}return new Ro(!1)},jo=TypeError,ko=function(t,e){if(U(e,t))return t;throw new jo("Incorrect invocation")},Io=function(t,e,r){var n,o;return dn&&T(n=e.constructor)&&n!==r&&M(o=n.prototype)&&o!==r.prototype&&dn(t,o),t},To=function(t,e,r){var n=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),u=n?"set":"add",s=i[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=b(c[t]);ie(c,t,"add"===t?function(t){return e(this,0===t?0:t),this}:"delete"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:"get"===t?function(t){return o&&!M(t)?void 0:e(this,0===t?0:t)}:"has"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:function(t,r){return e(this,0===t?0:t,r),this})};if(Ue(t,!T(s)||!(o||c.forEach&&!a(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,n,u),Oo.enable();else if(Ue(t,!0)){var p=new f,v=p[u](o?{}:-0,1)!==p,d=a(function(){p.has(1)}),g=Gn(function(t){new s(t)}),y=!o&&a(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});g||((f=e(function(t,e){ko(t,c);var r=Io(new s,t,f);return P(e)||Ao(e,r[u],{that:r,AS_ENTRIES:n}),r})).prototype=c,c.constructor=f),(d||y)&&(h("delete"),h("has"),n&&h("get")),(y||v)&&h(u),o&&c.clear&&delete c.clear}return l[t]=f,Ce({global:!0,constructor:!0,forced:f!==s},l),an(f,t),o||r.setStrong(f,t,n),f},Mo=function(t,e,r){for(var n in e)ie(t,n,e[n],r);return t},Lo=dt("species"),Uo=function(t){var e=L(t);u&&e&&!e[Lo]&&so(e,Lo,{configurable:!0,get:function(){return this}})},No=Oo.fastKey,Co=ne.set,_o=ne.getterFor,Fo={getConstructor:function(t,e,r,n){var o=t(function(t,o){ko(t,i),Co(t,{type:e,index:Ve(null),first:null,last:null,size:0}),u||(t.size=0),P(o)||Ao(o,t[n],{that:t,AS_ENTRIES:r})}),i=o.prototype,a=_o(e),s=function(t,e,r){var n,o,i=a(t),s=c(t,e);return s?s.value=r:(i.last=s={index:o=No(e,!0),key:e,value:r,previous:n=i.last,next:null,removed:!1},i.first||(i.first=s),n&&(n.next=s),u?i.size++:t.size++,"F"!==o&&(i.index[o]=s)),t},c=function(t,e){var r,n=a(t),o=No(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key===e)return r};return Mo(i,{clear:function(){for(var t=a(this),e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=null),e=e.next;t.first=t.last=null,t.index=Ve(null),u?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=c(e,t);if(n){var o=n.next,i=n.previous;delete r.index[n.index],n.removed=!0,i&&(i.next=o),o&&(o.previous=i),r.first===n&&(r.first=o),r.last===n&&(r.last=i),u?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=ar(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!c(this,t)}}),Mo(i,r?{get:function(t){var e=c(this,t);return e&&e.value},set:function(t,e){return s(this,0===t?0:t,e)}}:{add:function(t){return s(this,t=0===t?0:t,t)}}),u&&so(i,"size",{configurable:!0,get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=_o(e),i=_o(n);Rn(t,e,function(t,e){Co(this,{type:n,target:t,state:o(t),kind:e,last:null})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?Pn("keys"===e?r.key:"values"===e?r.value:[r.key,r.value],!1):(t.target=null,Pn(void 0,!0))},r?"entries":"values",!r,!0),Uo(e)}};To("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var Bo=Map.prototype,Do={Map:Map,set:b(Bo.set),get:b(Bo.get),has:b(Bo.has),remove:b(Bo.delete),proto:Bo},zo=Do.Map,Wo=Do.has,qo=Do.get,Ho=Do.set,$o=b([].push),Ko=a(function(){return 1!==zo.groupBy("ab",function(t){return t}).get("a").length});Ce({target:"Map",stat:!0,forced:Ko},{groupBy:function(t,e){j(t),J(e);var r=new zo,n=0;return Ao(t,function(t){var o=e(t,n++);Wo(r,o)?$o(qo(r,o),t):Ho(r,o,[t])}),r}});var Go={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Vo=Et("span").classList,Yo=Vo&&Vo.constructor&&Vo.constructor.prototype,Xo=Yo===Object.prototype?void 0:Yo,Jo=dt("iterator"),Qo=ro.values,Zo=function(t,e){if(t){if(t[Jo]!==Qo)try{_t(t,Jo,Qo)}catch(e){t[Jo]=Qo}if(an(t,e,!0),Go[e])for(var r in ro)if(t[r]!==ro[r])try{_t(t,r,ro[r])}catch(e){t[r]=ro[r]}}};for(var ti in Go)Zo(i[ti]&&i[ti].prototype,ti);Zo(Xo,"DOMTokenList");var ei=function(t,e,r){return function(n){var o=it(n),i=arguments.length,a=i>1?arguments[1]:void 0,u=void 0!==a,s=u?ar(a,i>2?arguments[2]:void 0):void 0,c=new t,f=0;return Ao(o,function(t){var n=u?s(t,f++):t;r?e(c,kt(n)[0],n[1]):e(c,n)}),c}};Ce({target:"Map",stat:!0,forced:!0},{from:ei(Do.Map,Do.set,!0)});var ri=function(t,e,r){return function(){for(var n=new t,o=arguments.length,i=0;i1?arguments[1]:void 0);return!1!==di(e,function(t,n){if(!r(t,n,e))return!1},!0)}});var gi=Do.Map,yi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new gi;return di(e,function(t,o){r(t,o,e)&&yi(n,o,t)}),n}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{find:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{key:n}},!0);return n&&n.key}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(t){return!0===di(oi(this),function(e){if((r=e)===(n=t)||r!=r&&n!=n)return!0;var r,n},!0)}});var mi=Do.Map;Ce({target:"Map",stat:!0,forced:!0},{keyBy:function(t,e){var r=new(T(this)?this:mi);J(e);var n=J(r.set);return Ao(t,function(t){f(n,r,e(t),t)}),r}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(t){var e=di(oi(this),function(e,r){if(e===t)return{key:r}},!0);return e&&e.key}});var bi=Do.Map,wi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new bi;return di(e,function(t,o){wi(n,r(t,o,e),t)}),n}});var Si=Do.Map,Ei=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new Si;return di(e,function(t,o){Ei(n,o,r(t,o,e))}),n}});var Oi=Do.set;Ce({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(t){for(var e=oi(this),r=arguments.length,n=0;n1?arguments[1]:void 0);return!0===di(e,function(t,n){if(r(t,n,e))return!0},!0)}});var Ri=TypeError,Pi=Do.get,Ai=Do.has,ji=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{update:function(t,e){var r=oi(this),n=arguments.length;J(e);var o=Ai(r,t);if(!o&&n<3)throw new Ri("Updating absent value");var i=o?Pi(r,t):J(n>2?arguments[2]:void 0)(t,r);return ji(r,t,e(i,t,r)),r}});var ki=TypeError,Ii=function(t,e){var r,n=kt(this),o=J(n.get),i=J(n.has),a=J(n.set),u=arguments.length>2?arguments[2]:void 0;if(!T(e)&&!T(u))throw new ki("At least one callback required");return f(i,n,t)?(r=f(o,n,t),T(e)&&(r=e(r),f(a,n,t,r))):T(u)&&(r=u(),f(a,n,t,r)),r};Ce({target:"Map",proto:!0,real:!0,forced:!0},{upsert:Ii}),Ce({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:Ii});var Ti=b(1..valueOf),Mi="\t\n\v\f\r                 \u2028\u2029\ufeff",Li=b("".replace),Ui=RegExp("^["+Mi+"]+"),Ni=RegExp("(^|[^"+Mi+"])["+Mi+"]+$"),Ci=function(t){return function(e){var r=Wr(j(e));return 1&t&&(r=Li(r,Ui,"")),2&t&&(r=Li(r,Ni,"$1")),r}},_i={start:Ci(1),end:Ci(2),trim:Ci(3)},Fi=Oe.f,Bi=Rt.f,Di=Ct.f,zi=_i.trim,Wi="Number",qi=i[Wi],Hi=qi.prototype,$i=i.TypeError,Ki=b("".slice),Gi=b("".charCodeAt),Vi=Ue(Wi,!qi(" 0o1")||!qi("0b1")||qi("+0x1")),Yi=function(t){var e,r=arguments.length<1?0:qi(function(t){var e=mt(t,"number");return"bigint"==typeof e?e:function(t){var e,r,n,o,i,a,u,s,c=mt(t,"number");if(G(c))throw new $i("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=zi(c),43===(e=Gi(c,0))||45===e){if(88===(r=Gi(c,2))||120===r)return NaN}else if(48===e){switch(Gi(c,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=Ki(c,2)).length,u=0;uo)return NaN;return parseInt(i,n)}return+c}(e)}(t));return U(Hi,e=this)&&a(function(){Ti(e)})?Io(Object(r),this,Yi):r};Yi.prototype=Hi,Vi&&(Hi.constructor=Yi),Ce({global:!0,constructor:!0,wrap:!0,forced:Vi},{Number:Yi}),Vi&&function(t,e){for(var r,n=u?Fi(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)ut(e,r=n[o])&&!ut(t,r)&&Di(t,r,Bi(e,r))}(Yn[Wi],qi),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)});var Xi=i.isFinite;Ce({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&Xi(t)}});var Ji=Math.floor,Qi=Number.isInteger||function(t){return!M(t)&&isFinite(t)&&Ji(t)===t};Ce({target:"Number",stat:!0},{isInteger:Qi}),Ce({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Zi=Math.abs;Ce({target:"Number",stat:!0},{isSafeInteger:function(t){return Qi(t)&&Zi(t)<=9007199254740991}}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991});var ta=_i.trim,ea=b("".charAt),ra=i.parseFloat,na=i.Symbol,oa=na&&na.iterator,ia=1/ra(Mi+"-0")!=-Infinity||oa&&!a(function(){ra(Object(oa))})?function(t){var e=ta(Wr(t)),r=ra(e);return 0===r&&"-"===ea(e,0)?-0:r}:ra;Ce({target:"Number",stat:!0,forced:Number.parseFloat!==ia},{parseFloat:ia});var aa=_i.trim,ua=i.parseInt,sa=i.Symbol,ca=sa&&sa.iterator,fa=/^[+-]?0x/i,la=b(fa.exec),ha=8!==ua(Mi+"08")||22!==ua(Mi+"0x16")||ca&&!a(function(){ua(Object(ca))})?function(t,e){var r=aa(Wr(t));return ua(r,e>>>0||(la(fa,r)?16:10))}:ua;Ce({target:"Number",stat:!0,forced:Number.parseInt!==ha},{parseInt:ha});var pa=b(v.f),va=b([].push),da=u&&a(function(){var t=Object.create(null);return t[2]=2,!pa(t,2)}),ga=function(t){return function(e){for(var r,n=k(e),o=_e(n),i=da&&null===Qr(n),a=o.length,s=0,c=[];a>s;)r=o[s++],u&&!(i?r in n:pa(n,r))||va(c,t?[r,n[r]]:n[r]);return c}},ya={entries:ga(!0),values:ga(!1)},ma=ya.entries;Ce({target:"Object",stat:!0},{entries:function(t){return ma(t)}}),Ce({target:"Object",stat:!0,sham:!u},{getOwnPropertyDescriptors:function(t){for(var e,r,n=k(t),o=Rt.f,i=Pe(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&Cn(a,e,r);return a}});var ba=a(function(){_e(1)});Ce({target:"Object",stat:!0,forced:ba},{keys:function(t){return _e(it(t))}});var wa=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Ce({target:"Object",stat:!0},{is:wa});var Sa=ya.values;Ce({target:"Object",stat:!0},{values:function(t){return Sa(t)}}),Ce({target:"Object",stat:!0},{hasOwn:ut});var Ea=Function.prototype,Oa=Ea.apply,xa=Ea.call,Ra="object"==typeof Reflect&&Reflect.apply||(s?xa.bind(Oa):function(){return xa.apply(Oa,arguments)}),Pa=!a(function(){Reflect.apply(function(){})});Ce({target:"Reflect",stat:!0,forced:Pa},{apply:function(t,e,r){return Ra(J(t),e,kt(r))}});var Aa=Function,ja=b([].concat),ka=b([].join),Ia={},Ta=s?Aa.bind:function(t){var e=J(this),r=e.prototype,n=vo(arguments,1),o=function(){var r=ja(n,vo(arguments));return this instanceof o?function(t,e,r){if(!ut(Ia,e)){for(var n=[],o=0;ob)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}),gs=Oe.f,ys=ne.enforce,ms=dt("match"),bs=i.RegExp,ws=bs.prototype,Ss=i.SyntaxError,Es=b(ws.exec),Os=b("".charAt),xs=b("".replace),Rs=b("".indexOf),Ps=b("".slice),As=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,js=/a/g,ks=/a/g,Is=new bs(js)!==js,Ts=cs.MISSED_STICKY,Ms=cs.UNSUPPORTED_Y,Ls=u&&(!Is||Ts||ps||ds||a(function(){return ks[ms]=!1,bs(js)!==js||bs(ks)===ks||"/a/i"!==String(bs(js,"i"))}));if(Ue("RegExp",Ls)){for(var Us=function(t,e){var r,n,o,i,a,u,s=U(ws,this),c=es(t),f=void 0===e,l=[],h=t;if(!s&&c&&f&&t.constructor===Us)return t;if((c||U(ws,t))&&(t=t.source,f&&(e=os(h))),t=void 0===t?"":Wr(t),e=void 0===e?"":Wr(e),h=t,ps&&"dotAll"in js&&(n=!!e&&Rs(e,"s")>-1)&&(e=xs(e,/s/g,"")),r=e,Ts&&"sticky"in js&&(o=!!e&&Rs(e,"y")>-1)&&Ms&&(e=xs(e,/y/g,"")),ds&&(i=function(t){for(var e,r=t.length,n=0,o="",i=[],a=Ve(null),u=!1,s=!1,c=0,f="";n<=r;n++){if("\\"===(e=Os(t,n)))e+=Os(t,++n);else if("]"===e)u=!1;else if(!u)switch(!0){case"["===e:u=!0;break;case"("===e:if(o+=e,"?:"===Ps(t,n+1,n+3))continue;Es(As,Ps(t,n+1))&&(n+=2,s=!0),c++;continue;case">"===e&&s:if(""===f||ut(a,f))throw new Ss("Invalid capture group name");a[f]=!0,i[i.length]=[f,c],s=!1,f="";continue}s?f+=e:o+=e}return[o,i]}(t),t=i[0],l=i[1]),a=Io(bs(t,e),s?this:ws,Us),(n||o||l.length)&&(u=ys(a),n&&(u.dotAll=!0,u.raw=Us(function(t){for(var e,r=t.length,n=0,o="",i=!1;n<=r;n++)"\\"!==(e=Os(t,n))?i||"."!==e?("["===e?i=!0:"]"===e&&(i=!1),o+=e):o+="[\\s\\S]":o+=e+Os(t,++n);return o}(t),r)),o&&(u.sticky=!0),l.length&&(u.groups=l)),t!==h)try{_t(a,"source",""===h?"(?:)":h)}catch(t){}return a},Ns=gs(bs),Cs=0;Ns.length>Cs;)ls(Us,bs,Ns[Cs++]);ws.constructor=Us,Us.prototype=ws,ie(i,"RegExp",Us,{constructor:!0})}Uo("RegExp");var _s=zt.PROPER,Fs="toString",Bs=RegExp.prototype,Ds=Bs[Fs];(a(function(){return"/a/b"!==Ds.call({source:"a",flags:"b"})})||_s&&Ds.name!==Fs)&&ie(Bs,Fs,function(){var t=kt(this);return"/"+Wr(t.source)+"/"+Wr(os(t))},{unsafe:!0});var zs=ne.get,Ws=RegExp.prototype,qs=TypeError;u&&ps&&so(Ws,"dotAll",{configurable:!0,get:function(){if(this!==Ws){if("RegExp"===E(this))return!!zs(this).dotAll;throw new qs("Incompatible receiver, RegExp required")}}});var Hs=ne.get,$s=nt("native-string-replace",String.prototype.replace),Ks=RegExp.prototype.exec,Gs=Ks,Vs=b("".charAt),Ys=b("".indexOf),Xs=b("".replace),Js=b("".slice),Qs=function(){var t=/a/,e=/b*/g;return f(Ks,t,"a"),f(Ks,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Zs=cs.BROKEN_CARET,tc=void 0!==/()??/.exec("")[1];(Qs||tc||Zs||ps||ds)&&(Gs=function(t){var e,r,n,o,i,a,u,s=this,c=Hs(s),l=Wr(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=f(Gs,h,l),s.lastIndex=h.lastIndex,e;var p=c.groups,v=Zs&&s.sticky,d=f(rs,s),g=s.source,y=0,m=l;if(v&&(d=Xs(d,"y",""),-1===Ys(d,"g")&&(d+="g"),m=Js(l,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==Vs(l,s.lastIndex-1))&&(g="(?: "+g+")",m=" "+m,y++),r=new RegExp("^(?:"+g+")",d)),tc&&(r=new RegExp("^"+g+"$(?!\\s)",d)),Qs&&(n=s.lastIndex),o=f(Ks,v?r:s,m),v?o?(o.input=Js(o.input,y),o[0]=Js(o[0],y),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:Qs&&o&&(s.lastIndex=s.global?o.index+o[0].length:n),tc&&o&&o.length>1&&f($s,o[0],r,function(){for(i=1;i]*>)/g,Oc=/\$([$&'`]|\d{1,2})/g,xc=function(t,e,r,n,o,i){var a=r+t.length,u=n.length,s=Oc;return void 0!==o&&(o=it(o),s=Ec),wc(i,s,function(i,s){var c;switch(bc(s,0)){case"$":return"$";case"&":return t;case"`":return Sc(e,0,r);case"'":return Sc(e,a);case"<":c=o[Sc(s,1,-1)];break;default:var f=+s;if(0===f)return i;if(f>u){var l=mc(f/10);return 0===l?i:l<=u?void 0===n[l-1]?bc(s,1):n[l-1]+bc(s,1):i}c=n[f-1]}return void 0===c?"":c})},Rc=dt("replace"),Pc=Math.max,Ac=Math.min,jc=b([].concat),kc=b([].push),Ic=b("".indexOf),Tc=b("".slice),Mc="$0"==="a".replace(/./,"$0"),Lc=!!/./[Rc]&&""===/./[Rc]("a","$0"),Uc=!a(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")});pc("replace",function(t,e,r){var n=Lc?"$":"$0";return[function(t,r){var n=j(this),o=P(t)?void 0:Q(t,Rc);return o?f(o,t,n,r):f(e,Wr(n),t,r)},function(t,o){var i=kt(this),a=Wr(t);if("string"==typeof o&&-1===Ic(o,n)&&-1===Ic(o,"$<")){var u=r(e,i,a,o);if(u.done)return u.value}var s=T(o);s||(o=Wr(o));var c,f=i.global;f&&(c=i.unicode,i.lastIndex=0);for(var l,h=[];null!==(l=yc(i,a))&&(kc(h,l),f);)""===Wr(l[0])&&(i.lastIndex=dc(a,ve(i.lastIndex),c));for(var p,v="",d=0,g=0;g=d&&(v+=Tc(a,d,b)+y,d=b+m.length)}return v+Tc(a,d)}]},!Uc||!Mc||Lc),pc("search",function(t,e,r){return[function(e){var r=j(this),n=P(e)?void 0:Q(e,t);return n?f(n,e,r):new RegExp(e)[t](Wr(r))},function(t){var n=kt(this),o=Wr(t),i=r(e,n,o);if(i.done)return i.value;var a=n.lastIndex;wa(a,0)||(n.lastIndex=0);var u=yc(n,o);return wa(n.lastIndex,a)||(n.lastIndex=a),null===u?-1:u.index}]});var Nc=dt("species"),Cc=function(t,e){var r,n=kt(t).constructor;return void 0===n||P(r=kt(n)[Nc])?e:La(r)},_c=cs.UNSUPPORTED_Y,Fc=Math.min,Bc=b([].push),Dc=b("".slice),zc=!a(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),Wc="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;pc("split",function(t,e,r){var n="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:f(e,this,t,r)}:e;return[function(e,r){var o=j(this),i=P(e)?void 0:Q(e,t);return i?f(i,e,o,r):f(n,Wr(o),e,r)},function(t,o){var i=kt(this),a=Wr(t);if(!Wc){var u=r(n,i,a,o,n!==e);if(u.done)return u.value}var s=Cc(i,RegExp),c=i.unicode,f=new s(_c?"^(?:"+i.source+")":i,(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(_c?"g":"y")),l=void 0===o?4294967295:o>>>0;if(0===l)return[];if(0===a.length)return null===yc(f,a)?[a]:[];for(var h=0,p=0,v=[];p0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},Kc=b($c),Gc=b("".slice),Vc=Math.ceil,Yc=function(t){return function(e,r,n){var o,i,a=Wr(j(e)),u=ve(r),s=a.length,c=void 0===n?" ":Wr(n);return u<=s||""===c?a:((i=Kc(c,Vc((o=u-s)/c.length))).length>o&&(i=Gc(i,0,o)),t?a+i:i+a)}},Xc={start:Yc(!1),end:Yc(!0)},Jc=Xc.start,Qc=Array,Zc=RegExp.escape,tf=b("".charAt),ef=b("".charCodeAt),rf=b(1.1.toString),nf=b([].join),of=/^[0-9a-z]/i,af=/^[$()*+./?[\\\]^{|}]/,uf=RegExp("^[!\"#%&',\\-:;<=>@`~"+Mi+"]"),sf=b(of.exec),cf={"\t":"t","\n":"n","\v":"v","\f":"f","\r":"r"},ff=function(t){var e=rf(ef(t,0),16);return e.length<3?"\\x"+Jc(e,2,"0"):"\\u"+Jc(e,4,"0")},lf=!Zc||"\\x61b"!==Zc("ab");Ce({target:"RegExp",stat:!0,forced:lf},{escape:function(t){!function(t){if("string"==typeof t)return t;throw new qc("Argument is not a string")}(t);for(var e=t.length,r=Qc(e),n=0;n=56320||n+1>=e||56320!=(64512&ef(t,n+1))?r[n]=ff(o):(r[n]=o,r[++n]=tf(t,n))}}return nf(r,"")}}),To("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var hf=Set.prototype,pf={Set:Set,add:b(hf.add),has:b(hf.has),remove:b(hf.delete),proto:hf},vf=pf.has,df=function(t){return vf(t),t},gf=pf.Set,yf=pf.proto,mf=b(yf.forEach),bf=b(yf.keys),wf=bf(new gf).next,Sf=function(t,e,r){return r?ci({iterator:bf(t),next:wf},e):mf(t,e)},Ef=pf.Set,Of=pf.add,xf=function(t){var e=new Ef;return Sf(t,function(t){Of(e,t)}),e},Rf=ln(pf.proto,"size","get")||function(t){return t.size},Pf="Invalid size",Af=RangeError,jf=TypeError,kf=Math.max,If=function(t,e){this.set=t,this.size=kf(e,0),this.has=J(t.has),this.keys=J(t.keys)};If.prototype={getIterator:function(){return{iterator:t=kt(f(this.keys,this.set)),next:t.next,done:!1};var t},includes:function(t){return f(this.has,this.set,t)}};var Tf=function(t){kt(t);var e=+t.size;if(e!=e)throw new jf(Pf);var r=ce(e);if(r<0)throw new Af(Pf);return new If(t,r)},Mf=pf.has,Lf=pf.remove,Uf=function(t){var e=df(this),r=Tf(t),n=xf(e);return Rf(e)<=r.size?Sf(e,function(t){r.includes(t)&&Lf(n,t)}):ci(r.getIterator(),function(t){Mf(e,t)&&Lf(n,t)}),n},Nf=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},Cf=function(t){var e=L("Set");try{(new e)[t](Nf(0));try{return(new e)[t](Nf(-1)),!1}catch(t){return!0}}catch(t){return!1}};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("difference")},{difference:Uf});var _f=pf.Set,Ff=pf.add,Bf=pf.has,Df=function(t){var e=df(this),r=Tf(t),n=new _f;return Rf(e)>r.size?ci(r.getIterator(),function(t){Bf(e,t)&&Ff(n,t)}):Sf(e,function(t){r.includes(t)&&Ff(n,t)}),n},zf=!Cf("intersection")||a(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))});Ce({target:"Set",proto:!0,real:!0,forced:zf},{intersection:Df});var Wf=pf.has,qf=function(t){var e=df(this),r=Tf(t);if(Rf(e)<=r.size)return!1!==Sf(e,function(t){if(r.includes(t))return!1},!0);var n=r.getIterator();return!1!==ci(n,function(t){if(Wf(e,t))return Tn(n,"normal",!1)})};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isDisjointFrom")},{isDisjointFrom:qf});var Hf=function(t){var e=df(this),r=Tf(t);return!(Rf(e)>r.size)&&!1!==Sf(e,function(t){if(!r.includes(t))return!1},!0)};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isSubsetOf")},{isSubsetOf:Hf});var $f=pf.has,Kf=function(t){var e=df(this),r=Tf(t);if(Rf(e)1?arguments[1]:void 0);return!1!==Sf(e,function(t){if(!r(t,t,e))return!1},!0)}});var el=dt("iterator"),rl=Object,nl=L("Set"),ol=function(t){return function(t){return M(t)&&"number"==typeof t.size&&T(t.has)&&T(t.keys)}(t)?t:function(t){if(P(t))return!1;var e=rl(t);return void 0!==e[el]||"@@iterator"in e||ut(un,pr(e))}(t)?new nl(t):t};Ce({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(t){return f(Uf,this,ol(t))}});var il=pf.Set,al=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new il;return Sf(e,function(t){r(t,t,e)&&al(n,t)}),n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{find:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=Sf(e,function(t){if(r(t,t,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(t){return f(Df,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(t){return f(qf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(t){return f(Hf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(t){return f(Kf,this,ol(t))}});var ul=b([].join),sl=b([].push);Ce({target:"Set",proto:!0,real:!0,forced:!0},{join:function(t){var e=df(this),r=void 0===t?",":Wr(t),n=[];return Sf(e,function(t){sl(n,t)}),ul(n,r)}});var cl=pf.Set,fl=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{map:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new cl;return Sf(e,function(t){fl(n,r(t,t,e))}),n}});var ll=TypeError;Ce({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=df(this),r=arguments.length<2,n=r?void 0:arguments[1];if(J(t),Sf(e,function(o){r?(r=!1,n=o):n=t(n,o,o,e)}),r)throw new ll("Reduce of empty set with no initial value");return n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{some:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!0===Sf(e,function(t){if(r(t,t,e))return!0},!0)}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(t){return f(Xf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{union:function(t){return f(Qf,this,ol(t))}});var hl=dt("species"),pl=dt("isConcatSpreadable"),vl=W>=51||!a(function(){var t=[];return t[pl]=!1,t.concat()[0]!==t}),dl=function(t){if(!M(t))return!1;var e=t[pl];return void 0!==e?!!e:ur(t)},gl=!(vl&&(W>=51||!a(function(){var t=[];return(t.constructor={})[hl]=function(){return{foo:1}},1!==t.concat(Boolean).foo})));Ce({target:"Array",proto:!0,arity:1,forced:gl},{concat:function(t){var e,r,n,o,i,a=it(this),u=xr(a,0),s=0;for(e=-1,n=arguments.length;e1?arguments[1]:void 0,n=e.length,o=void 0===r?n:ip(ve(r),n),i=Wr(t);return op(e,o-i.length,o)===i}}),Ze("String","endsWith");var sp=RangeError,cp=String.fromCharCode,fp=String.fromCodePoint,lp=b([].join);Ce({target:"String",stat:!0,arity:1,forced:!!fp&&1!==fp.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],he(e,1114111)!==e)throw new sp(e+" is not a valid code point");r[o]=e<65536?cp(e):cp(55296+((e-=65536)>>10),e%1024+56320)}return lp(r,"")}});var hp=b("".indexOf);Ce({target:"String",proto:!0,forced:!rp("includes")},{includes:function(t){return!!~hp(Wr(j(this)),Wr(tp(t)),arguments.length>1?arguments[1]:void 0)}}),Ze("String","includes"),b(un.String);var pp=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(_),vp=Xc.start;Ce({target:"String",proto:!0,forced:pp},{padStart:function(t){return vp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padStart");var dp=Xc.end;Ce({target:"String",proto:!0,forced:pp},{padEnd:function(t){return dp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padEnd");var gp=b([].push),yp=b([].join);Ce({target:"String",stat:!0},{raw:function(t){var e=k(it(t).raw),r=de(e);if(!r)return"";for(var n=arguments.length,o=[],i=0;;){if(gp(o,Wr(e[i++])),i===r)return yp(o,"");i1?arguments[1]:void 0,e.length)),n=Wr(t);return bp(e,r,r+n.length)===n}}),Ze("String","startsWith");var Op=zt.PROPER,xp=function(t){return a(function(){return!!Mi[t]()||"​…᠎"!=="​…᠎"[t]()||Op&&Mi[t].name!==t})},Rp=_i.start,Pp=xp("trimStart")?function(){return Rp(this)}:"".trimStart;Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==Pp},{trimLeft:Pp}),Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==Pp},{trimStart:Pp}),Ze("String","trimLeft");var Ap=_i.end,jp=xp("trimEnd")?function(){return Ap(this)}:"".trimEnd;Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==jp},{trimRight:jp}),Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==jp},{trimEnd:jp}),Ze("String","trimRight");var kp=Object.getOwnPropertyDescriptor,Ip=function(t){if(!u)return i[t];var e=kp(i,t);return e&&e.value},Tp=dt("iterator"),Mp=!a(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),n="";return t.pathname="c%20d",e.forEach(function(t,r){e.delete("b"),n+=r+t}),r.delete("a",2),r.delete("b",void 0),!e.size&&!u||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Tp]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host}),Lp=TypeError,Up=function(t,e){if(t0;)t[o]=t[--o];o!==i++&&(t[o]=n)}else for(var a=Np(r/2),u=Cp(vo(t,0,a),e),s=Cp(vo(t,a),e),c=u.length,f=s.length,l=0,h=0;l0&&0!=(t&r);r>>=1)e++;return e},pv=function(t){var e=null;switch(t.length){case 1:e=t[0];break;case 2:e=(31&t[0])<<6|63&t[1];break;case 3:e=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:e=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return e>1114111?null:e},vv=function(t){for(var e=(t=nv(t,cv," ")).length,r="",n=0;ne){r+="%",n++;continue}var i=lv(t,n+1);if(i!=i){r+=o,n++;continue}n+=2;var a=hv(i);if(0===a)o=Jp(i);else{if(1===a||a>4){r+="�",n++;continue}for(var u=[i],s=1;se||"%"!==tv(t,n));){var c=lv(t,n+1);if(c!=c){n+=3;break}if(c>191||c<128)break;rv(u,c),n+=2,s++}if(u.length!==a){r+="�";continue}var f=pv(u);null===f?r+="�":o=Qp(f)}}r+=o,n++}return r},dv=/[!'()~]|%20/g,gv={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},yv=function(t){return gv[t]},mv=function(t){return nv(Xp(t),dv,yv)},bv=fn(function(t,e){zp(this,{type:Dp,target:Wp(t).entries,index:0,kind:e})},Bp,function(){var t=qp(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);var n=e[r];switch(t.kind){case"keys":return Pn(n.key,!1);case"values":return Pn(n.value,!1)}return Pn([n.key,n.value],!1)},!0),wv=function(t){this.entries=[],this.url=null,void 0!==t&&(M(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===tv(t,0)?uv(t,1):t:Wr(t)))};wv.prototype={type:Bp,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,r,n,o,i,a,u,s=this.entries,c=Fn(t);if(c)for(r=(e=Dn(t,c)).next;!(n=f(r,e)).done;){if(o=Dn(kt(n.value)),(a=f(i=o.next,o)).done||(u=f(i,o)).done||!f(i,o).done)throw new Yp("Expected sequence with length 2");rv(s,{key:Wr(a.value),value:Wr(u.value)})}else for(var l in t)ut(t,l)&&rv(s,{key:l,value:Wr(t[l])})},parseQuery:function(t){if(t)for(var e,r,n=this.entries,o=av(t,"&"),i=0;i0?arguments[0]:void 0));u||(this.size=t.entries.length)},Ev=Sv.prototype;if(Mo(Ev,{append:function(t,e){var r=Wp(this);Up(arguments.length,2),rv(r.entries,{key:Wr(t),value:Wr(e)}),u||this.length++,r.updateURL()},delete:function(t){for(var e=Wp(this),r=Up(arguments.length,1),n=e.entries,o=Wr(t),i=r<2?void 0:arguments[1],a=void 0===i?i:Wr(i),s=0;se.key?1:-1}),t.updateURL()},forEach:function(t){for(var e,r=Wp(this).entries,n=ar(t,arguments.length>1?arguments[1]:void 0),o=0;o1?Rv(arguments[1]):{})}}),T($p)){var Pv=function(t){return ko(this,Gp),new $p(t,arguments.length>1?Rv(arguments[1]):{})};Gp.constructor=Pv,Pv.prototype=Gp,Ce({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Pv})}}var Av={URLSearchParams:Sv,getState:Wp},jv=URLSearchParams,kv=jv.prototype,Iv=b(kv.append),Tv=b(kv.delete),Mv=b(kv.forEach),Lv=b([].push),Uv=new jv("a=1&a=2&b=3");Uv.delete("a",1),Uv.delete("b",void 0),Uv+""!="a=2"&&ie(kv,"delete",function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return Tv(this,t);var n=[];Mv(this,function(t,e){Lv(n,{key:e,value:t})}),Up(e,1);for(var o,i=Wr(t),a=Wr(r),u=0,s=0,c=!1,f=n.length;uo;)for(var s,c=R(arguments[o++]),l=i?$v(_e(c),i(c)):_e(c),h=l.length,p=0;h>p;)s=l[p++],u&&!f(a,c,s)||(r[s]=c[s]);return r}:qv,Gv=2147483647,Vv=/[^\0-\u007E]/,Yv=/[.\u3002\uFF0E\uFF61]/g,Xv="Overflow: input needs wider integers to process",Jv=RangeError,Qv=b(Yv.exec),Zv=Math.floor,td=String.fromCharCode,ed=b("".charCodeAt),rd=b([].join),nd=b([].push),od=b("".replace),id=b("".split),ad=b("".toLowerCase),ud=function(t){return t+22+75*(t<26)},sd=function(t,e,r){var n=0;for(t=r?Zv(t/700):t>>1,t+=Zv(t/e);t>455;)t=Zv(t/35),n+=36;return Zv(n+36*t/(t+38))},cd=function(t){var e=[];t=function(t){for(var e=[],r=0,n=t.length;r=55296&&o<=56319&&r=i&&nZv((Gv-a)/l))throw new Jv(Xv);for(a+=(f-i)*l,i=f,r=0;rGv)throw new Jv(Xv);if(n===i){for(var h=a,p=36;;){var v=p<=u?1:p>=u+26?26:p-u;if(h?@[\\\]^|]/,qd=/[\0\t\n\r #/:<>?@[\\\]^|]/,Hd=/^[\u0000-\u0020]+/,$d=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Kd=/[\t\n\r]/g,Gd=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)Td(e,t%256),t=md(t/256);return Ed(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r?n:e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=Od(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},Vd={},Yd=Kv({},Vd,{" ":1,'"':1,"<":1,">":1,"`":1}),Xd=Kv({},Yd,{"#":1,"?":1,"{":1,"}":1}),Jd=Kv({},Xd,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Qd=function(t,e){var r=fd(t,0);return r>32&&r<127&&!ut(e,t)?t:encodeURIComponent(t)},Zd={ftp:21,file:null,http:80,https:443,ws:80,wss:443},tg=function(t,e){var r;return 2===t.length&&Sd(Nd,wd(t,0))&&(":"===(r=wd(t,1))||!e&&"|"===r)},eg=function(t){var e;return t.length>1&&tg(kd(t,0,2))&&(2===t.length||"/"===(e=wd(t,2))||"\\"===e||"?"===e||"#"===e)},rg=function(t){return"."===t||"%2e"===Id(t)},ng={},og={},ig={},ag={},ug={},sg={},cg={},fg={},lg={},hg={},pg={},vg={},dg={},gg={},yg={},mg={},bg={},wg={},Sg={},Eg={},Og={},xg=function(t,e,r){var n,o,i,a=Wr(t);if(e){if(o=this.parse(a))throw new gd(o);this.searchParams=null}else{if(void 0!==r&&(n=new xg(r,!0)),o=this.parse(a,null,n))throw new gd(o);(i=vd(new pd)).bindURL(this),this.searchParams=i}};xg.prototype={type:"URL",parse:function(t,e,r){var n,o,i,a,u,s=this,c=e||ng,f=0,l="",h=!1,p=!1,v=!1;for(t=Wr(t),e||(s.scheme="",s.username="",s.password="",s.host=null,s.port=null,s.path=[],s.query=null,s.fragment=null,s.cannotBeABaseURL=!1,t=Pd(t,Hd,""),t=Pd(t,$d,"$1")),t=Pd(t,Kd,""),n=Wn(t);f<=n.length;){switch(o=n[f],c){case ng:if(!o||!Sd(Nd,o)){if(e)return Md;c=ig;continue}l+=Id(o),c=og;break;case og:if(o&&(Sd(Cd,o)||"+"===o||"-"===o||"."===o))l+=Id(o);else{if(":"!==o){if(e)return Md;l="",c=ig,f=0;continue}if(e&&(s.isSpecial()!==ut(Zd,l)||"file"===l&&(s.includesCredentials()||null!==s.port)||"file"===s.scheme&&!s.host))return;if(s.scheme=l,e)return void(s.isSpecial()&&Zd[s.scheme]===s.port&&(s.port=null));l="","file"===s.scheme?c=gg:s.isSpecial()&&r&&r.scheme===s.scheme?c=ag:s.isSpecial()?c=fg:"/"===n[f+1]?(c=ug,f++):(s.cannotBeABaseURL=!0,Rd(s.path,""),c=Sg)}break;case ig:if(!r||r.cannotBeABaseURL&&"#"!==o)return Md;if(r.cannotBeABaseURL&&"#"===o){s.scheme=r.scheme,s.path=vo(r.path),s.query=r.query,s.fragment="",s.cannotBeABaseURL=!0,c=Og;break}c="file"===r.scheme?gg:sg;continue;case ag:if("/"!==o||"/"!==n[f+1]){c=sg;continue}c=lg,f++;break;case ug:if("/"===o){c=hg;break}c=wg;continue;case sg:if(s.scheme=r.scheme,o===Wv)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query;else if("/"===o||"\\"===o&&s.isSpecial())c=cg;else if("?"===o)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query="",c=Eg;else{if("#"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.path.length--,c=wg;continue}s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og}break;case cg:if(!s.isSpecial()||"/"!==o&&"\\"!==o){if("/"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,c=wg;continue}c=hg}else c=lg;break;case fg:if(c=lg,"/"!==o||"/"!==wd(l,f+1))continue;f++;break;case lg:if("/"!==o&&"\\"!==o){c=hg;continue}break;case hg:if("@"===o){h&&(l="%40"+l),h=!0,i=Wn(l);for(var d=0;d65535)return Ud;s.port=s.isSpecial()&&m===Zd[s.scheme]?null:m,l=""}if(e)return;c=bg;continue}return Ud}l+=o;break;case gg:if(s.scheme="file","/"===o||"\\"===o)c=yg;else{if(!r||"file"!==r.scheme){c=wg;continue}switch(o){case Wv:s.host=r.host,s.path=vo(r.path),s.query=r.query;break;case"?":s.host=r.host,s.path=vo(r.path),s.query="",c=Eg;break;case"#":s.host=r.host,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og;break;default:eg(Ed(vo(n,f),""))||(s.host=r.host,s.path=vo(r.path),s.shortenPath()),c=wg;continue}}break;case yg:if("/"===o||"\\"===o){c=mg;break}r&&"file"===r.scheme&&!eg(Ed(vo(n,f),""))&&(tg(r.path[0],!0)?Rd(s.path,r.path[0]):s.host=r.host),c=wg;continue;case mg:if(o===Wv||"/"===o||"\\"===o||"?"===o||"#"===o){if(!e&&tg(l))c=wg;else if(""===l){if(s.host="",e)return;c=bg}else{if(a=s.parseHost(l))return a;if("localhost"===s.host&&(s.host=""),e)return;l="",c=bg}continue}l+=o;break;case bg:if(s.isSpecial()){if(c=wg,"/"!==o&&"\\"!==o)continue}else if(e||"?"!==o)if(e||"#"!==o){if(o!==Wv&&(c=wg,"/"!==o))continue}else s.fragment="",c=Og;else s.query="",c=Eg;break;case wg:if(o===Wv||"/"===o||"\\"===o&&s.isSpecial()||!e&&("?"===o||"#"===o)){if(".."===(u=Id(u=l))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(s.shortenPath(),"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,"")):rg(l)?"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,""):("file"===s.scheme&&!s.path.length&&tg(l)&&(s.host&&(s.host=""),l=wd(l,0)+":"),Rd(s.path,l)),l="","file"===s.scheme&&(o===Wv||"?"===o||"#"===o))for(;s.path.length>1&&""===s.path[0];)Ad(s.path);"?"===o?(s.query="",c=Eg):"#"===o&&(s.fragment="",c=Og)}else l+=Qd(o,Xd);break;case Sg:"?"===o?(s.query="",c=Eg):"#"===o?(s.fragment="",c=Og):o!==Wv&&(s.path[0]+=Qd(o,Vd));break;case Eg:e||"#"!==o?o!==Wv&&("'"===o&&s.isSpecial()?s.query+="%27":s.query+="#"===o?"%23":Qd(o,Vd)):(s.fragment="",c=Og);break;case Og:o!==Wv&&(s.fragment+=Qd(o,Yd))}f++}},parseHost:function(t){var e,r,n;if("["===wd(t,0)){if("]"!==wd(t,t.length-1))return Ld;if(e=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return wd(t,l)};if(":"===h()){if(":"!==wd(t,1))return;l+=2,f=++c}for(;h();){if(8===c)return;if(":"!==h()){for(e=r=0;r<4&&Sd(zd,h());)e=16*e+yd(h(),16),l++,r++;if("."===h()){if(0===r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."===h()&&n<4))return;l++}if(!Sd(_d,h()))return;for(;Sd(_d,h());){if(i=yd(h(),10),null===o)o=i;else{if(0===o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!==n||c++}if(4!==n)return;break}if(":"===h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!==c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!==c)return;return s}(kd(t,1,-1)),!e)return Ld;this.host=e}else if(this.isSpecial()){if(t=function(t){var e,r,n=[],o=id(od(ad(t),Yv,"."),".");for(e=0;e4)return t;for(r=[],n=0;n1&&"0"===wd(o,0)&&(i=Sd(Fd,o)?16:8,o=kd(o,8===i?1:2)),""===o)a=0;else{if(!Sd(10===i?Dd:8===i?Bd:zd,o))return t;a=yd(o,i)}Rd(r,a)}for(n=0;n=bd(256,5-e))return null}else if(a>255)return null;for(u=xd(r),n=0;n1?arguments[1]:void 0,n=ld(e,new xg(t,!1,r));u||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Pg=Rg.prototype,Ag=function(t,e){return{get:function(){return hd(this)[t]()},set:e&&function(t){return hd(this)[e](t)},configurable:!0,enumerable:!0}};if(u&&(so(Pg,"href",Ag("serialize","setHref")),so(Pg,"origin",Ag("getOrigin")),so(Pg,"protocol",Ag("getProtocol","setProtocol")),so(Pg,"username",Ag("getUsername","setUsername")),so(Pg,"password",Ag("getPassword","setPassword")),so(Pg,"host",Ag("getHost","setHost")),so(Pg,"hostname",Ag("getHostname","setHostname")),so(Pg,"port",Ag("getPort","setPort")),so(Pg,"pathname",Ag("getPathname","setPathname")),so(Pg,"search",Ag("getSearch","setSearch")),so(Pg,"searchParams",Ag("getSearchParams")),so(Pg,"hash",Ag("getHash","setHash"))),ie(Pg,"toJSON",function(){return hd(this).serialize()},{enumerable:!0}),ie(Pg,"toString",function(){return hd(this).serialize()},{enumerable:!0}),dd){var jg=dd.createObjectURL,kg=dd.revokeObjectURL;jg&&ie(Rg,"createObjectURL",ar(jg,dd)),kg&&ie(Rg,"revokeObjectURL",ar(kg,dd))}an(Rg,"URL"),Ce({global:!0,constructor:!0,forced:!Mp,sham:!u},{URL:Rg});var Ig=L("URL"),Tg=Mp&&a(function(){Ig.canParse()}),Mg=a(function(){return 1!==Ig.canParse.length});Ce({target:"URL",stat:!0,forced:!Tg||Mg},{canParse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return!!new Ig(r,n)}catch(t){return!1}}});var Lg=L("URL");Ce({target:"URL",stat:!0,forced:!Mp},{parse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return new Lg(r,n)}catch(t){return null}}}),Ce({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return f(URL.prototype.toString,this)}});var Ug=WeakMap.prototype,Ng={WeakMap:WeakMap,set:b(Ug.set),get:b(Ug.get),has:b(Ug.has),remove:b(Ug.delete)},Cg=Ng.has,_g=function(t){return Cg(t),t},Fg=Ng.get,Bg=Ng.has,Dg=Ng.set;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{emplace:function(t,e){var r,n,o=_g(this);return Bg(o,t)?(r=Fg(o,t),"update"in e&&(r=e.update(r,t,o),Dg(o,t,r)),r):(n=e.insert(t,o),Dg(o,t,n),n)}}),Ce({target:"WeakMap",stat:!0,forced:!0},{from:ei(Ng.WeakMap,Ng.set,!0)}),Ce({target:"WeakMap",stat:!0,forced:!0},{of:ri(Ng.WeakMap,Ng.set,!0)});var zg=Ng.remove;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=_g(this),r=!0,n=0,o=arguments.length;n2&&(n=r,M(o=arguments[2])&&"cause"in o&&_t(n,"cause",o.cause));var s=[];return Ao(t,ny,{that:s}),_t(r,"errors",s),r};dn?dn(oy,ry):Ae(oy,ry,{name:!0});var iy=oy.prototype=Ve(ry.prototype,{constructor:d(1,oy),message:d(1,""),name:d(1,"AggregateError")});Ce({global:!0,constructor:!0,arity:2},{AggregateError:oy});var ay,uy,sy,cy,fy=function(t){return _.slice(0,t.length)===t},ly=fy("Bun/")?"BUN":fy("Cloudflare-Workers")?"CLOUDFLARE":fy("Deno/")?"DENO":fy("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===E(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST",hy="NODE"===ly,py=/(?:ipad|iphone|ipod).*applewebkit/i.test(_),vy=i.setImmediate,dy=i.clearImmediate,gy=i.process,yy=i.Dispatch,my=i.Function,by=i.MessageChannel,wy=i.String,Sy=0,Ey={},Oy="onreadystatechange";a(function(){ay=i.location});var xy=function(t){if(ut(Ey,t)){var e=Ey[t];delete Ey[t],e()}},Ry=function(t){return function(){xy(t)}},Py=function(t){xy(t.data)},Ay=function(t){i.postMessage(wy(t),ay.protocol+"//"+ay.host)};vy&&dy||(vy=function(t){Up(arguments.length,1);var e=T(t)?t:my(t),r=vo(arguments,1);return Ey[++Sy]=function(){Ra(e,void 0,r)},uy(Sy),Sy},dy=function(t){delete Ey[t]},hy?uy=function(t){gy.nextTick(Ry(t))}:yy&&yy.now?uy=function(t){yy.now(Ry(t))}:by&&!py?(cy=(sy=new by).port2,sy.port1.onmessage=Py,uy=ar(cy.postMessage,cy)):i.addEventListener&&T(i.postMessage)&&!i.importScripts&&ay&&"file:"!==ay.protocol&&!a(Ay)?(uy=Ay,i.addEventListener("message",Py,!1)):uy=Oy in Et("script")?function(t){De.appendChild(Et("script"))[Oy]=function(){De.removeChild(this),xy(t)}}:function(t){setTimeout(Ry(t),0)});var jy={set:vy,clear:dy},ky=function(){this.head=null,this.tail=null};ky.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var Iy,Ty,My,Ly,Uy,Ny=ky,Cy=/ipad|iphone|ipod/i.test(_)&&"undefined"!=typeof Pebble,_y=/web0s(?!.*chrome)/i.test(_),Fy=jy.set,By=i.MutationObserver||i.WebKitMutationObserver,Dy=i.document,zy=i.process,Wy=i.Promise,qy=Ip("queueMicrotask");if(!qy){var Hy=new Ny,$y=function(){var t,e;for(hy&&(t=zy.domain)&&t.exit();e=Hy.get();)try{e()}catch(t){throw Hy.head&&Iy(),t}t&&t.enter()};py||hy||_y||!By||!Dy?!Cy&&Wy&&Wy.resolve?((Ly=Wy.resolve(void 0)).constructor=Wy,Uy=ar(Ly.then,Ly),Iy=function(){Uy($y)}):hy?Iy=function(){zy.nextTick($y)}:(Fy=ar(Fy,i),Iy=function(){Fy($y)}):(Ty=!0,My=Dy.createTextNode(""),new By($y).observe(My,{characterData:!0}),Iy=function(){My.data=Ty=!Ty}),qy=function(t){Hy.head||Iy(),Hy.add(t)}}var Ky,Gy,Vy,Yy=qy,Xy=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Jy=i.Promise,Qy=dt("species"),Zy=!1,tm=T(i.PromiseRejectionEvent),em=Ue("Promise",function(){var t=Kt(Jy),e=t!==String(Jy);if(!e&&66===W)return!0;if(!W||W<51||!/native code/.test(t)){var r=new Jy(function(t){t(1)}),n=function(t){t(function(){},function(){})};if((r.constructor={})[Qy]=n,!(Zy=r.then(function(){})instanceof n))return!0}return!(e||"BROWSER"!==ly&&"DENO"!==ly||tm)}),rm={CONSTRUCTOR:em,REJECTION_EVENT:tm,SUBCLASSING:Zy},nm=TypeError,om=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new nm("Bad Promise constructor");e=t,r=n}),this.resolve=J(e),this.reject=J(r)},im={f:function(t){return new om(t)}},am=jy.set,um="Promise",sm=rm.CONSTRUCTOR,cm=rm.REJECTION_EVENT,fm=rm.SUBCLASSING,lm=ne.getterFor(um),hm=ne.set,pm=Jy&&Jy.prototype,vm=Jy,dm=pm,gm=i.TypeError,ym=i.document,mm=i.process,bm=im.f,wm=bm,Sm=!!(ym&&ym.createEvent&&i.dispatchEvent),Em="unhandledrejection",Om=function(t){var e;return!(!M(t)||!T(e=t.then))&&e},xm=function(t,e){var r,n,o,i=e.value,a=1===e.state,u=a?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&km(e),e.rejection=1),!0===u?r=i:(l&&l.enter(),r=u(i),l&&(l.exit(),o=!0)),r===t.promise?c(new gm("Promise-chain cycle")):(n=Om(r))?f(n,r,s,c):s(r)):c(i)}catch(t){l&&!o&&l.exit(),c(t)}},Rm=function(t,e){t.notified||(t.notified=!0,Yy(function(){for(var r,n=t.reactions;r=n.get();)xm(r,t);t.notified=!1,e&&!t.rejection&&Am(t)}))},Pm=function(t,e,r){var n,o;Sm?((n=ym.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),i.dispatchEvent(n)):n={promise:e,reason:r},!cm&&(o=i["on"+t])?o(n):t===Em&&function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}("Unhandled promise rejection",r)},Am=function(t){f(am,i,function(){var e,r=t.facade,n=t.value;if(jm(t)&&(e=Xy(function(){hy?mm.emit("unhandledRejection",n,r):Pm(Em,r,n)}),t.rejection=hy||jm(t)?2:1,e.error))throw e.value})},jm=function(t){return 1!==t.rejection&&!t.parent},km=function(t){f(am,i,function(){var e=t.facade;hy?mm.emit("rejectionHandled",e):Pm("rejectionhandled",e,t.value)})},Im=function(t,e,r){return function(n){t(e,n,r)}},Tm=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,Rm(t,!0))},Mm=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new gm("Promise can't be resolved itself");var n=Om(e);n?Yy(function(){var r={done:!1};try{f(n,e,Im(Mm,r,t),Im(Tm,r,t))}catch(e){Tm(r,e,t)}}):(t.value=e,t.state=1,Rm(t,!1))}catch(e){Tm({done:!1},e,t)}}};if(sm&&(vm=function(t){ko(this,dm),J(t),f(Ky,this);var e=lm(this);try{t(Im(Mm,e),Im(Tm,e))}catch(t){Tm(e,t)}},(Ky=function(t){hm(this,{type:um,done:!1,notified:!1,parent:!1,reactions:new Ny,rejection:!1,state:0,value:null})}).prototype=ie(dm=vm.prototype,"then",function(t,e){var r=lm(this),n=bm(Cc(this,vm));return r.parent=!0,n.ok=!T(t)||t,n.fail=T(e)&&e,n.domain=hy?mm.domain:void 0,0===r.state?r.reactions.add(n):Yy(function(){xm(n,r)}),n.promise}),Gy=function(){var t=new Ky,e=lm(t);this.promise=t,this.resolve=Im(Mm,e),this.reject=Im(Tm,e)},im.f=bm=function(t){return t===vm||void 0===t?new Gy(t):wm(t)},T(Jy)&&pm!==Object.prototype)){Vy=pm.then,fm||ie(pm,"then",function(t,e){var r=this;return new vm(function(t,e){f(Vy,r,t,e)}).then(t,e)},{unsafe:!0});try{delete pm.constructor}catch(t){}dn&&dn(pm,dm)}Ce({global:!0,constructor:!0,wrap:!0,forced:sm},{Promise:vm}),an(vm,um,!1),Uo(um);var Lm=rm.CONSTRUCTOR||!Gn(function(t){Jy.all(t).then(void 0,function(){})});Ce({target:"Promise",stat:!0,forced:Lm},{all:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),i=[],a=0,u=1;Ao(t,function(t){var s=a++,c=!1;u++,f(r,e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise}});var Um=Jy&&Jy.prototype;if(Ce({target:"Promise",proto:!0,forced:rm.CONSTRUCTOR,real:!0},{catch:function(t){return this.then(void 0,t)}}),T(Jy)){var Nm=L("Promise").prototype.catch;Um.catch!==Nm&&ie(Um,"catch",Nm,{unsafe:!0})}Ce({target:"Promise",stat:!0,forced:Lm},{race:function(t){var e=this,r=im.f(e),n=r.reject,o=Xy(function(){var o=J(e.resolve);Ao(t,function(t){f(o,e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{reject:function(t){var e=im.f(this);return(0,e.reject)(t),e.promise}});var Cm=function(t,e){if(kt(t),M(e)&&e.constructor===t)return e;var r=im.f(t);return(0,r.resolve)(e),r.promise};Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{resolve:function(t){return Cm(this,t)}}),Ce({target:"Promise",stat:!0,forced:Lm},{allSettled:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),o=[],i=0,a=1;Ao(t,function(t){var u=i++,s=!1;a++,f(r,e,t).then(function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var _m="No one promise resolved";Ce({target:"Promise",stat:!0,forced:Lm},{any:function(t){var e=this,r=L("AggregateError"),n=im.f(e),o=n.resolve,i=n.reject,a=Xy(function(){var n=J(e.resolve),a=[],u=0,s=1,c=!1;Ao(t,function(t){var l=u++,h=!1;s++,f(n,e,t).then(function(t){h||c||(c=!0,o(t))},function(t){h||c||(h=!0,a[l]=t,--s||i(new r(a,_m)))})}),--s||i(new r(a,_m))});return a.error&&i(a.value),n.promise}}),Ce({target:"Promise",stat:!0},{withResolvers:function(){var t=im.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var Fm=Jy&&Jy.prototype,Bm=!!Jy&&a(function(){Fm.finally.call({then:function(){}},function(){})});if(Ce({target:"Promise",proto:!0,real:!0,forced:Bm},{finally:function(t){var e=Cc(this,L("Promise")),r=T(t);return this.then(r?function(r){return Cm(e,t()).then(function(){return r})}:t,r?function(r){return Cm(e,t()).then(function(){throw r})}:t)}}),T(Jy)){var Dm=L("Promise").prototype.finally;Fm.finally!==Dm&&ie(Fm,"finally",Dm,{unsafe:!0})}var zm=i.Promise,Wm=!1,qm=!zm||!zm.try||Xy(function(){zm.try(function(t){Wm=8===t},8)}).error||!Wm;Ce({target:"Promise",stat:!0,forced:qm},{try:function(t){var e=arguments.length>1?vo(arguments,1):[],r=im.f(this),n=Xy(function(){return Ra(J(t),void 0,e)});return(n.error?r.reject:r.resolve)(n.value),r.promise}}),Ze("Promise","finally");var Hm="URLSearchParams"in self,$m="Symbol"in self&&"iterator"in Symbol,Km="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),Gm="FormData"in self,Vm="ArrayBuffer"in self;if(Vm)var Ym=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],Xm=ArrayBuffer.isView||function(t){return t&&Ym.indexOf(Object.prototype.toString.call(t))>-1};function Jm(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function Qm(t){return"string"!=typeof t&&(t=String(t)),t}function Zm(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return $m&&(e[Symbol.iterator]=function(){return e}),e}function tb(t){this.map={},t instanceof tb?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function eb(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function rb(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function nb(t){var e=new FileReader,r=rb(e);return e.readAsArrayBuffer(t),r}function ob(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function ib(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:Km&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:Gm&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:Hm&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():Vm&&Km&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=ob(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Vm&&(ArrayBuffer.prototype.isPrototypeOf(t)||Xm(t))?this._bodyArrayBuffer=ob(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Hm&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},Km&&(this.blob=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?eb(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(nb)}),this.text=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=rb(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function sb(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function cb(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new tb(e.headers),this.url=e.url||"",this._initBody(t)}ub.prototype.clone=function(){return new ub(this,{body:this._bodyInit})},ib.call(ub.prototype),ib.call(cb.prototype),cb.prototype.clone=function(){return new cb(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new tb(this.headers),url:this.url})},cb.error=function(){var t=new cb(null,{status:0,statusText:""});return t.type="error",t};var fb=[301,302,303,307,308];cb.redirect=function(t,e){if(-1===fb.indexOf(e))throw new RangeError("Invalid status code");return new cb(null,{status:e,headers:{location:t}})};var lb=self.DOMException;try{new lb}catch(t){(lb=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),lb.prototype.constructor=lb}function hb(t,e){return new Promise(function(r,n){var o=new ub(t,e);if(o.signal&&o.signal.aborted)return n(new lb("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new tb,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new cb("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new lb("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&Km&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}hb.polyfill=!0,self.fetch||(self.fetch=hb,self.Headers=tb,self.Request=ub,self.Response=cb);var pb=Object.getOwnPropertySymbols,vb=Object.prototype.hasOwnProperty,db=Object.prototype.propertyIsEnumerable,gb=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),i=1;i{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return r}});let i=e.r(32061);function r({reason:e,children:t}){if("u"{"use strict";function i(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return i}})},52157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return s}});let i=e.r(43476),r=e.r(74080),a=e.r(63599),o=e.r(9885),l=e.r(43369);function s({moduleIds:e}){if("u">typeof window)return null;let t=a.workAsyncStorage.getStore();if(void 0===t)return null;let n=[];if(t.reactLoadableManifest&&e){let i=t.reactLoadableManifest;for(let t of e){if(!i[t])continue;let e=i[t].files;n.push(...e)}}if(0===n.length)return null;let c=(0,l.getAssetTokenQuery)();return(0,i.jsx)(i.Fragment,{children:n.map(e=>{let n=`${t.assetPrefix}/_next/${(0,o.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,i.jsx)("link",{precedence:"dynamic",href:n,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,r.preload)(n,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return c}});let i=e.r(43476),r=e.r(71645),a=e.r(67585),o=e.r(52157);function l(e){return{default:e&&"default"in e?e.default:e}}let s={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},c=function(e){let t={...s,...e},n=(0,r.lazy)(()=>t.loader().then(l)),c=t.loading;function m(e){let l=c?(0,i.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,s=!t.ssr||!!t.loading,m=s?r.Suspense:r.Fragment,d=t.ssr?(0,i.jsxs)(i.Fragment,{children:["u"{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return r}});let i=e.r(55682)._(e.r(69093));function r(e,t){let n={};"function"==typeof e&&(n.loader=e);let r={...n,...t};return(0,i.default)({...r,modules:r.loadableGenerated?.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},58829,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(74080);function r({from:e,to:i,duration:a=2e3,decimals:o=0,suffix:l=""}){let[s,c]=(0,n.useState)(e);return(0,n.useEffect)(()=>{let t=null,n=r=>{t||(t=r);let o=Math.min((r-t)/a,1);c(o*(i-e)+e),o<1&&window.requestAnimationFrame(n)};window.requestAnimationFrame(n)},[e,i,a]),(0,t.jsxs)(t.Fragment,{children:[s.toFixed(o),l]})}e.s(["default",0,function(){(0,i.preload)("/images/miletruth-bg.webp",{as:"image"});let[e,a]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{requestAnimationFrame(()=>a(!0))},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + /* ── Hero wrapper: column layout, zero gap between hero + stats ── */ + .miletruth-hero .elementor-element-86f3204 { + display: flex; + flex-direction: column; + gap: 0; + margin: 0; + padding: 0 20px; + } + + /* ── Hero slider card ── */ + .miletruth-hero-container { + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.15) 55%, rgba(0, 0, 0, 0.3) 100%), url('/images/miletruth-bg.webp') !important; + background-size: cover !important; + background-position: center !important; + background-repeat: no-repeat !important; + /* Match the home page hero card (800px) so MileTruth has the same visual + presence on large desktop, MacBook M1/Pro, and standard laptops. */ + min-height: 800px; + display: flex; + flex-direction: column; + justify-content: center; + border-radius: 25px 25px 0 0; + margin-top: 20px; + padding: 100px 0; + } + .miletruth-hero-container::before { + display: none !important; + } + .miletruth-content { + position: relative; + z-index: 2; + width: 100%; + padding: 0 !important; + box-sizing: border-box; + } + .miletruth-hero .content-slider-item-heading, + .miletruth-hero .content-slider-item-heading .heading-content { + color: rgba(255, 255, 255, 0.96) !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + font-size: clamp(34px, 5.5vw, 72px) !important; + font-weight: 850 !important; + line-height: 1.05 !important; + letter-spacing: -1.5px !important; + text-transform: uppercase !important; + text-align: center !important; + display: block; + } + .miletruth-hero .content-slider-item-text { + margin-top: 22px !important; + text-align: center !important; + } + .miletruth-hero .content-slider-item-text p { + color: rgba(255, 255, 255, 0.72) !important; + font-family: var(--font-manrope), "Manrope", sans-serif !important; + font-size: clamp(17px, 1.6vw, 23px) !important; + font-weight: 500 !important; + line-height: 1.65 !important; + margin: 0 auto !important; + max-width: 820px; + } + .miletruth-hero .slide-content { + display: flex !important; + flex-direction: column !important; + align-items: center !important; + justify-content: center !important; + text-align: center !important; + width: 100% !important; + height: 100% !important; + padding: 0 15px !important; + box-sizing: border-box !important; + } + .miletruth-hero .slide-content, + .miletruth-hero .slide-content-inner { + /* These carry inherited 20px padding from the slider theme with + content-box sizing, so width:100% + padding overflowed the viewport + by ~40px and pushed the hero off-center. Force border-box so the + padding is contained and the block stays centered. */ + box-sizing: border-box !important; + } + .miletruth-hero .slide-content-inner { + display: flex !important; + flex-direction: column !important; + align-items: center !important; + justify-content: center !important; + text-align: center !important; + margin-left: auto !important; + margin-right: auto !important; + max-width: 1000px !important; + width: 100% !important; + } + .miletruth-hero .content-slider-item-heading, + .miletruth-hero .content-slider-item-heading .heading-content { + text-align: center !important; + display: block !important; + width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + } + .miletruth-hero .content-slider-item-text { + display: flex !important; + justify-content: center !important; + width: 100% !important; + margin-top: 23px !important; + text-align: center !important; + } + .miletruth-hero .text-content { + text-align: center !important; + max-width: 800px !important; + margin: 0 auto !important; + } + /* The "logico" slider reveal animation leaves these at opacity:0 until + its JS runs (absent in this rebuild), hiding the heading + subtitle. + Force them visible. */ + .miletruth-hero .content-slider-item-heading, + .miletruth-hero .content-slider-item-text, + .miletruth-hero .logico-content-wrapper-1, + .miletruth-hero .logico-content-wrapper-2 { + opacity: 1 !important; + transform: none !important; + visibility: visible !important; + } + + /* ══════════════════════════════════════════════════════════════════ + Stats bar — dark rounded card overlapping the hero bottom + ══════════════════════════════════════════════════════════════════ */ + .miletruth-hero .elementor-element-8e5c81e { + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + width: 100% !important; + margin: -25px 0 0 0 !important; + background-color: #1F1F1F !important; + border-radius: 25px !important; + padding: 40px 0 !important; + position: relative !important; + z-index: 1 !important; + } + .miletruth-hero .elementor-element-8e5c81e > .e-con-inner { + width: 100% !important; + max-width: 1440px !important; + height: auto !important; + margin: 0 auto !important; + padding: 0 40px !important; + flex-grow: 0 !important; + box-sizing: border-box !important; + } + + /* 4-col grid for counter widgets — rows size to content (not 1fr of the + container) so the counters aren't parked at the top of a tall row. */ + .miletruth-hero .elementor-element-628123a { + display: grid !important; + grid-template-columns: repeat(4, 1fr) !important; + grid-template-rows: auto !important; + height: auto !important; + gap: 40px !important; + width: 100% !important; + justify-items: start !important; + align-items: start !important; + align-content: start !important; + } + + /* Counter: title on top, number below, left-aligned */ + .miletruth-hero .elementor-counter { + display: flex !important; + flex-direction: column !important; + align-items: flex-start !important; + text-align: left !important; + } + + /* Counter title — above the number */ + .miletruth-hero .elementor-counter-title { + font-family: var(--font-manrope), "Manrope", sans-serif !important; + font-size: 20px !important; + font-weight: 600 !important; + line-height: 1.3em !important; + color: #FFFFFF !important; + margin-bottom: 12px !important; + text-transform: none !important; + } + + /* Counter number wrapper — centered */ + .miletruth-hero .elementor-counter-number-wrapper { + font-family: var(--font-space-grotesk), "Space Grotesk", var(--font-manrope), "Manrope", sans-serif !important; + font-size: clamp(48px, 6.5vw, 100px) !important; + font-weight: 700 !important; + line-height: 1em !important; + color: #C01227 !important; + letter-spacing: -0.03em !important; + display: flex !important; + align-items: baseline !important; + justify-content: flex-start !important; + } + .miletruth-hero .elementor-counter-number { + color: #C01227 !important; + font-size: inherit !important; + font-weight: inherit !important; + } + .miletruth-hero .elementor-counter-number-suffix { + color: #C01227 !important; + font-size: inherit !important; + font-weight: inherit !important; + letter-spacing: -0.03em !important; + } + + /* ── Responsive ── */ + @media (max-width: 1200px) { + .miletruth-hero .content-slider-item-heading, + .miletruth-hero .content-slider-item-heading .heading-content { + font-size: 60px !important; + } + } + @media (max-width: 1024px) { + .miletruth-hero .elementor-element-86f3204 { + padding: 0 10px !important; + } + .miletruth-hero-container { + min-height: 600px; + padding: 80px 0 !important; + } + .miletruth-hero .elementor-element-8e5c81e { + padding: 40px 0 !important; + } + .miletruth-hero .elementor-element-628123a { + grid-template-columns: repeat(2, 1fr) !important; + gap: 50px 40px !important; + } + .miletruth-hero .content-slider-item-heading, + .miletruth-hero .content-slider-item-heading .heading-content { + font-size: 50px !important; + line-height: 1.1 !important; + } + } + @media (max-width: 768px) { + .miletruth-hero .content-slider-item-heading, + .miletruth-hero .content-slider-item-heading .heading-content { + font-size: 40px !important; + line-height: 1.12 !important; + } + .miletruth-hero .content-slider-item-text p { + font-size: 16px !important; + } + } + @media (max-width: 580px) { + .miletruth-hero-container { + min-height: 500px; + padding: 60px 0 !important; + } + .miletruth-hero .elementor-element-86f3204 { + padding: 0 10px !important; + } + /* Collapse the nested horizontal padding (was 40px + 40px on top of the + 12px wrapper) — at 320px that left only ~136px for text and the long + heading words overflowed, causing horizontal scroll + off-center look. */ + .miletruth-content { + padding: 0 !important; + } + .miletruth-hero .slide-content { + padding: 0 15px !important; + } + .miletruth-hero .elementor-element-8e5c81e { + padding: 30px 0 !important; + border-radius: 20px !important; + } + .miletruth-hero .elementor-element-8e5c81e > .e-con-inner { + padding: 0 20px !important; + } + .miletruth-hero .elementor-element-628123a { + grid-template-columns: 1fr !important; + gap: 36px !important; + /* Single column on mobile → center each stat in the card */ + justify-items: center !important; + } + .miletruth-hero .elementor-counter { + align-items: center !important; + text-align: center !important; + } + .miletruth-hero .elementor-counter-number-wrapper { + justify-content: center !important; + } + .miletruth-hero .content-slider-item-heading, + .miletruth-hero .content-slider-item-heading .heading-content { + font-size: clamp(26px, 8vw, 32px) !important; + letter-spacing: -0.5px !important; + /* never let a single long word push past the viewport */ + overflow-wrap: break-word; + word-break: break-word; + } + } + `}}),(0,t.jsx)("div",{className:"elementor-63 miletruth-hero",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-86f3204 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"86f3204","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"miletruth-hero-container",children:(0,t.jsx)("div",{className:"e-con-inner miletruth-content",children:(0,t.jsx)("div",{className:"logico-content-slider-widget",children:(0,t.jsx)("div",{className:"content-slider-wrapper",children:(0,t.jsx)("div",{className:"content-slider-container",children:(0,t.jsx)("div",{className:"content-slider owl-carousel owl-theme",children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-6867061 slide-style-standard",children:(0,t.jsx)("div",{className:"slide-content",style:{paddingLeft:0,paddingRight:0},children:(0,t.jsxs)("div",{className:"slide-content-inner",children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",children:(0,t.jsxs)("span",{className:"heading-content",children:["The Only AI Built",(0,t.jsx)("br",{}),"Exclusively for Logistics"]})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",children:(0,t.jsx)("div",{className:"text-content",children:(0,t.jsx)("p",{children:"Optimizes every stage of the delivery journey for maximum efficiency."})})})]})})})})})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-8e5c81e e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"8e5c81e","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',children:(0,t.jsx)("div",{className:"e-con-inner",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-628123a e-con-full e-grid cut-corner-no sticky-container-off e-con e-child","data-id":"628123a","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-1da88b5 elementor-widget elementor-widget-counter","data-id":"1da88b5","data-element_type":"widget","data-e-type":"widget","data-widget_type":"counter.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-counter",children:[(0,t.jsx)("div",{className:"elementor-counter-title",children:"SLA Compliance"}),(0,t.jsxs)("div",{className:"elementor-counter-number-wrapper",children:[(0,t.jsx)("span",{className:"elementor-counter-number",children:e?(0,t.jsx)(r,{from:1,to:99.9,decimals:1,suffix:""}):"1"}),(0,t.jsx)("span",{className:"elementor-counter-number-suffix",children:" %"})]})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-1da88b5 elementor-widget elementor-widget-counter","data-id":"1da88b5-2","data-element_type":"widget","data-e-type":"widget","data-widget_type":"counter.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-counter",children:[(0,t.jsx)("div",{className:"elementor-counter-title",children:"Distance Saved"}),(0,t.jsxs)("div",{className:"elementor-counter-number-wrapper",children:[(0,t.jsx)("span",{className:"elementor-counter-number",children:e?(0,t.jsx)(r,{from:1,to:42,decimals:0,suffix:""}):"1"}),(0,t.jsx)("span",{className:"elementor-counter-number-suffix",children:" %"})]})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-1da88b5 elementor-widget elementor-widget-counter","data-id":"1da88b5-3","data-element_type":"widget","data-e-type":"widget","data-widget_type":"counter.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-counter",children:[(0,t.jsx)("div",{className:"elementor-counter-title",children:"Fewer Vehicles"}),(0,t.jsxs)("div",{className:"elementor-counter-number-wrapper",children:[(0,t.jsx)("span",{className:"elementor-counter-number",children:e?(0,t.jsx)(r,{from:1,to:37,decimals:0,suffix:""}):"1"}),(0,t.jsx)("span",{className:"elementor-counter-number-suffix",children:" %"})]})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-a1cf3d4 elementor-widget elementor-widget-counter","data-id":"a1cf3d4","data-element_type":"widget","data-e-type":"widget","data-widget_type":"counter.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-counter",children:[(0,t.jsx)("div",{className:"elementor-counter-title",children:"Dispatch Latency"}),(0,t.jsxs)("div",{className:"elementor-counter-number-wrapper",children:[(0,t.jsx)("span",{className:"elementor-counter-number",children:e?(0,t.jsx)(r,{from:1,to:45,decimals:0,suffix:""}):"45"}),(0,t.jsx)("span",{className:"elementor-counter-number-suffix",children:"ms"})]})]})})})]})})})]})})]})}])},76756,e=>{"use strict";var t=e.i(43476),n=e.i(14224),i=e.i(71645),r=e.i(70703);let a=(0,r.default)(()=>e.A(49712),{loadableGenerated:{modules:[29539]},ssr:!1}),o=(0,r.default)(()=>e.A(40999),{loadableGenerated:{modules:[39184]},ssr:!1}),l={optimization:"#020617",logistics:"#08080c"},s={optimization:{center:.78,amp:.14,speed:.5,still:.85},logistics:{center:.5,amp:.13,speed:.4,still:.52}};function c({variant:e,ariaLabel:n}){let r=(0,i.useRef)(null),m=(0,i.useRef)(s[e].still),[d,p]=(0,i.useState)(!1),[u,h]=(0,i.useState)(!1),[f,g]=(0,i.useState)(!1),[x,b]=(0,i.useState)(!1),[v,w]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let e=window.matchMedia("(max-width: 767px)"),t=window.matchMedia("(min-width: 768px) and (max-width: 1024px)"),n=window.matchMedia("(prefers-reduced-motion: reduce)"),i=()=>{g(e.matches),b(t.matches),w(n.matches)};return i(),e.addEventListener("change",i),t.addEventListener("change",i),n.addEventListener("change",i),()=>{e.removeEventListener("change",i),t.removeEventListener("change",i),n.removeEventListener("change",i)}},[]),(0,i.useEffect)(()=>{let e=r.current;if(!e)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(p(!0),h(!0),t.disconnect())},{rootMargin:"60% 0px"}),n=new IntersectionObserver(e=>h(e.some(e=>e.isIntersecting)),{rootMargin:"10% 0px"});return t.observe(e),n.observe(e),()=>{t.disconnect(),n.disconnect()}},[]),(0,i.useEffect)(()=>{let t=s[e];if(v){m.current=t.still;return}if(!u)return;let n=0,i=()=>{let e=performance.now()/1e3;m.current=t.center+Math.sin(e*t.speed)*t.amp,n=requestAnimationFrame(i)};return n=requestAnimationFrame(i),()=>cancelAnimationFrame(n)},[e,v,u]),(0,t.jsxs)("div",{ref:r,className:"wf-scene",role:"img","aria-label":n??"DoorMile 3D logistics scene",style:{background:l[e]},children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .wf-scene { + position: relative; + width: 100%; + /* Compact, fixed-ratio media panel — replaces the multi-viewport pinned + scroll experience so the workflow is dramatically shorter. */ + aspect-ratio: 4 / 3; + border-radius: 16px; + overflow: hidden; + } + .wf-scene__canvas { position: absolute; inset: 0; } + .wf-scene__canvas canvas { display: block; width: 100% !important; height: 100% !important; } + @media (max-width: 991px) { + .wf-scene { aspect-ratio: 16 / 10; } + } + /* Phones: shorter scene panel (~17% less tall than the old 4/3) so the + card + KPI bar are reached sooner. The closer mobile camera framing + keeps the depot/routes/vehicles readable in the reduced height. */ + @media (max-width: 480px) { + .wf-scene { aspect-ratio: 16 / 10; } + } + `}}),(0,t.jsx)("div",{className:"wf-scene__canvas",children:d&&("optimization"===e?(0,t.jsx)(a,{progress:m,reduced:v,isMobile:f,isTablet:x,active:u}):(0,t.jsx)(o,{progress:m,reduced:v,isMobile:f,active:u}))})]})}let m={accent:"#00E5FF",accent2:"#14B8A6",glow:"rgba(0,229,255,0.18)"},d=[{value:42,suffix:"%",label:"Distance Saved"},{value:28,suffix:"%",label:"Faster Routes"},{value:31,suffix:"%",label:"Lower Cost"},{value:99.9,decimals:1,suffix:"%",label:"On-Time"}],p=e=>(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e}),u=[{icon:p((0,t.jsx)("polygon",{points:"3 11 22 2 13 21 11 13 3 11"})),title:"Route Optimization",desc:"AI selects the most efficient path across every zone."},{icon:p((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7"}),(0,t.jsx)("polyline",{points:"16 17 22 17 22 11"})]})),title:"Distance Reduction",desc:"Same volume delivered with a leaner, better-used fleet."},{icon:p((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M12 14l4-4"}),(0,t.jsx)("path",{d:"M3.34 19a10 10 0 1 1 17.32 0"})]})),title:"Fleet Efficiency",desc:"Higher utilisation and lower operating cost."},{icon:p((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"}),(0,t.jsx)("polyline",{points:"9 12 11 14 15 10"})]})),title:"SLA Performance",desc:"Real-time correction keeps deliveries on time."}],h=[{value:"-42%",label:"DISTANCE SAVED"},{value:"-37%",label:"FEWER VEHICLES"}];e.s(["default",0,function(){return(0,t.jsx)(n.default,{ariaLabel:"Workflow 1 — Performance",gapTop:!0,gapBottom:!0,bannerImage:"/images/mile-1.webp",cardTitle:"OPTIMIZE EVERY MILE",cardSubtitle:"Cut travel distance, reduce operating cost, and improve fleet productivity across every route.",eyebrow:"/ Performance /",titleLead:"SMARTER ROUTES. ",titleAccent:"LOWER COSTS.",mediaSlot:(0,t.jsx)(c,{variant:"optimization",ariaLabel:"Live route optimization engine"}),metrics:d,features:u,cardsHeading:"Performance Insight",cardsTheme:m,badges:h})}],76756)},38730,e=>{"use strict";var t=e.i(43476),n=e.i(14224);let i={accent:"#E2354A",accent2:"#C01227",glow:"rgba(226,53,74,0.2)"},r=[{value:45,suffix:"ms",label:"Inference"},{value:12,suffix:"+",label:"Strategies"},{value:99.9,decimals:1,suffix:"%",label:"SLA Met"},{value:24,suffix:"/7",label:"Adaptive"}],a=e=>(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e}),o=[{icon:a((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("polygon",{points:"12 2 2 7 12 12 22 7 12 2"}),(0,t.jsx)("polyline",{points:"2 17 12 22 22 17"}),(0,t.jsx)("polyline",{points:"2 12 12 17 22 12"})]})),title:"Generate Routes",desc:"Many strategies explored per dispatch window."},{icon:a((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),(0,t.jsx)("polyline",{points:"22 4 12 14.01 9 11.01"})]})),title:"Check Constraints",desc:"Battery, capacity, distance and time validated."},{icon:a((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("line",{x1:"6",y1:"20",x2:"6",y2:"14"}),(0,t.jsx)("line",{x1:"12",y1:"20",x2:"12",y2:"4"}),(0,t.jsx)("line",{x1:"18",y1:"20",x2:"18",y2:"10"})]})),title:"Score & Compare",desc:"Plans ranked by total cost in parallel."},{icon:a((0,t.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})),title:"Select Best Plan",desc:"SLA-first plan locked in and dispatched."}],l=[{value:"45ms",label:"INFERENCE"},{value:"100%",label:"SLA-FIRST"}];e.s(["default",0,function(){return(0,t.jsx)(n.default,{ariaLabel:"Workflow 2 — Innovation",gapBottom:!0,bannerImage:"/images/mid-mile-approach.webp",cardTitle:"CHOOSE THE BEST PLAN",cardSubtitle:"Analyze thousands of route possibilities and automatically select the most efficient delivery strategy.",eyebrow:"/ Innovation /",titleLead:"MANY STRATEGIES. ",titleAccent:"ONE BEST PLAN.",image:"/videos/workflow-2-routing.mp4",imageAlt:"AI route-planning engine selecting the best delivery plan",metrics:r,features:o,cardsHeading:"AI Decision Engine",cardsTheme:i,badges:l})}])},27698,e=>{"use strict";var t=e.i(43476),n=e.i(14224);let i={accent:"#7C5CFF",accent2:"#4C3AE3",glow:"rgba(124,92,255,0.20)"},r=[{text:"QUBO",value:0,suffix:"",label:"Problem Model"},{text:"GLOBAL",value:0,suffix:"",label:"Minimum Search"},{text:"HYBRID",value:0,suffix:"",label:"Intelligence"},{text:"MULTI",value:0,suffix:"",label:"Objective"}],a=[{text:"Multi-Rider",value:0,suffix:"",label:"Dynamic Routing"},{text:"Optimized",value:0,suffix:"",label:"Time Windows"},{text:"Real-Time",value:0,suffix:"",label:"Fleet Balancing"},{text:"Cost + Distance + SLA",value:0,suffix:"",label:"Objectives"}],o=e=>(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e}),l=[{icon:o((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,t.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,t.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"}),(0,t.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"})]})),title:"Encode the Problem",desc:"Rider assignments, delivery sequences, capacity, traffic, service time, and SLA constraints become part of one mathematical optimization model."},{icon:o((0,t.jsx)("path",{d:"m8 3 4 8 5-5 5 15H2L8 3z"})),title:"Build the Energy Landscape",desc:"Each feasible routing solution is represented as a state with its own energy through a QUBO formulation."},{icon:o((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"1"})]})),title:"Search the Global Minimum",desc:"Optimization becomes the search for the lowest-energy state instead of evaluating route combinations one by one."},{icon:o((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("polygon",{points:"12 2 2 7 12 12 22 7 12 2"}),(0,t.jsx)("polyline",{points:"2 17 12 22 22 17"}),(0,t.jsx)("polyline",{points:"2 12 12 17 22 12"})]})),title:"Hybrid Intelligence",desc:"Classical algorithms, AI models, and quantum optimization work together using the right computational model for each problem."}],s=[{value:"QUBO",label:"PROBLEM MODEL"},{value:"HYBRID",label:"INTELLIGENCE"}];e.s(["default",0,function(){return(0,t.jsx)(n.default,{ariaLabel:"Workflow 4 — Quantum Intelligence",gapBottom:!0,image:"/videos/Doormile-quantum-video3.mp4",cardTitle:"BUILDING QUANTUM INTELLIGENCE",cardSubtitle:"Exploring a hybrid optimization layer that treats routing as an energy landscape, not a search problem.",eyebrow:"/ Quantum Intelligence /",titleLead:"FROM ROUTE SEARCH. ",titleAccent:"TO ENERGY MINIMIZATION.",imageAlt:"Hybrid quantum-classical optimization engine visualizing an energy landscape",metrics:r,barStats:a,features:l,cardsHeading:"Quantum Intelligence",sysLabel:"HYBRID ENGINE",cardsTheme:i,badges:s,mediaClassName:"evnd__imgwrap--wf4"})}])},33016,e=>{"use strict";var t=e.i(43476),n=e.i(71645);let i=(0,e.i(70703).default)(()=>e.A(15756),{loadableGenerated:{modules:[55819]},ssr:!1,loading:()=>null});e.s(["default",0,function(){let e=(0,n.useRef)(null),[r,a]=(0,n.useState)(!1);return((0,n.useEffect)(()=>{let t=e.current;if(!t)return;let n=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(a(!0),n.disconnect())},{rootMargin:"150% 0px"});return n.observe(t),()=>n.disconnect()},[]),r)?(0,t.jsx)("div",{ref:e,style:{display:"contents"},children:(0,t.jsx)(i,{})}):(0,t.jsx)("div",{ref:e,"aria-hidden":!0,style:{minHeight:"100vh"}})}])},49712,e=>{e.v(t=>Promise.all(["static/chunks/0ckcqe5on274m.js","static/chunks/04uib0xi8_zof.js","static/chunks/0e.~6vil2~4uy.js"].map(t=>e.l(t))).then(()=>t(29539)))},40999,e=>{e.v(t=>Promise.all(["static/chunks/15p8tu-h65hwr.js","static/chunks/0-kxqnmnjtk7l.js","static/chunks/04uib0xi8_zof.js","static/chunks/0e.~6vil2~4uy.js"].map(t=>e.l(t))).then(()=>t(39184)))},15756,e=>{e.v(t=>Promise.all(["static/chunks/0yqyiard9rg2e.js","static/chunks/0d09zs~9jbu5_.js"].map(t=>e.l(t))).then(()=>t(55819)))}]); \ No newline at end of file diff --git a/build/.next/static/chunks/04uib0xi8_zof.js b/build/.next/static/chunks/04uib0xi8_zof.js new file mode 100644 index 0000000..a1b75b6 --- /dev/null +++ b/build/.next/static/chunks/04uib0xi8_zof.js @@ -0,0 +1,243 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55838,(e,t,n)=>{"use strict";var i=e.r(71645),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=i.useState,s=i.useEffect,o=i.useLayoutEffect,l=i.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var c="u"{"use strict";t.exports=e.r(55838)},52822,(e,t,n)=>{"use strict";var i=e.r(71645),r=e.r(2239),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=r.useSyncExternalStore,o=i.useRef,l=i.useEffect,u=i.useMemo,c=i.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,i,r){var h=o(null);if(null===h.current){var d={hasValue:!1,value:null};h.current=d}else d=h.current;var p=s(e,(h=u(function(){function e(e){if(!l){if(l=!0,s=e,e=i(e),void 0!==r&&d.hasValue){var t=d.value;if(r(t,e))return o=t}return o=e}if(t=o,a(s,e))return t;var n=i(e);return void 0!==r&&r(t,n)?(s=e,t):(s=e,o=n)}var s,o,l=!1,u=void 0===n?null:n;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]},[t,n,i,r]))[0],h[1]);return l(function(){d.hasValue=!0,d.value=p},[p]),c(p),p}},30224,(e,t,n)=>{"use strict";t.exports=e.r(52822)},66936,(e,t,n)=>{"use strict";function i(e,t){var n=e.length;for(e.push(t);0>>1,r=e[i];if(0>>1;is(l,n))us(c,l)?(e[i]=c,e[u]=n,i=u):(e[i]=l,e[o]=n,i=o);else if(us(c,n))e[i]=c,e[u]=n,i=u;else break}}return t}function s(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(n.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o,l=performance;n.unstable_now=function(){return l.now()}}else{var u=Date,c=u.now();n.unstable_now=function(){return u.now()-c}}var h=[],d=[],p=1,f=null,m=3,g=!1,v=!1,_=!1,y=!1,x="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,S="u">typeof setImmediate?setImmediate:null;function M(e){for(var t=r(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,i(h,t);else break;t=r(d)}}function T(e){if(_=!1,M(e),!v)if(null!==r(h))v=!0,w||(w=!0,o());else{var t=r(d);null!==t&&N(T,t.startTime-e)}}var w=!1,E=-1,A=5,C=-1;function R(){return!!y||!(n.unstable_now()-Ce&&R());){var s=f.callback;if("function"==typeof s){f.callback=null,m=f.priorityLevel;var l=s(f.expirationTime<=e);if(e=n.unstable_now(),"function"==typeof l){f.callback=l,M(e),t=!0;break t}f===r(h)&&a(h),M(e)}else a(h);f=r(h)}if(null!==f)t=!0;else{var u=r(d);null!==u&&N(T,u.startTime-e),t=!1}}break e}finally{f=null,m=i,g=!1}}}finally{t?o():w=!1}}}if("function"==typeof S)o=function(){S(P)};else if("u">typeof MessageChannel){var I=new MessageChannel,L=I.port2;I.port1.onmessage=P,o=function(){L.postMessage(null)}}else o=function(){x(P,0)};function N(e,t){E=x(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_forceFrameRate=function(e){0>e||125s?(e.sortIndex=a,i(d,e),null===r(h)&&e===r(d)&&(_?(b(E),E=-1):_=!0,N(T,a-s))):(e.sortIndex=l,i(h,e),v||g||(v=!0,w||(w=!0,o()))),e},n.unstable_shouldYield=R,n.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},89499,(e,t,n)=>{"use strict";t.exports=e.r(66936)},75056,90072,8560,8155,1950,25234,28600,e=>{"use strict";let t,n,i,r,a,s,o,l,u,c,h,d,p,f,m,g,v,_;var y,x,b,S,M,T,w=e.i(47167),E=e.i(71645);let A={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},C={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},R="attached",P="detached",I="srgb",L="srgb-linear",N="linear",U="srgb",D="300 es";class O{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let n=this._listeners[e];if(void 0!==n){let e=n.indexOf(t);-1!==e&&n.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let n=t.slice(0);for(let t=0,i=n.length;t>8&255]+F[e>>16&255]+F[e>>24&255]+"-"+F[255&t]+F[t>>8&255]+"-"+F[t>>16&15|64]+F[t>>24&255]+"-"+F[63&n|128]+F[n>>8&255]+"-"+F[n>>16&255]+F[n>>24&255]+F[255&i]+F[i>>8&255]+F[i>>16&255]+F[i>>24&255]).toLowerCase()}function V(e,t,n){return Math.max(t,Math.min(n,e))}function G(e,t){return(e%t+t)%t}function W(e,t,n){return(1-n)*e+n*t}function j(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/0xffffffff;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/0x7fffffff,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw Error("Invalid component type.")}}function X(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(0xffffffff*e);case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int32Array:return Math.round(0x7fffffff*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw Error("Invalid component type.")}}let q={DEG2RAD:B,RAD2DEG:k,generateUUID:H,clamp:V,euclideanModulo:G,mapLinear:function(e,t,n,i,r){return i+(e-t)*(r-i)/(n-t)},inverseLerp:function(e,t,n){return e!==t?(n-e)/(t-e):0},lerp:W,damp:function(e,t,n,i){return W(e,t,1-Math.exp(-n*i))},pingpong:function(e,t=1){return t-Math.abs(G(e,2*t)-t)},smoothstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)},smootherstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){void 0!==e&&(z=e);let t=z+=0x6d2b79f5;return t=Math.imul(t^t>>>15,1|t),(((t^=t+Math.imul(t^t>>>7,61|t))^t>>>14)>>>0)/0x100000000},degToRad:function(e){return e*B},radToDeg:function(e){return e*k},isPowerOfTwo:function(e){return(e&e-1)==0&&0!==e},ceilPowerOfTwo:function(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))},floorPowerOfTwo:function(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))},setQuaternionFromProperEuler:function(e,t,n,i,r){let a=Math.cos,s=Math.sin,o=a(n/2),l=s(n/2),u=a((t+i)/2),c=s((t+i)/2),h=a((t-i)/2),d=s((t-i)/2),p=a((i-t)/2),f=s((i-t)/2);switch(r){case"XYX":e.set(o*c,l*h,l*d,o*u);break;case"YZY":e.set(l*d,o*c,l*h,o*u);break;case"ZXZ":e.set(l*h,l*d,o*c,o*u);break;case"XZX":e.set(o*c,l*f,l*p,o*u);break;case"YXY":e.set(l*p,o*c,l*f,o*u);break;case"ZYZ":e.set(l*f,l*p,o*c,o*u);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:X,denormalize:j};class Y{constructor(e=0,t=0){Y.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());return 0===t?Math.PI/2:Math.acos(V(this.dot(e)/t,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),i=Math.sin(t),r=this.x-e.x,a=this.y-e.y;return this.x=r*n-a*i+e.x,this.y=r*i+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Z{constructor(e,t,n,i,r,a,s,o,l){Z.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==e&&this.set(e,t,n,i,r,a,s,o,l)}set(e,t,n,i,r,a,s,o,l){let u=this.elements;return u[0]=e,u[1]=i,u[2]=s,u[3]=t,u[4]=r,u[5]=o,u[6]=n,u[7]=a,u[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,r=this.elements,a=n[0],s=n[3],o=n[6],l=n[1],u=n[4],c=n[7],h=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],v=i[1],_=i[4],y=i[7],x=i[2],b=i[5],S=i[8];return r[0]=a*f+s*v+o*x,r[3]=a*m+s*_+o*b,r[6]=a*g+s*y+o*S,r[1]=l*f+u*v+c*x,r[4]=l*m+u*_+c*b,r[7]=l*g+u*y+c*S,r[2]=h*f+d*v+p*x,r[5]=h*m+d*_+p*b,r[8]=h*g+d*y+p*S,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8];return t*a*u-t*s*l-n*r*u+n*s*o+i*r*l-i*a*o}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=u*a-s*l,h=s*o-u*r,d=l*r-a*o,p=t*c+n*h+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);let f=1/p;return e[0]=c*f,e[1]=(i*l-u*n)*f,e[2]=(s*n-i*a)*f,e[3]=h*f,e[4]=(u*t-i*o)*f,e[5]=(i*r-s*t)*f,e[6]=d*f,e[7]=(n*o-l*t)*f,e[8]=(a*t-n*r)*f,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,r,a,s){let o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*a+l*s)+a+e,-i*l,i*o,-i*(-l*a+o*s)+s+t,0,0,1),this}scale(e,t){return this.premultiply(J.makeScale(e,t)),this}rotate(e){return this.premultiply(J.makeRotation(-e)),this}translate(e,t){return this.premultiply(J.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,n=e.elements;for(let e=0;e<9;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}}let J=new Z;function K(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}let $={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Q(e,t){return new $[e](t)}function ee(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}function et(){let e=ee("canvas");return e.style.display="block",e}let en={};function ei(e){e in en||(en[e]=!0,console.warn(e))}function er(e,t,n){return new Promise(function(i,r){setTimeout(function a(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:r();break;case e.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:i()}},n)})}function ea(e){let t=e.elements;t[2]=.5*t[2]+.5*t[3],t[6]=.5*t[6]+.5*t[7],t[10]=.5*t[10]+.5*t[11],t[14]=.5*t[14]+.5*t[15]}function es(e){let t=e.elements;-1===t[11]?(t[10]=-t[10]-1,t[14]=-t[14]):(t[10]=-t[10],t[14]=-t[14]+1)}let eo=new Z().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),el=new Z().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715),eu=(d=[.64,.33,.3,.6,.15,.06],p=[.2126,.7152,.0722],f=[.3127,.329],(h={enabled:!0,workingColorSpace:L,spaces:{},convert:function(e,t,n){return!1!==this.enabled&&t!==n&&t&&n&&(this.spaces[t].transfer===U&&(e.r=ec(e.r),e.g=ec(e.g),e.b=ec(e.b)),this.spaces[t].primaries!==this.spaces[n].primaries&&(e.applyMatrix3(this.spaces[t].toXYZ),e.applyMatrix3(this.spaces[n].fromXYZ)),this.spaces[n].transfer===U&&(e.r=eh(e.r),e.g=eh(e.g),e.b=eh(e.b))),e},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)},getPrimaries:function(e){return this.spaces[e].primaries},getTransfer:function(e){return""===e?N:this.spaces[e].transfer},getLuminanceCoefficients:function(e,t=this.workingColorSpace){return e.fromArray(this.spaces[t].luminanceCoefficients)},define:function(e){Object.assign(this.spaces,e)},_getMatrix:function(e,t,n){return e.copy(this.spaces[t].toXYZ).multiply(this.spaces[n].fromXYZ)},_getDrawingBufferColorSpace:function(e){return this.spaces[e].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(e=this.workingColorSpace){return this.spaces[e].workingColorSpaceConfig.unpackColorSpace}}).define({[L]:{primaries:d,whitePoint:f,transfer:N,toXYZ:eo,fromXYZ:el,luminanceCoefficients:p,workingColorSpaceConfig:{unpackColorSpace:I},outputColorSpaceConfig:{drawingBufferColorSpace:I}},[I]:{primaries:d,whitePoint:f,transfer:U,toXYZ:eo,fromXYZ:el,luminanceCoefficients:p,outputColorSpaceConfig:{drawingBufferColorSpace:I}}}),h);function ec(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function eh(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}class ed{static getDataURL(e){let n;if(/^data:/i.test(e.src)||"u"2048||n.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),n.toDataURL("image/jpeg",.6)):n.toDataURL("image/png")}static sRGBToLinear(e){if("u">typeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap){let t=ee("canvas");t.width=e.width,t.height=e.height;let n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);let i=n.getImageData(0,0,e.width,e.height),r=i.data;for(let e=0;etypeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap?ed.getDataURL(e):e.data?{data:Array.from(e.data),width:e.width,height:e.height,type:e.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let eg=0;class ev extends O{constructor(e=ev.DEFAULT_IMAGE,t=ev.DEFAULT_MAPPING,n=1001,i=1001,r=1006,a=1008,s=1023,o=1009,l=ev.DEFAULT_ANISOTROPY,u=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:eg++}),this.uuid=H(),this.name="",this.source=new ef(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=a,this.anisotropy=l,this.format=s,this.internalFormat=null,this.type=o,this.offset=new Y(0,0),this.repeat=new Y(1,1),this.center=new Y(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Z,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=u,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.pmremVersion=0}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){let t=void 0===e||"string"==typeof e;if(!t&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];let n={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(300!==this.mapping)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case 1e3:e.x=e.x-Math.floor(e.x);break;case 1001:e.x=e.x<0?0:1;break;case 1002:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case 1e3:e.y=e.y-Math.floor(e.y);break;case 1001:e.y=e.y<0?0:1;break;case 1002:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){!0===e&&this.pmremVersion++}}ev.DEFAULT_IMAGE=null,ev.DEFAULT_MAPPING=300,ev.DEFAULT_ANISOTROPY=1;class e_{constructor(e=0,t=0,n=0,i=1){e_.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,r=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*i+a[12]*r,this.y=a[1]*t+a[5]*n+a[9]*i+a[13]*r,this.z=a[2]*t+a[6]*n+a[10]*i+a[14]*r,this.w=a[3]*t+a[7]*n+a[11]*i+a[15]*r,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,r,a=e.elements,s=a[0],o=a[4],l=a[8],u=a[1],c=a[5],h=a[9],d=a[2],p=a[6],f=a[10];if(.01>Math.abs(o-u)&&.01>Math.abs(l-d)&&.01>Math.abs(h-p)){if(.1>Math.abs(o+u)&&.1>Math.abs(l+d)&&.1>Math.abs(h+p)&&.1>Math.abs(s+c+f-3))return this.set(1,0,0,0),this;t=Math.PI;let e=(s+1)/2,a=(c+1)/2,m=(f+1)/2,g=(o+u)/4,v=(l+d)/4,_=(h+p)/4;return e>a&&e>m?e<.01?(n=0,i=.707106781,r=.707106781):(i=g/(n=Math.sqrt(e)),r=v/n):a>m?a<.01?(n=.707106781,i=0,r=.707106781):(n=g/(i=Math.sqrt(a)),r=_/i):m<.01?(n=.707106781,i=.707106781,r=0):(n=v/(r=Math.sqrt(m)),i=_/r),this.set(n,i,r,t),this}let m=Math.sqrt((p-h)*(p-h)+(l-d)*(l-d)+(u-o)*(u-o));return .001>Math.abs(m)&&(m=1),this.x=(p-h)/m,this.y=(l-d)/m,this.z=(u-o)/m,this.w=Math.acos((s+c+f-1)/2),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this.z=V(this.z,e.z,t.z),this.w=V(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this.z=V(this.z,e,t),this.w=V(this.w,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class ey extends O{constructor(e=1,t=1,n={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new e_(0,0,e,t),this.scissorTest=!1,this.viewport=new e_(0,0,e,t);const i=new ev({width:e,height:t,depth:1},(n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:1006,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n)).mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);i.flipY=!1,i.generateMipmaps=n.generateMipmaps,i.internalFormat=n.internalFormat,this.textures=[];const r=n.count;for(let e=0;e=0?1:-1,i=1-t*t;if(i>Number.EPSILON){let r=Math.sqrt(i),a=Math.atan2(r,t*n);e=Math.sin(e*a)/r,s=Math.sin(s*a)/r}let r=s*n;if(o=o*e+h*r,l=l*e+d*r,u=u*e+p*r,c=c*e+f*r,e===1-s){let e=1/Math.sqrt(o*o+l*l+u*u+c*c);o*=e,l*=e,u*=e,c*=e}}e[t]=o,e[t+1]=l,e[t+2]=u,e[t+3]=c}static multiplyQuaternionsFlat(e,t,n,i,r,a){let s=n[i],o=n[i+1],l=n[i+2],u=n[i+3],c=r[a],h=r[a+1],d=r[a+2],p=r[a+3];return e[t]=s*p+u*c+o*d-l*h,e[t+1]=o*p+u*h+l*c-s*d,e[t+2]=l*p+u*d+s*h-o*c,e[t+3]=u*p-s*c-o*h-l*d,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){let n=e._x,i=e._y,r=e._z,a=e._order,s=Math.cos,o=Math.sin,l=s(n/2),u=s(i/2),c=s(r/2),h=o(n/2),d=o(i/2),p=o(r/2);switch(a){case"XYZ":this._x=h*u*c+l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c-h*d*p;break;case"YXZ":this._x=h*u*c+l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c+h*d*p;break;case"ZXY":this._x=h*u*c-l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c-h*d*p;break;case"ZYX":this._x=h*u*c-l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c+h*d*p;break;case"YZX":this._x=h*u*c+l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c-h*d*p;break;case"XZY":this._x=h*u*c-l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c+h*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return!0===t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],i=t[4],r=t[8],a=t[1],s=t[5],o=t[9],l=t[2],u=t[6],c=t[10],h=n+s+c;if(h>0){let e=.5/Math.sqrt(h+1);this._w=.25/e,this._x=(u-o)*e,this._y=(r-l)*e,this._z=(a-i)*e}else if(n>s&&n>c){let e=2*Math.sqrt(1+n-s-c);this._w=(u-o)/e,this._x=.25*e,this._y=(i+a)/e,this._z=(r+l)/e}else if(s>c){let e=2*Math.sqrt(1+s-n-c);this._w=(r-l)/e,this._x=(i+a)/e,this._y=.25*e,this._z=(o+u)/e}else{let e=2*Math.sqrt(1+c-n-s);this._w=(a-i)/e,this._x=(r+l)/e,this._y=(o+u)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0):(this._x=0,this._y=-e.z,this._z=e.y)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x),this._w=n,this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(V(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(0===n)return this;let i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,i=e._y,r=e._z,a=e._w,s=t._x,o=t._y,l=t._z,u=t._w;return this._x=n*u+a*s+i*l-r*o,this._y=i*u+a*o+r*s-n*l,this._z=r*u+a*l+n*o-i*s,this._w=a*u-n*s-i*o-r*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);let n=this._x,i=this._y,r=this._z,a=this._w,s=a*e._w+n*e._x+i*e._y+r*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=a,this._x=n,this._y=i,this._z=r,this;let o=1-s*s;if(o<=Number.EPSILON){let e=1-t;return this._w=e*a+t*this._w,this._x=e*n+t*this._x,this._y=e*i+t*this._y,this._z=e*r+t*this._z,this.normalize(),this}let l=Math.sqrt(o),u=Math.atan2(l,s),c=Math.sin((1-t)*u)/l,h=Math.sin(t*u)/l;return this._w=a*c+this._w*h,this._x=n*c+this._x*h,this._y=i*c+this._y*h,this._z=r*c+this._z*h,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),i=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(i*Math.sin(e),i*Math.cos(e),r*Math.sin(t),r*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class eE{constructor(e=0,t=0,n=0){eE.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return void 0===n&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(eC.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(eC.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*i,this.y=r[1]*t+r[4]*n+r[7]*i,this.z=r[2]*t+r[5]*n+r[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,r=e.elements,a=1/(r[3]*t+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*i+r[12])*a,this.y=(r[1]*t+r[5]*n+r[9]*i+r[13])*a,this.z=(r[2]*t+r[6]*n+r[10]*i+r[14])*a,this}applyQuaternion(e){let t=this.x,n=this.y,i=this.z,r=e.x,a=e.y,s=e.z,o=e.w,l=2*(a*i-s*n),u=2*(s*t-r*i),c=2*(r*n-a*t);return this.x=t+o*l+a*c-s*u,this.y=n+o*u+s*l-r*c,this.z=i+o*c+r*u-a*l,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*i,this.y=r[1]*t+r[5]*n+r[9]*i,this.z=r[2]*t+r[6]*n+r[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this.z=V(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this.z=V(this.z,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,i=e.y,r=e.z,a=t.x,s=t.y,o=t.z;return this.x=i*o-r*s,this.y=r*a-n*o,this.z=n*s-i*a,this}projectOnVector(e){let t=e.lengthSq();if(0===t)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return eA.copy(this).projectOnVector(e),this.sub(eA)}reflect(e){return this.sub(eA.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());return 0===t?Math.PI/2:Math.acos(V(this.dot(e)/t,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){let i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=2*Math.random()-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}let eA=new eE,eC=new ew;class eR{constructor(e=new eE(Infinity,Infinity,Infinity),t=new eE(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,eI),eI.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(eB),ek.subVectors(this.max,eB),eN.subVectors(e.a,eB),eU.subVectors(e.b,eB),eD.subVectors(e.c,eB),eO.subVectors(eU,eN),eF.subVectors(eD,eU),ez.subVectors(eN,eD);let t=[0,-eO.z,eO.y,0,-eF.z,eF.y,0,-ez.z,ez.y,eO.z,0,-eO.x,eF.z,0,-eF.x,ez.z,0,-ez.x,-eO.y,eO.x,0,-eF.y,eF.x,0,-ez.y,ez.x,0];return!!eG(t,eN,eU,eD,ek)&&!!eG(t=[1,0,0,0,1,0,0,0,1],eN,eU,eD,ek)&&(eH.crossVectors(eO,eF),eG(t=[eH.x,eH.y,eH.z],eN,eU,eD,ek))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,eI).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(eI).length()),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(eP[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),eP[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),eP[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),eP[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),eP[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),eP[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),eP[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),eP[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(eP)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}let eP=[new eE,new eE,new eE,new eE,new eE,new eE,new eE,new eE],eI=new eE,eL=new eR,eN=new eE,eU=new eE,eD=new eE,eO=new eE,eF=new eE,ez=new eE,eB=new eE,ek=new eE,eH=new eE,eV=new eE;function eG(e,t,n,i,r){for(let a=0,s=e.length-3;a<=s;a+=3){eV.fromArray(e,a);let s=r.x*Math.abs(eV.x)+r.y*Math.abs(eV.y)+r.z*Math.abs(eV.z),o=t.dot(eV),l=n.dot(eV),u=i.dot(eV);if(Math.max(-Math.max(o,l,u),Math.min(o,l,u))>s)return!1}return!0}let eW=new eR,ej=new eE,eX=new eE;class eq{constructor(e=new eE,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let n=this.center;void 0!==t?n.copy(t):eW.setFromPoints(e).getCenter(n);let i=0;for(let t=0,r=e.length;tthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?e.makeEmpty():(e.set(this.center,this.center),e.expandByScalar(this.radius)),e}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;ej.subVectors(e,this.center);let t=ej.lengthSq();if(t>this.radius*this.radius){let e=Math.sqrt(t),n=(e-this.radius)*.5;this.center.addScaledVector(ej,n/e),this.radius+=n}return this}union(e){return e.isEmpty()||(this.isEmpty()?this.copy(e):!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(eX.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(ej.copy(e.center).add(eX)),this.expandByPoint(ej.copy(e.center).sub(eX)))),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}let eY=new eE,eZ=new eE,eJ=new eE,eK=new eE,e$=new eE,eQ=new eE,e0=new eE;class e1{constructor(e=new eE,t=new eE(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,eY)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=eY.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(eY.copy(this.origin).addScaledVector(this.direction,t),eY.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){let r,a,s,o;eZ.copy(e).add(t).multiplyScalar(.5),eJ.copy(t).sub(e).normalize(),eK.copy(this.origin).sub(eZ);let l=.5*e.distanceTo(t),u=-this.direction.dot(eJ),c=eK.dot(this.direction),h=-eK.dot(eJ),d=eK.lengthSq(),p=Math.abs(1-u*u);if(p>0)if(r=u*h-c,a=u*c-h,o=l*p,r>=0)if(a>=-o)if(a<=o){let e=1/p;r*=e,a*=e,s=r*(r+u*a+2*c)+a*(u*r+a+2*h)+d}else s=-(r=Math.max(0,-(u*(a=l)+c)))*r+a*(a+2*h)+d;else s=-(r=Math.max(0,-(u*(a=-l)+c)))*r+a*(a+2*h)+d;else a<=-o?(a=(r=Math.max(0,-(-u*l+c)))>0?-l:Math.min(Math.max(-l,-h),l),s=-r*r+a*(a+2*h)+d):a<=o?(r=0,s=(a=Math.min(Math.max(-l,-h),l))*(a+2*h)+d):(a=(r=Math.max(0,-(u*l+c)))>0?l:Math.min(Math.max(-l,-h),l),s=-r*r+a*(a+2*h)+d);else a=u>0?-l:l,s=-(r=Math.max(0,-(u*a+c)))*r+a*(a+2*h)+d;return n&&n.copy(this.origin).addScaledVector(this.direction,r),i&&i.copy(eZ).addScaledVector(eJ,a),s}intersectSphere(e,t){eY.subVectors(e.center,this.origin);let n=eY.dot(this.direction),i=eY.dot(eY)-n*n,r=e.radius*e.radius;if(i>r)return null;let a=Math.sqrt(r-i),s=n-a,o=n+a;return o<0?null:s<0?this.at(o,t):this.at(s,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return null===n?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return!!(0===t||e.normal.dot(this.direction)*t<0)}intersectBox(e,t){let n,i,r,a,s,o,l=1/this.direction.x,u=1/this.direction.y,c=1/this.direction.z,h=this.origin;return(l>=0?(n=(e.min.x-h.x)*l,i=(e.max.x-h.x)*l):(n=(e.max.x-h.x)*l,i=(e.min.x-h.x)*l),u>=0?(r=(e.min.y-h.y)*u,a=(e.max.y-h.y)*u):(r=(e.max.y-h.y)*u,a=(e.min.y-h.y)*u),n>a||r>i||((r>n||isNaN(n))&&(n=r),(a=0?(s=(e.min.z-h.z)*c,o=(e.max.z-h.z)*c):(s=(e.max.z-h.z)*c,o=(e.min.z-h.z)*c),n>o||s>i||((s>n||n!=n)&&(n=s),(o=0?n:i,t)}intersectsBox(e){return null!==this.intersectBox(e,eY)}intersectTriangle(e,t,n,i,r){let a;e$.subVectors(t,e),eQ.subVectors(n,e),e0.crossVectors(e$,eQ);let s=this.direction.dot(e0);if(s>0){if(i)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}eK.subVectors(this.origin,e);let o=a*this.direction.dot(eQ.crossVectors(eK,eQ));if(o<0)return null;let l=a*this.direction.dot(e$.cross(eK));if(l<0||o+l>s)return null;let u=-a*eK.dot(e0);return u<0?null:this.at(u/s,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class e2{constructor(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m){e2.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==e&&this.set(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m)}set(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m){let g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=i,g[1]=r,g[5]=a,g[9]=s,g[13]=o,g[2]=l,g[6]=u,g[10]=c,g[14]=h,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new e2().fromArray(this.elements)}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){let t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,n=e.elements,i=1/e3.setFromMatrixColumn(e,0).length(),r=1/e3.setFromMatrixColumn(e,1).length(),a=1/e3.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*r,t[5]=n[5]*r,t[6]=n[6]*r,t[7]=0,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,n=e.x,i=e.y,r=e.z,a=Math.cos(n),s=Math.sin(n),o=Math.cos(i),l=Math.sin(i),u=Math.cos(r),c=Math.sin(r);if("XYZ"===e.order){let e=a*u,n=a*c,i=s*u,r=s*c;t[0]=o*u,t[4]=-o*c,t[8]=l,t[1]=n+i*l,t[5]=e-r*l,t[9]=-s*o,t[2]=r-e*l,t[6]=i+n*l,t[10]=a*o}else if("YXZ"===e.order){let e=o*u,n=o*c,i=l*u,r=l*c;t[0]=e+r*s,t[4]=i*s-n,t[8]=a*l,t[1]=a*c,t[5]=a*u,t[9]=-s,t[2]=n*s-i,t[6]=r+e*s,t[10]=a*o}else if("ZXY"===e.order){let e=o*u,n=o*c,i=l*u,r=l*c;t[0]=e-r*s,t[4]=-a*c,t[8]=i+n*s,t[1]=n+i*s,t[5]=a*u,t[9]=r-e*s,t[2]=-a*l,t[6]=s,t[10]=a*o}else if("ZYX"===e.order){let e=a*u,n=a*c,i=s*u,r=s*c;t[0]=o*u,t[4]=i*l-n,t[8]=e*l+r,t[1]=o*c,t[5]=r*l+e,t[9]=n*l-i,t[2]=-l,t[6]=s*o,t[10]=a*o}else if("YZX"===e.order){let e=a*o,n=a*l,i=s*o,r=s*l;t[0]=o*u,t[4]=r-e*c,t[8]=i*c+n,t[1]=c,t[5]=a*u,t[9]=-s*u,t[2]=-l*u,t[6]=n*c+i,t[10]=e-r*c}else if("XZY"===e.order){let e=a*o,n=a*l,i=s*o,r=s*l;t[0]=o*u,t[4]=-c,t[8]=l*u,t[1]=e*c+r,t[5]=a*u,t[9]=n*c-i,t[2]=i*c-n,t[6]=s*u,t[10]=r*c+e}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(e5,e,e6)}lookAt(e,t,n){let i=this.elements;return e7.subVectors(e,t),0===e7.lengthSq()&&(e7.z=1),e7.normalize(),e8.crossVectors(n,e7),0===e8.lengthSq()&&(1===Math.abs(n.z)?e7.x+=1e-4:e7.z+=1e-4,e7.normalize(),e8.crossVectors(n,e7)),e8.normalize(),e9.crossVectors(e7,e8),i[0]=e8.x,i[4]=e9.x,i[8]=e7.x,i[1]=e8.y,i[5]=e9.y,i[9]=e7.y,i[2]=e8.z,i[6]=e9.z,i[10]=e7.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,r=this.elements,a=n[0],s=n[4],o=n[8],l=n[12],u=n[1],c=n[5],h=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],v=n[3],_=n[7],y=n[11],x=n[15],b=i[0],S=i[4],M=i[8],T=i[12],w=i[1],E=i[5],A=i[9],C=i[13],R=i[2],P=i[6],I=i[10],L=i[14],N=i[3],U=i[7],D=i[11],O=i[15];return r[0]=a*b+s*w+o*R+l*N,r[4]=a*S+s*E+o*P+l*U,r[8]=a*M+s*A+o*I+l*D,r[12]=a*T+s*C+o*L+l*O,r[1]=u*b+c*w+h*R+d*N,r[5]=u*S+c*E+h*P+d*U,r[9]=u*M+c*A+h*I+d*D,r[13]=u*T+c*C+h*L+d*O,r[2]=p*b+f*w+m*R+g*N,r[6]=p*S+f*E+m*P+g*U,r[10]=p*M+f*A+m*I+g*D,r[14]=p*T+f*C+m*L+g*O,r[3]=v*b+_*w+y*R+x*N,r[7]=v*S+_*E+y*P+x*U,r[11]=v*M+_*A+y*I+x*D,r[15]=v*T+_*C+y*L+x*O,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[4],i=e[8],r=e[12],a=e[1],s=e[5],o=e[9],l=e[13],u=e[2],c=e[6],h=e[10],d=e[14];return e[3]*(r*o*c-i*l*c-r*s*h+n*l*h+i*s*d-n*o*d)+e[7]*(t*o*d-t*l*h+r*a*h-i*a*d+i*l*u-r*o*u)+e[11]*(t*l*c-t*s*d-r*a*c+n*a*d+r*s*u-n*l*u)+e[15]*(-i*s*u-t*o*c+t*s*h+i*a*c-n*a*h+n*o*u)}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(e,t,n){let i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],v=c*m*l-f*h*l+f*o*d-s*m*d-c*o*g+s*h*g,_=p*h*l-u*m*l-p*o*d+a*m*d+u*o*g-a*h*g,y=u*f*l-p*c*l+p*s*d-a*f*d-u*s*g+a*c*g,x=p*c*o-u*f*o-p*s*h+a*f*h+u*s*m-a*c*m,b=t*v+n*_+i*y+r*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let S=1/b;return e[0]=v*S,e[1]=(f*h*r-c*m*r-f*i*d+n*m*d+c*i*g-n*h*g)*S,e[2]=(s*m*r-f*o*r+f*i*l-n*m*l-s*i*g+n*o*g)*S,e[3]=(c*o*r-s*h*r-c*i*l+n*h*l+s*i*d-n*o*d)*S,e[4]=_*S,e[5]=(u*m*r-p*h*r+p*i*d-t*m*d-u*i*g+t*h*g)*S,e[6]=(p*o*r-a*m*r-p*i*l+t*m*l+a*i*g-t*o*g)*S,e[7]=(a*h*r-u*o*r+u*i*l-t*h*l-a*i*d+t*o*d)*S,e[8]=y*S,e[9]=(p*c*r-u*f*r-p*n*d+t*f*d+u*n*g-t*c*g)*S,e[10]=(a*f*r-p*s*r+p*n*l-t*f*l-a*n*g+t*s*g)*S,e[11]=(u*s*r-a*c*r-u*n*l+t*c*l+a*n*d-t*s*d)*S,e[12]=x*S,e[13]=(u*f*i-p*c*i+p*n*h-t*f*h-u*n*m+t*c*m)*S,e[14]=(p*s*i-a*f*i-p*n*o+t*f*o+a*n*m-t*s*m)*S,e[15]=(a*c*i-u*s*i+u*n*o-t*c*o-a*n*h+t*s*h)*S,this}scale(e){let t=this.elements,n=e.x,i=e.y,r=e.z;return t[0]*=n,t[4]*=i,t[8]*=r,t[1]*=n,t[5]*=i,t[9]*=r,t[2]*=n,t[6]*=i,t[10]*=r,t[3]*=n,t[7]*=i,t[11]*=r,this}getMaxScaleOnAxis(){let e=this.elements;return Math.sqrt(Math.max(e[0]*e[0]+e[1]*e[1]+e[2]*e[2],e[4]*e[4]+e[5]*e[5]+e[6]*e[6],e[8]*e[8]+e[9]*e[9]+e[10]*e[10]))}makeTranslation(e,t,n){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let n=Math.cos(t),i=Math.sin(t),r=1-n,a=e.x,s=e.y,o=e.z,l=r*a,u=r*s;return this.set(l*a+n,l*s-i*o,l*o+i*s,0,l*s+i*o,u*s+n,u*o-i*a,0,l*o-i*s,u*o+i*a,r*o*o+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,r,a){return this.set(1,n,r,0,e,1,a,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){let i=this.elements,r=t._x,a=t._y,s=t._z,o=t._w,l=r+r,u=a+a,c=s+s,h=r*l,d=r*u,p=r*c,f=a*u,m=a*c,g=s*c,v=o*l,_=o*u,y=o*c,x=n.x,b=n.y,S=n.z;return i[0]=(1-(f+g))*x,i[1]=(d+y)*x,i[2]=(p-_)*x,i[3]=0,i[4]=(d-y)*b,i[5]=(1-(h+g))*b,i[6]=(m+v)*b,i[7]=0,i[8]=(p+_)*S,i[9]=(m-v)*S,i[10]=(1-(h+f))*S,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){let i=this.elements,r=e3.set(i[0],i[1],i[2]).length(),a=e3.set(i[4],i[5],i[6]).length(),s=e3.set(i[8],i[9],i[10]).length();0>this.determinant()&&(r=-r),e.x=i[12],e.y=i[13],e.z=i[14],e4.copy(this);let o=1/r,l=1/a,u=1/s;return e4.elements[0]*=o,e4.elements[1]*=o,e4.elements[2]*=o,e4.elements[4]*=l,e4.elements[5]*=l,e4.elements[6]*=l,e4.elements[8]*=u,e4.elements[9]*=u,e4.elements[10]*=u,t.setFromRotationMatrix(e4),n.x=r,n.y=a,n.z=s,this}makePerspective(e,t,n,i,r,a,s=2e3){let o,l,u=this.elements;if(2e3===s)o=-(a+r)/(a-r),l=-2*a*r/(a-r);else if(2001===s)o=-a/(a-r),l=-a*r/(a-r);else throw Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+s);return u[0]=2*r/(t-e),u[4]=0,u[8]=(t+e)/(t-e),u[12]=0,u[1]=0,u[5]=2*r/(n-i),u[9]=(n+i)/(n-i),u[13]=0,u[2]=0,u[6]=0,u[10]=o,u[14]=l,u[3]=0,u[7]=0,u[11]=-1,u[15]=0,this}makeOrthographic(e,t,n,i,r,a,s=2e3){let o,l,u=this.elements,c=1/(t-e),h=1/(n-i),d=1/(a-r);if(2e3===s)o=(a+r)*d,l=-2*d;else if(2001===s)o=r*d,l=-1*d;else throw Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+s);return u[0]=2*c,u[4]=0,u[8]=0,u[12]=-((t+e)*c),u[1]=0,u[5]=2*h,u[9]=0,u[13]=-((n+i)*h),u[2]=0,u[6]=0,u[10]=l,u[14]=-o,u[3]=0,u[7]=0,u[11]=0,u[15]=1,this}equals(e){let t=this.elements,n=e.elements;for(let e=0;e<16;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}let e3=new eE,e4=new e2,e5=new eE(0,0,0),e6=new eE(1,1,1),e8=new eE,e9=new eE,e7=new eE,te=new e2,tt=new ew;class tn{constructor(e=0,t=0,n=0,i=tn.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){let i=e.elements,r=i[0],a=i[4],s=i[8],o=i[1],l=i[5],u=i[9],c=i[2],h=i[6],d=i[10];switch(t){case"XYZ":this._y=Math.asin(V(s,-1,1)),.9999999>Math.abs(s)?(this._x=Math.atan2(-u,d),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(h,l),this._z=0);break;case"YXZ":this._x=Math.asin(-V(u,-1,1)),.9999999>Math.abs(u)?(this._y=Math.atan2(s,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-c,r),this._z=0);break;case"ZXY":this._x=Math.asin(V(h,-1,1)),.9999999>Math.abs(h)?(this._y=Math.atan2(-c,d),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-V(c,-1,1)),.9999999>Math.abs(c)?(this._x=Math.atan2(h,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(V(o,-1,1)),.9999999>Math.abs(o)?(this._x=Math.atan2(-u,l),this._y=Math.atan2(-c,r)):(this._x=0,this._y=Math.atan2(s,d));break;case"XZY":this._z=Math.asin(-V(a,-1,1)),.9999999>Math.abs(a)?(this._x=Math.atan2(h,l),this._y=Math.atan2(s,r)):(this._x=Math.atan2(-u,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===n&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return te.makeRotationFromQuaternion(e),this.setFromRotationMatrix(te,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return tt.setFromEuler(this),this.setFromQuaternion(tt,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}tn.DEFAULT_ORDER="XYZ";class ti{constructor(){this.mask=1}set(e){this.mask=1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map(e=>({boxInitialized:e.boxInitialized,boxMin:e.box.min.toArray(),boxMax:e.box.max.toArray(),sphereInitialized:e.sphereInitialized,sphereRadius:e.sphere.radius,sphereCenter:e.sphere.center.toArray()})),i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(e),null!==this._colorsTexture&&(i.colorsTexture=this._colorsTexture.toJSON(e)),null!==this.boundingSphere&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),null!==this.boundingBox&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(e.geometries,this.geometry);let t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){let n=t.shapes;if(Array.isArray(n))for(let t=0,i=n.length;t0){i.children=[];for(let t=0;t0){i.animations=[];for(let t=0;t0&&(n.geometries=t),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),s.length>0&&(n.images=s),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),u.length>0&&(n.animations=u),c.length>0&&(n.nodes=c)}return n.object=i,n;function a(e){let t=[];for(let n in e){let i=e[n];delete i.metadata,t.push(i)}return t}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let t=0;t0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(e,t,n,i,r){tx.subVectors(i,t),tb.subVectors(n,t),tS.subVectors(e,t);let a=tx.dot(tx),s=tx.dot(tb),o=tx.dot(tS),l=tb.dot(tb),u=tb.dot(tS),c=a*l-s*s;if(0===c)return r.set(0,0,0),null;let h=1/c,d=(l*o-s*u)*h,p=(a*u-s*o)*h;return r.set(1-d-p,p,d)}static containsPoint(e,t,n,i){return null!==this.getBarycoord(e,t,n,i,tM)&&tM.x>=0&&tM.y>=0&&tM.x+tM.y<=1}static getInterpolation(e,t,n,i,r,a,s,o){return null===this.getBarycoord(e,t,n,i,tM)?(o.x=0,o.y=0,"z"in o&&(o.z=0),"w"in o&&(o.w=0),null):(o.setScalar(0),o.addScaledVector(r,tM.x),o.addScaledVector(a,tM.y),o.addScaledVector(s,tM.z),o)}static getInterpolatedAttribute(e,t,n,i,r,a){return tP.setScalar(0),tI.setScalar(0),tL.setScalar(0),tP.fromBufferAttribute(e,t),tI.fromBufferAttribute(e,n),tL.fromBufferAttribute(e,i),a.setScalar(0),a.addScaledVector(tP,r.x),a.addScaledVector(tI,r.y),a.addScaledVector(tL,r.z),a}static isFrontFacing(e,t,n,i){return tx.subVectors(n,t),tb.subVectors(e,t),0>tx.cross(tb).dot(i)}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return tx.subVectors(this.c,this.b),tb.subVectors(this.a,this.b),.5*tx.cross(tb).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return tN.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return tN.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,n,i,r){return tN.getInterpolation(e,this.a,this.b,this.c,t,n,i,r)}containsPoint(e){return tN.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return tN.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n,i,r=this.a,a=this.b,s=this.c;tT.subVectors(a,r),tw.subVectors(s,r),tA.subVectors(e,r);let o=tT.dot(tA),l=tw.dot(tA);if(o<=0&&l<=0)return t.copy(r);tC.subVectors(e,a);let u=tT.dot(tC),c=tw.dot(tC);if(u>=0&&c<=u)return t.copy(a);let h=o*c-u*l;if(h<=0&&o>=0&&u<=0)return n=o/(o-u),t.copy(r).addScaledVector(tT,n);tR.subVectors(e,s);let d=tT.dot(tR),p=tw.dot(tR);if(p>=0&&d<=p)return t.copy(s);let f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return i=l/(l-p),t.copy(r).addScaledVector(tw,i);let m=u*p-d*c;if(m<=0&&c-u>=0&&d-p>=0)return tE.subVectors(s,a),i=(c-u)/(c-u+(d-p)),t.copy(a).addScaledVector(tE,i);let g=1/(m+f+h);return n=f*g,i=h*g,t.copy(r).addScaledVector(tT,n).addScaledVector(tw,i)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let tU={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32},tD={h:0,s:0,l:0},tO={h:0,s:0,l:0};function tF(e,t,n){return(n<0&&(n+=1),n>1&&(n-=1),n<1/6)?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*6*(2/3-n):e}class tz{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){return void 0===t&&void 0===n?e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e):this.setRGB(e,t,n),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=I){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,eu.toWorkingColorSpace(this,t),this}setRGB(e,t,n,i=eu.workingColorSpace){return this.r=e,this.g=t,this.b=n,eu.toWorkingColorSpace(this,i),this}setHSL(e,t,n,i=eu.workingColorSpace){if(e=G(e,1),t=V(t,0,1),n=V(n,0,1),0===t)this.r=this.g=this.b=n;else{let i=n<=.5?n*(1+t):n+t-n*t,r=2*n-i;this.r=tF(r,i,e+1/3),this.g=tF(r,i,e),this.b=tF(r,i,e-1/3)}return eu.toWorkingColorSpace(this,i),this}setStyle(e,t=I){let n;function i(t){void 0!==t&&1>parseFloat(t)&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}if(n=/^(\w+)\(([^\)]*)\)/.exec(e)){let r,a=n[1],s=n[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){let i=n[1],r=i.length;if(3===r)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,t);if(6===r)return this.setHex(parseInt(i,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=I){let n=tU[e.toLowerCase()];return void 0!==n?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=ec(e.r),this.g=ec(e.g),this.b=ec(e.b),this}copyLinearToSRGB(e){return this.r=eh(e.r),this.g=eh(e.g),this.b=eh(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=I){return eu.fromWorkingColorSpace(tB.copy(this),e),65536*Math.round(V(255*tB.r,0,255))+256*Math.round(V(255*tB.g,0,255))+Math.round(V(255*tB.b,0,255))}getHexString(e=I){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=eu.workingColorSpace){let n,i;eu.fromWorkingColorSpace(tB.copy(this),t);let r=tB.r,a=tB.g,s=tB.b,o=Math.max(r,a,s),l=Math.min(r,a,s),u=(l+o)/2;if(l===o)n=0,i=0;else{let e=o-l;switch(i=u<=.5?e/(o+l):e/(2-o-l),o){case r:n=(a-s)/e+6*(a0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(let t in e){let n=e[t];if(void 0===n){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}let i=this[t];if(void 0===i){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){let t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});let n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(e){let t=[];for(let n in e){let i=e[n];delete i.metadata,t.push(i)}return t}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.dispersion&&(n.dispersion=this.dispersion),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapRotation&&(n.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),!0===this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=!0),204!==this.blendSrc&&(n.blendSrc=this.blendSrc),205!==this.blendDst&&(n.blendDst=this.blendDst),100!==this.blendEquation&&(n.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(n.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(n.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(n.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(n.depthFunc=this.depthFunc),!1===this.depthTest&&(n.depthTest=this.depthTest),!1===this.depthWrite&&(n.depthWrite=this.depthWrite),!1===this.colorWrite&&(n.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(n.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(n.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(n.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(n.stencilFuncMask=this.stencilFuncMask),7680!==this.stencilFail&&(n.stencilFail=this.stencilFail),7680!==this.stencilZFail&&(n.stencilZFail=this.stencilZFail),7680!==this.stencilZPass&&(n.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(n.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaHash&&(n.alphaHash=!0),!0===this.alphaToCoverage&&(n.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=!0),!0===this.forceSinglePass&&(n.forceSinglePass=!0),!0===this.wireframe&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),t){let t=i(e.textures),r=i(e.images);t.length>0&&(n.textures=t),r.length>0&&(n.images=r)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,n=null;if(null!==t){let e=t.length;n=Array(e);for(let i=0;i!==e;++i)n[i]=t[i].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class tV extends tH{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new tz(0xffffff),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}let tG=function(){let e=new ArrayBuffer(4),t=new Float32Array(e),n=new Uint32Array(e),i=new Uint32Array(512),r=new Uint32Array(512);for(let e=0;e<256;++e){let t=e-127;t<-27?(i[e]=0,i[256|e]=32768,r[e]=24,r[256|e]=24):t<-14?(i[e]=1024>>-t-14,i[256|e]=1024>>-t-14|32768,r[e]=-t-1,r[256|e]=-t-1):t<=15?(i[e]=t+15<<10,i[256|e]=t+15<<10|32768,r[e]=13,r[256|e]=13):t<128?(i[e]=31744,i[256|e]=64512,r[e]=24,r[256|e]=24):(i[e]=31744,i[256|e]=64512,r[e]=13,r[256|e]=13)}let a=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let e=1;e<1024;++e){let t=e<<13,n=0;for(;(8388608&t)==0;)t<<=1,n-=8388608;t&=-8388609,n+=0x38800000,a[e]=t|n}for(let e=1024;e<2048;++e)a[e]=0x38000000+(e-1024<<13);for(let e=1;e<31;++e)s[e]=e<<23;s[31]=0x47800000,s[32]=0x80000000;for(let e=33;e<63;++e)s[e]=0x80000000+(e-32<<23);s[63]=0xc7800000;for(let e=1;e<64;++e)32!==e&&(o[e]=1024);return{floatView:t,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:a,exponentTable:s,offsetTable:o}}();function tW(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=V(e,-65504,65504),tG.floatView[0]=e;let t=tG.uint32View[0],n=t>>23&511;return tG.baseTable[n]+((8388607&t)>>tG.shiftTable[n])}function tj(e){let t=e>>10;return tG.uint32View[0]=tG.mantissaTable[tG.offsetTable[t]+(1023&e)]+tG.exponentTable[t],tG.floatView[0]}let tX={toHalfFloat:tW,fromHalfFloat:tj},tq=new eE,tY=new Y;class tZ{constructor(e,t,n=!1){if(Array.isArray(e))throw TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=n,this.usage=35044,this.updateRanges=[],this.gpuType=1015,this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,r=this.itemSize;it.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new eR);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new eE(-1/0,-1/0,-1/0),new eE(Infinity,Infinity,Infinity));return}if(void 0!==e){if(this.boundingBox.setFromBufferAttribute(e),t)for(let e=0,n=t.length;e0&&(e.userData=this.userData),void 0!==this.parameters){let t=this.parameters;for(let n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};let t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let t in n){let i=n[t];e.data.attributes[t]=i.toJSON(e.data)}let i={},r=!1;for(let t in this.morphAttributes){let n=this.morphAttributes[t],a=[];for(let t=0,i=n.length;t0&&(i[t]=a,r=!0)}r&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));let s=this.boundingSphere;return null!==s&&(e.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;null!==n&&this.setIndex(n.clone(t));let i=e.attributes;for(let e in i){let n=i[e];this.setAttribute(e,n.clone(t))}let r=e.morphAttributes;for(let e in r){let n=[],i=r[e];for(let e=0,r=i.length;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e(e.far-e.near)**2)||(ni.copy(r).invert(),nr.copy(e.ray).applyMatrix4(ni),(null===n.boundingBox||!1!==nr.intersectsBox(n.boundingBox))&&this._computeIntersections(e,t,nr)))}_computeIntersections(e,t,n){let i,r=this.geometry,a=this.material,s=r.index,o=r.attributes.position,l=r.attributes.uv,u=r.attributes.uv1,c=r.attributes.normal,h=r.groups,d=r.drawRange;if(null!==s)if(Array.isArray(a))for(let r=0,o=h.length;rn.far?null:{distance:l,point:np.clone(),object:e}}(e,t,n,i,no,nl,nu,nd);if(c){let e=new eE;tN.getBarycoord(nd,no,nl,nu,e),r&&(c.uv=tN.getInterpolatedAttribute(r,o,l,u,e,new Y)),a&&(c.uv1=tN.getInterpolatedAttribute(a,o,l,u,e,new Y)),s&&(c.normal=tN.getInterpolatedAttribute(s,o,l,u,e,new eE),c.normal.dot(i.direction)>0&&c.normal.multiplyScalar(-1));let t={a:o,b:l,c:u,normal:new eE,materialIndex:0};tN.getNormal(no,nl,nu,t.normal),c.face=t,c.barycoord=e}return c}class ng extends nn{constructor(e=1,t=1,n=1,i=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:i,heightSegments:r,depthSegments:a};const s=this;i=Math.floor(i),r=Math.floor(r);const o=[],l=[],u=[],c=[];let h=0,d=0;function p(e,t,n,i,r,a,p,f,m,g,v){let _=a/m,y=p/g,x=a/2,b=p/2,S=f/2,M=m+1,T=g+1,w=0,E=0,A=new eE;for(let a=0;a0?1:-1,u.push(A.x,A.y,A.z),c.push(o/m),c.push(1-a/g),w+=1}}for(let e=0;e0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let n={};for(let e in this.extensions)!0===this.extensions[e]&&(n[e]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}class nS extends ty{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new e2,this.projectionMatrix=new e2,this.projectionMatrixInverse=new e2,this.coordinateSystem=2e3}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}let nM=new eE,nT=new Y,nw=new Y;class nE extends nS{constructor(e=50,t=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=2*k*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(.5*B*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*k*Math.atan(Math.tan(.5*B*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,n){nM.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(nM.x,nM.y).multiplyScalar(-e/nM.z),nM.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(nM.x,nM.y).multiplyScalar(-e/nM.z)}getViewSize(e,t){return this.getViewBounds(e,nT,nw),t.subVectors(nw,nT)}setViewOffset(e,t,n,i,r,a){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(.5*B*this.fov)/this.zoom,n=2*t,i=this.aspect*n,r=-.5*i,a=this.view;if(null!==this.view&&this.view.enabled){let e=a.fullWidth,s=a.fullHeight;r+=a.offsetX*i/e,t-=a.offsetY*n/s,i*=a.width/e,n*=a.height/s}let s=this.filmOffset;0!==s&&(r+=e*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,t,t-n,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}class nA extends ty{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new nE(-90,1,e,t);i.layers=this.layers,this.add(i);const r=new nE(-90,1,e,t);r.layers=this.layers,this.add(r);const a=new nE(-90,1,e,t);a.layers=this.layers,this.add(a);const s=new nE(-90,1,e,t);s.layers=this.layers,this.add(s);const o=new nE(-90,1,e,t);o.layers=this.layers,this.add(o);const l=new nE(-90,1,e,t);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[n,i,r,a,s,o]=t;for(let e of t)this.remove(e);if(2e3===e)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),s.up.set(0,1,0),s.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else if(2001===e)n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),s.up.set(0,-1,0),s.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1);else throw Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(let e of t)this.add(e),e.updateMatrixWorld()}update(e,t){null===this.parent&&this.updateMatrixWorld();let{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[r,a,s,o,l,u]=this.children,c=e.getRenderTarget(),h=e.getActiveCubeFace(),d=e.getActiveMipmapLevel(),p=e.xr.enabled;e.xr.enabled=!1;let f=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0,i),e.render(t,r),e.setRenderTarget(n,1,i),e.render(t,a),e.setRenderTarget(n,2,i),e.render(t,s),e.setRenderTarget(n,3,i),e.render(t,o),e.setRenderTarget(n,4,i),e.render(t,l),n.texture.generateMipmaps=f,e.setRenderTarget(n,5,i),e.render(t,u),e.setRenderTarget(c,h,d),e.xr.enabled=p,n.texture.needsPMREMUpdate=!0}}class nC extends ev{constructor(e,t,n,i,r,a,s,o,l,u){super(e=void 0!==e?e:[],t=void 0!==t?t:301,n,i,r,a,s,o,l,u),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class nR extends ex{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1};this.texture=new nC([n,n,n,n,n,n],t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:1006}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},i=new ng(5,5,5),r=new nb({name:"CubemapFromEquirect",uniforms:nv(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=t;let a=new nf(i,r),s=t.minFilter;return 1008===t.minFilter&&(t.minFilter=1006),new nA(1,10,this).update(e,a),t.minFilter=s,a.geometry.dispose(),a.material.dispose(),this}clear(e,t,n,i){let r=e.getRenderTarget();for(let r=0;r<6;r++)e.setRenderTarget(this,r),e.clear(t,n,i);e.setRenderTarget(r)}}class nP{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new tz(e),this.density=t}clone(){return new nP(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class nI{constructor(e,t=1,n=1e3){this.isFog=!0,this.name="",this.color=new tz(e),this.near=t,this.far=n}clone(){return new nI(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class nL extends ty{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new tn,this.environmentIntensity=1,this.environmentRotation=new tn,this.overrideMaterial=null,"u">typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}}class nN{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=35044,this.updateRanges=[],this.version=0,this.uuid=H()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,r=this.stride;ie.far||t.push({distance:o,point:nF.clone(),uv:tN.getInterpolation(nF,nG,nW,nj,nX,nq,nY,new Y),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function nJ(e,t,n,i,r,a){nk.subVectors(e,n).addScalar(.5).multiply(i),void 0!==r?(nH.x=a*nk.x-r*nk.y,nH.y=r*nk.x+a*nk.y):nH.copy(nk),e.copy(t),e.x+=nH.x,e.y+=nH.y,e.applyMatrix4(nV)}let nK=new eE,n$=new eE;class nQ extends ty{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let e=0,n=t.length;e0){let n,i;for(n=1,i=t.length;n0){nK.setFromMatrixPosition(this.matrixWorld);let n=e.ray.origin.distanceTo(nK);this.getObjectForDistance(n).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){let n,i;nK.setFromMatrixPosition(e.matrixWorld),n$.setFromMatrixPosition(this.matrixWorld);let r=nK.distanceTo(n$)/e.zoom;for(n=1,t[0].object.visible=!0,i=t.length;n=e)t[n-1].object.visible=!1,t[n].object.visible=!0;else break}for(this._currentLevel=n-1;n1?null:t.copy(e.start).addScaledVector(n,r)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let n=t||i_.getNormalMatrix(e),i=this.coplanarPoint(ig).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}let ix=new eq,ib=new eE;class iS{constructor(e=new iy,t=new iy,n=new iy,i=new iy,r=new iy,a=new iy){this.planes=[e,t,n,i,r,a]}set(e,t,n,i,r,a){let s=this.planes;return s[0].copy(e),s[1].copy(t),s[2].copy(n),s[3].copy(i),s[4].copy(r),s[5].copy(a),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=2e3){let n=this.planes,i=e.elements,r=i[0],a=i[1],s=i[2],o=i[3],l=i[4],u=i[5],c=i[6],h=i[7],d=i[8],p=i[9],f=i[10],m=i[11],g=i[12],v=i[13],_=i[14],y=i[15];if(n[0].setComponents(o-r,h-l,m-d,y-g).normalize(),n[1].setComponents(o+r,h+l,m+d,y+g).normalize(),n[2].setComponents(o+a,h+u,m+p,y+v).normalize(),n[3].setComponents(o-a,h-u,m-p,y-v).normalize(),n[4].setComponents(o-s,h-c,m-f,y-_).normalize(),2e3===t)n[5].setComponents(o+s,h+c,m+f,y+_).normalize();else if(2001===t)n[5].setComponents(s,c,f,_).normalize();else throw Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),ix.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),ix.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(ix)}intersectsSprite(e){return ix.center.set(0,0,0),ix.radius=.7071067811865476,ix.applyMatrix4(e.matrixWorld),this.intersectsSphere(ix)}intersectsSphere(e){let t=this.planes,n=e.center,i=-e.radius;for(let e=0;e<6;e++)if(t[e].distanceToPoint(n)0?e.max.x:e.min.x,ib.y=i.normal.y>0?e.max.y:e.min.y,ib.z=i.normal.z>0?e.max.z:e.min.z,0>i.distanceToPoint(ib))return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(0>t[n].distanceToPoint(e))return!1;return!0}clone(){return new this.constructor().copy(this)}}function iM(e,t){return e-t}function iT(e,t){return e.z-t.z}function iw(e,t){return t.z-e.z}let iE=new e2,iA=new tz(1,1,1),iC=new iS,iR=new eR,iP=new eq,iI=new eE,iL=new eE,iN=new eE,iU=new class{constructor(){this.index=0,this.pool=[],this.list=[]}push(e,t,n,i){let r=this.pool,a=this.list;this.index>=r.length&&r.push({start:-1,count:-1,z:-1,index:-1});let s=r[this.index];a.push(s),this.index++,s.start=e,s.count=t,s.z=n,s.index=i}reset(){this.list.length=0,this.index=0}},iD=new nf,iO=[];function iF(e,t){if(e.constructor!==t.constructor){let n=Math.min(e.length,t.length);for(let i=0;i65535?new Uint32Array(i):new Uint16Array(i);t.setIndex(new tZ(e,1))}this._geometryInitialized=!0}}_validateGeometry(e){let t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(let n in t.attributes){if(!e.hasAttribute(n))throw Error(`THREE.BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);let i=e.getAttribute(n),r=t.getAttribute(n);if(i.itemSize!==r.itemSize||i.normalized!==r.normalized)throw Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){let t=this._instanceInfo;if(e<0||e>=t.length||!1===t[e].active)throw Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){let t=this._geometryInfo;if(e<0||e>=t.length||!1===t[e].active)throw Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new eR);let e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let n=0,i=t.length;n=this.maxInstanceCount&&0===this._availableInstanceIds.length)throw Error("THREE.BatchedMesh: Maximum item count reached.");let t={visible:!0,active:!0,geometryIndex:e},n=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(iM),n=this._availableInstanceIds.shift(),this._instanceInfo[n]=t):(n=this._instanceInfo.length,this._instanceInfo.push(t));let i=this._matricesTexture;iE.identity().toArray(i.image.data,16*n),i.needsUpdate=!0;let r=this._colorsTexture;return r&&(iA.toArray(r.image.data,4*n),r.needsUpdate=!0),this._visibilityChanged=!0,n}addGeometry(e,t=-1,n=-1){let i;this._initializeGeometry(e),this._validateGeometry(e);let r={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},a=this._geometryInfo;r.vertexStart=this._nextVertexStart,r.reservedVertexCount=-1===t?e.getAttribute("position").count:t;let s=e.getIndex();if(null!==s&&(r.indexStart=this._nextIndexStart,r.reservedIndexCount=-1===n?s.count:n),-1!==r.indexStart&&r.indexStart+r.reservedIndexCount>this._maxIndexCount||r.vertexStart+r.reservedVertexCount>this._maxVertexCount)throw Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(iM),a[i=this._availableGeometryIds.shift()]=r):(i=this._geometryCount,this._geometryCount++,a.push(r)),this.setGeometryAt(i,e),this._nextIndexStart=r.indexStart+r.reservedIndexCount,this._nextVertexStart=r.vertexStart+r.reservedVertexCount,i}setGeometryAt(e,t){if(e>=this._geometryCount)throw Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);let n=this.geometry,i=null!==n.getIndex(),r=n.getIndex(),a=t.getIndex(),s=this._geometryInfo[e];if(i&&a.count>s.reservedIndexCount||t.attributes.position.count>s.reservedVertexCount)throw Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");let o=s.vertexStart,l=s.reservedVertexCount;for(let e in s.vertexCount=t.getAttribute("position").count,n.attributes){let i=t.getAttribute(e),r=n.getAttribute(e);!function(e,t,n=0){let i=t.itemSize;if(e.isInterleavedBufferAttribute||e.array.constructor!==t.array.constructor){let r=e.count;for(let a=0;a=t.length||!1===t[e].active)return this;let n=this._instanceInfo;for(let t=0,i=n.length;tt).sort((e,t)=>n[e].vertexStart-n[t].vertexStart),r=this.geometry;for(let a=0,s=n.length;a=this._geometryCount)return null;let n=this.geometry,i=this._geometryInfo[e];if(null===i.boundingBox){let e=new eR,t=n.index,r=n.attributes.position;for(let n=i.start,a=i.start+i.count;n=this._geometryCount)return null;let n=this.geometry,i=this._geometryInfo[e];if(null===i.boundingSphere){let t=new eq;this.getBoundingBoxAt(e,iR),iR.getCenter(t.center);let r=n.index,a=n.attributes.position,s=0;for(let e=i.start,n=i.start+i.count;ee.active);if(Math.max(...n.map(e=>e.vertexStart+e.reservedVertexCount))>e)throw Error(`BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...n.map(e=>e.indexStart+e.reservedIndexCount))>t)throw Error(`BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);let i=this.geometry;i.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new nn,this._initializeGeometry(i));let r=this.geometry;for(let e in i.index&&iF(i.index.array,r.index.array),i.attributes)iF(i.attributes[e].array,r.attributes[e].array)}raycast(e,t){let n=this._instanceInfo,i=this._geometryInfo,r=this.matrixWorld,a=this.geometry;iD.material=this.material,iD.geometry.index=a.index,iD.geometry.attributes=a.attributes,null===iD.geometry.boundingBox&&(iD.geometry.boundingBox=new eR),null===iD.geometry.boundingSphere&&(iD.geometry.boundingSphere=new eq);for(let a=0,s=n.length;a({...e,boundingBox:null!==e.boundingBox?e.boundingBox.clone():null,boundingSphere:null!==e.boundingSphere?e.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(e=>({...e})),this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),null!==this._colorsTexture&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,null!==this._colorsTexture&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(e,t,n,i,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;let a=i.getIndex(),s=null===a?1:a.array.BYTES_PER_ELEMENT,o=this._instanceInfo,l=this._multiDrawStarts,u=this._multiDrawCounts,c=this._geometryInfo,h=this.perObjectFrustumCulled,d=this._indirectTexture,p=d.image.data;h&&(iE.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),iC.setFromProjectionMatrix(iE,e.coordinateSystem));let f=0;if(this.sortObjects){iE.copy(this.matrixWorld).invert(),iI.setFromMatrixPosition(n.matrixWorld).applyMatrix4(iE),iL.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(iE);for(let e=0,t=o.length;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;ei)return;ij.applyMatrix4(e.matrixWorld);let o=t.ray.origin.distanceTo(ij);if(!(ot.far))return{distance:o,point:iX.clone().applyMatrix4(e.matrixWorld),index:r,face:null,faceIndex:null,barycoord:null,object:e}}let iZ=new eE,iJ=new eE;class iK extends iq{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){let e=this.geometry;if(null===e.index){let t=e.attributes.position,n=[];for(let e=0,i=t.count;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;er.far)return;a.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:t,face:null,faceIndex:null,barycoord:null,object:s})}}class i6 extends ty{constructor(){super(),this.isGroup=!0,this.type="Group"}}class i8 extends ev{constructor(e,t,n,i,r,a,s,o,l){super(e,t,n,i,r,a,s,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==a?a:1006,this.magFilter=void 0!==r?r:1006,this.generateMipmaps=!1;const u=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(function t(){u.needsUpdate=!0,e.requestVideoFrameCallback(t)})}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;!1=="requestVideoFrameCallback"in e&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class i9 extends ev{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=1003,this.minFilter=1003,this.generateMipmaps=!1,this.needsUpdate=!0}}class i7 extends ev{constructor(e,t,n,i,r,a,s,o,l,u,c,h){super(null,a,s,o,l,u,i,r,c,h),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class re extends i7{constructor(e,t,n,i,r,a){super(e,t,n,r,a),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=1001,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class rt extends i7{constructor(e,t,n){super(void 0,e[0].width,e[0].height,t,n,301),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class rn extends ev{constructor(e,t,n,i,r,a,s,o,l){super(e,t,n,i,r,a,s,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class ri extends ev{constructor(e,t,n,i,r,a,s,o,l,u=1026){if(1026!==u&&1027!==u)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&1026===u&&(n=1014),void 0===n&&1027===u&&(n=1020),super(null,i,r,a,s,o,u,n,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==s?s:1003,this.minFilter=void 0!==o?o:1003,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return null!==this.compareFunction&&(t.compareFunction=this.compareFunction),t}}class rr{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t=[],n,i=this.getPoint(0),r=0;t.push(0);for(let a=1;a<=e;a++)t.push(r+=(n=this.getPoint(a/e)).distanceTo(i)),i=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let n,i=this.getLengths(),r=0,a=i.length;n=t||e*i[a-1];let s=0,o=a-1,l;for(;s<=o;)if((l=i[r=Math.floor(s+(o-s)/2)]-n)<0)s=r+1;else if(l>0)o=r-1;else{o=r;break}if(i[r=o]===n)return r/(a-1);let u=i[r],c=i[r+1];return(r+(n-u)/(c-u))/(a-1)}getTangent(e,t){let n=e-1e-4,i=e+1e-4;n<0&&(n=0),i>1&&(i=1);let r=this.getPoint(n),a=this.getPoint(i),s=t||(r.isVector2?new Y:new eE);return s.copy(a).sub(r).normalize(),s}getTangentAt(e,t){let n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){let n=new eE,i=[],r=[],a=[],s=new eE,o=new e2;for(let t=0;t<=e;t++){let n=t/e;i[t]=this.getTangentAt(n,new eE)}r[0]=new eE,a[0]=new eE;let l=Number.MAX_VALUE,u=Math.abs(i[0].x),c=Math.abs(i[0].y),h=Math.abs(i[0].z);u<=l&&(l=u,n.set(1,0,0)),c<=l&&(l=c,n.set(0,1,0)),h<=l&&n.set(0,0,1),s.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],s),a[0].crossVectors(i[0],r[0]);for(let t=1;t<=e;t++){if(r[t]=r[t-1].clone(),a[t]=a[t-1].clone(),s.crossVectors(i[t-1],i[t]),s.length()>Number.EPSILON){s.normalize();let e=Math.acos(V(i[t-1].dot(i[t]),-1,1));r[t].applyMatrix4(o.makeRotationAxis(s,e))}a[t].crossVectors(i[t],r[t])}if(!0===t){let t=Math.acos(V(r[0].dot(r[e]),-1,1));t/=e,i[0].dot(s.crossVectors(r[0],r[e]))>0&&(t=-t);for(let n=1;n<=e;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],t*n)),a[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:a}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class ra extends rr{constructor(e=0,t=0,n=1,i=1,r=0,a=2*Math.PI,s=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=a,this.aClockwise=s,this.aRotation=o}getPoint(e,t=new Y){let n=2*Math.PI,i=this.aEndAngle-this.aStartAngle,r=Math.abs(i)n;)i-=n;i0?0:(Math.floor(Math.abs(o)/a)+1)*a:0===l&&o===a-1&&(o=a-2,l=1),this.closed||o>0?n=r[(o-1)%a]:(rl.subVectors(r[0],r[1]).add(r[0]),n=rl);let u=r[o%a],c=r[(o+1)%a];if(this.closed||o+2n.length-2?n.length-1:r+1],u=n[r>n.length-3?n.length-1:r+2];return t.set(rp(a,s.x,o.x,l.x,u.x),rp(a,s.y,o.y,l.y,u.y)),t}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){let e=i[r]-n,a=this.curves[r],s=a.getLength(),o=0===s?0:1-e/s;return a.getPointAt(o,t)}r++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let n=0,i=this.curves.length;n1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){let e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);let u=l.getPoint(1);return this.currentPoint.copy(u),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class rE extends nn{constructor(e=[new Y(0,-.5),new Y(.5,0),new Y(0,.5)],t=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:i},t=Math.floor(t),i=V(i,0,2*Math.PI);const r=[],a=[],s=[],o=[],l=[],u=1/t,c=new eE,h=new Y,d=new eE,p=new eE,f=new eE;let m=0,g=0;for(let t=0;t<=e.length-1;t++)switch(t){case 0:m=e[t+1].x-e[t].x,d.x=+(g=e[t+1].y-e[t].y),d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[t+1].x-e[t].x,d.x=+(g=e[t+1].y-e[t].y),d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let r=0;r<=t;r++){const d=n+r*u*i,p=Math.sin(d),f=Math.cos(d);for(let n=0;n<=e.length-1;n++){c.x=e[n].x*p,c.y=e[n].y,c.z=e[n].x*f,a.push(c.x,c.y,c.z),h.x=r/t,h.y=n/(e.length-1),s.push(h.x,h.y);const i=o[3*n+0]*p,u=o[3*n+1],d=o[3*n+0]*f;l.push(i,u,d)}}for(let n=0;n0||0!==i)&&(u.push(a,s,l),_+=3),(t>0||i!==r-1)&&(u.push(s,o,l),_+=3)}l.addGroup(g,_,0),g+=_})(),!1===a&&(e>0&&v(!0),t>0&&v(!1)),this.setIndex(u),this.setAttribute("position",new t4(c,3)),this.setAttribute("normal",new t4(h,3)),this.setAttribute("uv",new t4(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new rR(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class rP extends rR{constructor(e=1,t=1,n=32,i=1,r=!1,a=0,s=2*Math.PI){super(0,e,t,n,i,r,a,s),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:a,thetaLength:s}}static fromJSON(e){return new rP(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class rI extends nn{constructor(e=[],t=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:i};const r=[],a=[];function s(e){r.push(e.x,e.y,e.z)}function o(t,n){let i=3*t;n.x=e[i+0],n.y=e[i+1],n.z=e[i+2]}function l(e,t,n,i){i<0&&1===e.x&&(a[t]=e.x-1),0===n.x&&0===n.z&&(a[t]=i/2/Math.PI+.5)}function u(e){return Math.atan2(e.z,-e.x)}(function(e){let n=new eE,i=new eE,r=new eE;for(let a=0;a.9&&s<.1&&(t<.2&&(a[e+0]+=1),n<.2&&(a[e+2]+=1),i<.2&&(a[e+4]+=1))}}()}(),this.setAttribute("position",new t4(r,3)),this.setAttribute("normal",new t4(r.slice(),3)),this.setAttribute("uv",new t4(a,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new rI(e.vertices,e.indices,e.radius,e.details)}}class rL extends rI{constructor(e=1,t=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new rL(e.radius,e.detail)}}let rN=new eE,rU=new eE,rD=new eE,rO=new tN;class rF extends nn{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const n=Math.cos(B*t),i=e.getIndex(),r=e.getAttribute("position"),a=i?i.count:r.count,s=[0,0,0],o=["a","b","c"],l=[,,,],u={},c=[];for(let e=0;e=n.next.y&&n.next.y!==n.y){let e=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=a&&e>i&&(i=e,r=n.x=n.x&&n.x>=l&&a!==n.x&&rW(sr.x||n.x===r.x&&(d=r,p=n,0>rj(d.prev,d,p.prev)&&0>rj(p.next,d,d.next))))&&(r=n,c=h)),n=n.next}while(n!==o)return r}(e,t);if(!n)return t;let i=rK(n,e);return rH(i,i.next),rH(n,n.next)}(u[r],n);return n}(e,t,d,n)),e.length>80*n){i=a=e[0],r=s=e[1];for(let t=n;ta&&(a=o),l>s&&(s=l);u=0!==(u=Math.max(a-i,s-r))?32767/u:0}return function e(t,n,i,r,a,s,o){if(!t)return;!o&&s&&function(e,t,n,i){let r=e;do 0===r.z&&(r.z=rG(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==e)r.prevZ.nextZ=null,r.prevZ=null,function(e){let t,n,i,r,a,s,o,l,u=1;do{for(n=e,e=null,a=null,s=0;n;){for(s++,i=n,o=0,t=0;t0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;n=i}a.nextZ=null,u*=2}while(s>1)}(r)}(t,r,a,s);let l=t,u,c;for(;t.prev!==t.next;){if(u=t.prev,c=t.next,s?function(e,t,n,i){let r=e.prev,a=e.next;if(rj(r,e,a)>=0)return!1;let s=r.x,o=e.x,l=a.x,u=r.y,c=e.y,h=a.y,d=so?s>l?s:l:o>l?o:l,m=u>c?u>h?u:h:c>h?c:h,g=rG(d,p,t,n,i),v=rG(f,m,t,n,i),_=e.prevZ,y=e.nextZ;for(;_&&_.z>=g&&y&&y.z<=v;){if(_.x>=d&&_.x<=f&&_.y>=p&&_.y<=m&&_!==r&&_!==a&&rW(s,u,o,c,l,h,_.x,_.y)&&rj(_.prev,_,_.next)>=0||(_=_.prevZ,y.x>=d&&y.x<=f&&y.y>=p&&y.y<=m&&y!==r&&y!==a&&rW(s,u,o,c,l,h,y.x,y.y)&&rj(y.prev,y,y.next)>=0))return!1;y=y.nextZ}for(;_&&_.z>=g;){if(_.x>=d&&_.x<=f&&_.y>=p&&_.y<=m&&_!==r&&_!==a&&rW(s,u,o,c,l,h,_.x,_.y)&&rj(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;y&&y.z<=v;){if(y.x>=d&&y.x<=f&&y.y>=p&&y.y<=m&&y!==r&&y!==a&&rW(s,u,o,c,l,h,y.x,y.y)&&rj(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}(t,r,a,s):function(e){let t=e.prev,n=e.next;if(rj(t,e,n)>=0)return!1;let i=t.x,r=e.x,a=n.x,s=t.y,o=e.y,l=n.y,u=ir?i>a?i:a:r>a?r:a,d=s>o?s>l?s:l:o>l?o:l,p=n.next;for(;p!==t;){if(p.x>=u&&p.x<=h&&p.y>=c&&p.y<=d&&rW(i,s,r,o,a,l,p.x,p.y)&&rj(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}(t)){n.push(u.i/i|0),n.push(t.i/i|0),n.push(c.i/i|0),rQ(t),t=c.next,l=c.next;continue}if((t=c)===l){o?1===o?e(t=function(e,t,n){let i=e;do{let r=i.prev,a=i.next.next;!rX(r,a)&&rq(r,i,i.next,a)&&rJ(r,a)&&rJ(a,r)&&(t.push(r.i/n|0),t.push(i.i/n|0),t.push(a.i/n|0),rQ(i),rQ(i.next),i=e=a),i=i.next}while(i!==e)return rH(i)}(rH(t),n,i),n,i,r,a,s,2):2===o&&function(t,n,i,r,a,s){let o=t;do{let t=o.next.next;for(;t!==o.prev;){var l,u;if(o.i!==t.i&&(l=o,u=t,l.next.i!==u.i&&l.prev.i!==u.i&&!function(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&rq(n,n.next,e,t))return!0;n=n.next}while(n!==e)return!1}(l,u)&&(rJ(l,u)&&rJ(u,l)&&function(e,t){let n=e,i=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&r<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e)return i}(l,u)&&(rj(l.prev,l,u.prev)||rj(l,u.prev,u))||rX(l,u)&&rj(l.prev,l,l.next)>0&&rj(u.prev,u,u.next)>0))){let l=rK(o,t);o=rH(o,o.next),l=rH(l,l.next),e(o,n,i,r,a,s,0),e(l,n,i,r,a,s,0);return}t=t.next}o=o.next}while(o!==t)}(t,n,i,r,a,s):e(rH(t),n,i,r,a,s,1);break}}}(d,p,n,i,r,u,0),p};function rk(e,t,n,i,r){let a,s;if(r===function(e,t,n,i){let r=0;for(let a=t,s=n-i;a0)for(a=t;a=t;a-=i)s=r$(a,e[a],e[a+1],s);return s&&rX(s,s.next)&&(rQ(s),s=s.next),s}function rH(e,t){if(!e)return e;t||(t=e);let n=e,i;do if(i=!1,!n.steiner&&(rX(n,n.next)||0===rj(n.prev,n,n.next))){if(rQ(n),(n=t=n.prev)===n.next)break;i=!0}else n=n.next;while(i||n!==t)return t}function rV(e,t){return e.x-t.x}function rG(e,t,n,i,r){return(e=((e=((e=((e=((e=(e-n)*r|0)|e<<8)&0xff00ff)|e<<4)&0xf0f0f0f)|e<<2)&0x33333333)|e<<1)&0x55555555)|(t=((t=((t=((t=((t=(t-i)*r|0)|t<<8)&0xff00ff)|t<<4)&0xf0f0f0f)|t<<2)&0x33333333)|t<<1)&0x55555555)<<1}function rW(e,t,n,i,r,a,s,o){return(r-s)*(t-o)>=(e-s)*(a-o)&&(e-s)*(i-o)>=(n-s)*(t-o)&&(n-s)*(a-o)>=(r-s)*(i-o)}function rj(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function rX(e,t){return e.x===t.x&&e.y===t.y}function rq(e,t,n,i){let r=rZ(rj(e,t,n)),a=rZ(rj(e,t,i)),s=rZ(rj(n,i,e)),o=rZ(rj(n,i,t));return!!(r!==a&&s!==o||0===r&&rY(e,n,t)||0===a&&rY(e,i,t)||0===s&&rY(n,e,i)||0===o&&rY(n,t,i))}function rY(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function rZ(e){return e>0?1:e<0?-1:0}function rJ(e,t){return 0>rj(e.prev,e,e.next)?rj(e,t,e.next)>=0&&rj(e,e.prev,t)>=0:0>rj(e,t,e.prev)||0>rj(e,e.next,t)}function rK(e,t){let n=new r0(e.i,e.x,e.y),i=new r0(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,a.next=i,i.prev=a,i}function r$(e,t,n,i){let r=new r0(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function rQ(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function r0(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class r1{static area(e){let t=e.length,n=0;for(let i=t-1,r=0;rr1.area(e)}static triangulateShape(e,t){let n=[],i=[],r=[];r2(e),r3(n,e);let a=e.length;t.forEach(r2);for(let e=0;e2&&e[t-1].equals(e[0])&&e.pop()}function r3(e,t){for(let n=0;nNumber.EPSILON){let h=Math.sqrt(c),d=Math.sqrt(l*l+u*u),p=t.x-o/h,f=t.y+s/h,m=((n.x-u/d-p)*u-(n.y+l/d-f)*l)/(s*u-o*l),g=(i=p+s*m-e.x)*i+(r=f+o*m-e.y)*r;if(g<=2)return new Y(i,r);a=Math.sqrt(g/2)}else{let e=!1;s>Number.EPSILON?l>Number.EPSILON&&(e=!0):s<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(u)&&(e=!0),e?(i=-o,r=s,a=Math.sqrt(c)):(i=s,r=o,a=Math.sqrt(c/2))}return new Y(i/a,r/a)}let I=[];for(let e=0,t=E.length,n=t-1,i=e+1;e=0;e--){let t=e/v,n=f*Math.cos(t*Math.PI/2),i=m*Math.sin(t*Math.PI/2)+g;for(let e=0,t=E.length;e=0;){let a=r,s=r-1;s<0&&(s=e.length-1);for(let e=0,r=h+2*v;e0)&&d.push(t,r,l),(e!==n-1||o0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class ap extends tH{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new tz(0xffffff),this.specular=new tz(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class af extends tH{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new tz(0xffffff),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class am extends tH{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class ag extends tH{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new tz(0xffffff),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class av extends tH{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class a_ extends tH{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}class ay extends tH{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new tz(0xffffff),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ax extends iB{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function ab(e,t,n){return e&&(n||e.constructor!==t)?"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e):e}function aS(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function aM(e){let t=e.length,n=Array(t);for(let e=0;e!==t;++e)n[e]=e;return n.sort(function(t,n){return e[t]-e[n]}),n}function aT(e,t,n){let i=e.length,r=new e.constructor(i);for(let a=0,s=0;s!==i;++a){let i=n[a]*t;for(let n=0;n!==t;++n)r[s++]=e[i+n]}return r}function aw(e,t,n,i){let r=1,a=e[0];for(;void 0!==a&&void 0===a[i];)a=e[r++];if(void 0===a)return;let s=a[i];if(void 0!==s)if(Array.isArray(s))do void 0!==(s=a[i])&&(t.push(a.time),n.push.apply(n,s)),a=e[r++];while(void 0!==a)else if(void 0!==s.toArray)do void 0!==(s=a[i])&&(t.push(a.time),s.toArray(n,n.length)),a=e[r++];while(void 0!==a)else do void 0!==(s=a[i])&&(t.push(a.time),n.push(s)),a=e[r++];while(void 0!==a)}let aE={convertArray:ab,isTypedArray:aS,getKeyframeOrder:aM,sortedArray:aT,flattenJSON:aw,subclip:function(e,t,n,i,r=30){let a=e.clone();a.name=t;let s=[];for(let e=0;e=i)){l.push(t.times[e]);for(let n=0;na.tracks[e].times[0]&&(o=a.tracks[e].times[0]);for(let e=0;e=r.times[d]){let e=d*u+l,t=e+u-l;i=r.values.slice(e,t)}else{let e=r.createInterpolant(),t=l,n=u-l;e.evaluate(a),i=e.resultBuffer.slice(t,n)}"quaternion"===s&&new ew().fromArray(i).normalize().conjugate().toArray(i);let p=o.times.length;for(let e=0;e=r)){let s=t[1];e=(r=t[--n-1]))break i}a=n,n=0;break r}break n}for(;n>>1;et;)--a;if(++a,0!==r||a!==i){r>=a&&(r=(a=Math.max(a,1))-1);let e=this.getValueSize();this.times=n.slice(r,a),this.values=this.values.slice(r*e,a*e)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let t=0;t!==r;t++){let i=n[t];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,t,i),e=!1;break}if(null!==a&&a>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,t,i,a),e=!1;break}a=i}if(void 0!==i&&aS(i))for(let t=0,n=i.length;t!==n;++t){let n=i[t];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,t,n),e=!1;break}}return e}optimize(){let e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),i=2302===this.getInterpolation(),r=e.length-1,a=1;for(let s=1;s0){e[a]=e[r];for(let e=r*n,i=a*n,s=0;s!==n;++s)t[i+s]=t[e+s];++a}return a!==e.length?(this.times=e.slice(0,a),this.values=t.slice(0,a*n)):(this.times=e,this.values=t),this}clone(){let e=this.times.slice(),t=this.values.slice(),n=new this.constructor(this.name,e,t);return n.createInterpolant=this.createInterpolant,n}}aI.prototype.TimeBufferType=Float32Array,aI.prototype.ValueBufferType=Float32Array,aI.prototype.DefaultInterpolation=2301;class aL extends aI{constructor(e,t,n){super(e,t,n)}}aL.prototype.ValueTypeName="bool",aL.prototype.ValueBufferType=Array,aL.prototype.DefaultInterpolation=2300,aL.prototype.InterpolantFactoryMethodLinear=void 0,aL.prototype.InterpolantFactoryMethodSmooth=void 0;class aN extends aI{}aN.prototype.ValueTypeName="color";class aU extends aI{}aU.prototype.ValueTypeName="number";class aD extends aA{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){let r=this.resultBuffer,a=this.sampleValues,s=this.valueSize,o=(n-t)/(i-t),l=e*s;for(let e=l+s;l!==e;l+=4)ew.slerpFlat(r,0,a,l-s,a,l,o);return r}}class aO extends aI{InterpolantFactoryMethodLinear(e){return new aD(this.times,this.values,this.getValueSize(),e)}}aO.prototype.ValueTypeName="quaternion",aO.prototype.InterpolantFactoryMethodSmooth=void 0;class aF extends aI{constructor(e,t,n){super(e,t,n)}}aF.prototype.ValueTypeName="string",aF.prototype.ValueBufferType=Array,aF.prototype.DefaultInterpolation=2300,aF.prototype.InterpolantFactoryMethodLinear=void 0,aF.prototype.InterpolantFactoryMethodSmooth=void 0;class az extends aI{}az.prototype.ValueTypeName="vector";class aB{constructor(e="",t=-1,n=[],i=2500){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=H(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],n=e.tracks,i=1/(e.fps||1);for(let e=0,r=n.length;e!==r;++e)t.push((function(e){if(void 0===e.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");let t=function(e){switch(e.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return aU;case"vector":case"vector2":case"vector3":case"vector4":return az;case"color":return aN;case"quaternion":return aO;case"bool":case"boolean":return aL;case"string":return aF}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+e)}(e.type);if(void 0===e.times){let t=[],n=[];aw(e.keys,t,n,"value"),e.times=t,e.values=n}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)})(n[e]).scale(i));let r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){let t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let e=0,i=n.length;e!==i;++e)t.push(aI.toJSON(n[e]));return i}static CreateFromMorphTargetSequence(e,t,n,i){let r=t.length,a=[];for(let e=0;e1){let e=a[1],t=i[e];t||(i[e]=t=[]),t.push(n)}}let a=[];for(let e in i)a.push(this.CreateFromMorphTargetSequence(e,i[e],t,n));return a}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let n=function(e,t,n,i,r){if(0!==n.length){let a=[],s=[];aw(n,a,s,i),0!==a.length&&r.push(new e(t,a,s))}},i=[],r=e.name||"default",a=e.fps||30,s=e.blendMode,o=e.length||-1,l=e.hierarchy||[];for(let e=0;e{t&&t(r),this.manager.itemEnd(e)},0),r;if(void 0!==aW[e])return void aW[e].push({onLoad:t,onProgress:n,onError:i});aW[e]=[],aW[e].push({onLoad:t,onProgress:n,onError:i});let a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),s=this.mimeType,o=this.responseType;fetch(a).then(t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"u"{if(i)e.close();else{let i=new ProgressEvent("progress",{lengthComputable:s,loaded:o+=r.byteLength,total:a});for(let e=0,t=n.length;e{e.error(t)})}()}}))}throw new aj(`fetch for "${t.url}" responded with ${t.status}: ${t.statusText}`,t)}).then(e=>{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then(e=>new DOMParser().parseFromString(e,s));case"json":return e.json();default:if(void 0===s)return e.text();{let t=/charset="?([^;"\s]*)"?/i.exec(s),n=new TextDecoder(t&&t[1]?t[1].toLowerCase():void 0);return e.arrayBuffer().then(e=>n.decode(e))}}}).then(t=>{ak.add(e,t);let n=aW[e];delete aW[e];for(let e=0,i=n.length;e{let n=aW[e];if(void 0===n)throw this.manager.itemError(e),t;delete aW[e];for(let e=0,i=n.length;e{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class aq extends aG{constructor(e){super(e)}load(e,t,n,i){let r=this,a=new aX(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(n){try{t(r.parse(JSON.parse(n)))}catch(t){i?i(t):console.error(t),r.manager.itemError(e)}},n,i)}parse(e){let t=[];for(let n=0;n0:i.vertexColors=e.vertexColors),void 0!==e.uniforms)for(let t in e.uniforms){let r=e.uniforms[t];switch(i.uniforms[t]={},r.type){case"t":i.uniforms[t].value=n(r.value);break;case"c":i.uniforms[t].value=new tz().setHex(r.value);break;case"v2":i.uniforms[t].value=new Y().fromArray(r.value);break;case"v3":i.uniforms[t].value=new eE().fromArray(r.value);break;case"v4":i.uniforms[t].value=new e_().fromArray(r.value);break;case"m3":i.uniforms[t].value=new Z().fromArray(r.value);break;case"m4":i.uniforms[t].value=new e2().fromArray(r.value);break;default:i.uniforms[t].value=r.value}}if(void 0!==e.defines&&(i.defines=e.defines),void 0!==e.vertexShader&&(i.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(i.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(i.glslVersion=e.glslVersion),void 0!==e.extensions)for(let t in e.extensions)i.extensions[t]=e.extensions[t];if(void 0!==e.lights&&(i.lights=e.lights),void 0!==e.clipping&&(i.clipping=e.clipping),void 0!==e.size&&(i.size=e.size),void 0!==e.sizeAttenuation&&(i.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(i.map=n(e.map)),void 0!==e.matcap&&(i.matcap=n(e.matcap)),void 0!==e.alphaMap&&(i.alphaMap=n(e.alphaMap)),void 0!==e.bumpMap&&(i.bumpMap=n(e.bumpMap)),void 0!==e.bumpScale&&(i.bumpScale=e.bumpScale),void 0!==e.normalMap&&(i.normalMap=n(e.normalMap)),void 0!==e.normalMapType&&(i.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),i.normalScale=new Y().fromArray(t)}return void 0!==e.displacementMap&&(i.displacementMap=n(e.displacementMap)),void 0!==e.displacementScale&&(i.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(i.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(i.roughnessMap=n(e.roughnessMap)),void 0!==e.metalnessMap&&(i.metalnessMap=n(e.metalnessMap)),void 0!==e.emissiveMap&&(i.emissiveMap=n(e.emissiveMap)),void 0!==e.emissiveIntensity&&(i.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(i.specularMap=n(e.specularMap)),void 0!==e.specularIntensityMap&&(i.specularIntensityMap=n(e.specularIntensityMap)),void 0!==e.specularColorMap&&(i.specularColorMap=n(e.specularColorMap)),void 0!==e.envMap&&(i.envMap=n(e.envMap)),void 0!==e.envMapRotation&&i.envMapRotation.fromArray(e.envMapRotation),void 0!==e.envMapIntensity&&(i.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(i.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(i.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(i.lightMap=n(e.lightMap)),void 0!==e.lightMapIntensity&&(i.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(i.aoMap=n(e.aoMap)),void 0!==e.aoMapIntensity&&(i.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(i.gradientMap=n(e.gradientMap)),void 0!==e.clearcoatMap&&(i.clearcoatMap=n(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(i.clearcoatNormalMap=n(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(i.clearcoatNormalScale=new Y().fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(i.iridescenceMap=n(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(i.transmissionMap=n(e.transmissionMap)),void 0!==e.thicknessMap&&(i.thicknessMap=n(e.thicknessMap)),void 0!==e.anisotropyMap&&(i.anisotropyMap=n(e.anisotropyMap)),void 0!==e.sheenColorMap&&(i.sheenColorMap=n(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(i.sheenRoughnessMap=n(e.sheenRoughnessMap)),i}setTextures(e){return this.textures=e,this}createMaterialFromType(e){return su.createMaterialFromType(e)}static createMaterialFromType(e){return new({ShadowMaterial:au,SpriteMaterial:nO,RawShaderMaterial:ac,ShaderMaterial:nb,PointsMaterial:iQ,MeshPhysicalMaterial:ad,MeshStandardMaterial:ah,MeshPhongMaterial:ap,MeshToonMaterial:af,MeshNormalMaterial:am,MeshLambertMaterial:ag,MeshDepthMaterial:av,MeshDistanceMaterial:a_,MeshBasicMaterial:tV,MeshMatcapMaterial:ay,LineDashedMaterial:ax,LineBasicMaterial:iB,Material:tH})[e]}}class sc{static decodeText(e){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),"u">typeof TextDecoder)return new TextDecoder().decode(e);let t="";for(let n=0,i=e.length;n0){(n=new aZ(new aH(t))).setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t0){(t=new aZ(this.manager)).setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t{let t=new eR;t.min.fromArray(e.boxMin),t.max.fromArray(e.boxMax);let n=new eq;return n.radius=e.sphereRadius,n.center.fromArray(e.sphereCenter),{boxInitialized:e.boxInitialized,box:t,sphereInitialized:e.sphereInitialized,sphere:n}}),a._maxInstanceCount=e.maxInstanceCount,a._maxVertexCount=e.maxVertexCount,a._maxIndexCount=e.maxIndexCount,a._geometryInitialized=e.geometryInitialized,a._geometryCount=e.geometryCount,a._matricesTexture=c(e.matricesTexture.uuid),void 0!==e.colorsTexture&&(a._colorsTexture=c(e.colorsTexture.uuid));break;case"LOD":a=new nQ;break;case"Line":a=new iq(l(e.geometry),u(e.material));break;case"LineLoop":a=new i$(l(e.geometry),u(e.material));break;case"LineSegments":a=new iK(l(e.geometry),u(e.material));break;case"PointCloud":case"Points":a=new i4(l(e.geometry),u(e.material));break;case"Sprite":a=new nZ(u(e.material));break;case"Group":a=new i6;break;case"Bone":a=new ie;break;default:a=new ty}if(a.uuid=e.uuid,void 0!==e.name&&(a.name=e.name),void 0!==e.matrix?(a.matrix.fromArray(e.matrix),void 0!==e.matrixAutoUpdate&&(a.matrixAutoUpdate=e.matrixAutoUpdate),a.matrixAutoUpdate&&a.matrix.decompose(a.position,a.quaternion,a.scale)):(void 0!==e.position&&a.position.fromArray(e.position),void 0!==e.rotation&&a.rotation.fromArray(e.rotation),void 0!==e.quaternion&&a.quaternion.fromArray(e.quaternion),void 0!==e.scale&&a.scale.fromArray(e.scale)),void 0!==e.up&&a.up.fromArray(e.up),void 0!==e.castShadow&&(a.castShadow=e.castShadow),void 0!==e.receiveShadow&&(a.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.intensity&&(a.shadow.intensity=e.shadow.intensity),void 0!==e.shadow.bias&&(a.shadow.bias=e.shadow.bias),void 0!==e.shadow.normalBias&&(a.shadow.normalBias=e.shadow.normalBias),void 0!==e.shadow.radius&&(a.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&a.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(a.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(a.visible=e.visible),void 0!==e.frustumCulled&&(a.frustumCulled=e.frustumCulled),void 0!==e.renderOrder&&(a.renderOrder=e.renderOrder),void 0!==e.userData&&(a.userData=e.userData),void 0!==e.layers&&(a.layers.mask=e.layers),void 0!==e.children){let s=e.children;for(let e=0;e{t&&t(n),r.manager.itemEnd(e)}).catch(e=>{i&&i(e)}):(setTimeout(function(){t&&t(a),r.manager.itemEnd(e)},0),a);let s={};s.credentials="anonymous"===this.crossOrigin?"same-origin":"include",s.headers=this.requestHeader;let o=fetch(e,s).then(function(e){return e.blob()}).then(function(e){return createImageBitmap(e,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(n){return ak.add(e,n),t&&t(n),r.manager.itemEnd(e),n}).catch(function(t){i&&i(t),ak.remove(e),r.manager.itemError(e),r.manager.itemEnd(e)});ak.add(e,o),r.manager.itemStart(e)}}class s_{static getContext(){return void 0===i&&(i=new(window.AudioContext||window.webkitAudioContext)),i}static setContext(e){i=e}}class sy extends aG{constructor(e){super(e)}load(e,t,n,i){let r=this,a=new aX(this.manager);function s(t){i?i(t):console.error(t),r.manager.itemError(e)}a.setResponseType("arraybuffer"),a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(e){try{let n=e.slice(0);s_.getContext().decodeAudioData(n,function(e){t(e)}).catch(s)}catch(e){s(e)}},n,i)}}let sx=new e2,sb=new e2,sS=new e2;class sM{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new nE,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new nE,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){let t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){let n,i;t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,sS.copy(e.projectionMatrix);let r=t.eyeSep/2,a=r*t.near/t.focus,s=t.near*Math.tan(B*t.fov*.5)/t.zoom;sb.elements[12]=-r,sx.elements[12]=r,n=-s*t.aspect+a,i=s*t.aspect+a,sS.elements[0]=2*t.near/(i-n),sS.elements[8]=(i+n)/(i-n),this.cameraL.projectionMatrix.copy(sS),n=-s*t.aspect-a,i=s*t.aspect-a,sS.elements[0]=2*t.near/(i-n),sS.elements[8]=(i+n)/(i-n),this.cameraR.projectionMatrix.copy(sS)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(sb),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(sx)}}class sT extends nE{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class sw{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=sE(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){let t=sE();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function sE(){return performance.now()}let sA=new eE,sC=new ew,sR=new eE,sP=new eE;class sI extends ty{constructor(){super(),this.type="AudioListener",this.context=s_.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new sw}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);let t=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(sA,sC,sR),sP.set(0,0,-1).applyQuaternion(sC),t.positionX){let e=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(sA.x,e),t.positionY.linearRampToValueAtTime(sA.y,e),t.positionZ.linearRampToValueAtTime(sA.z,e),t.forwardX.linearRampToValueAtTime(sP.x,e),t.forwardY.linearRampToValueAtTime(sP.y,e),t.forwardZ.linearRampToValueAtTime(sP.z,e),t.upX.linearRampToValueAtTime(n.x,e),t.upY.linearRampToValueAtTime(n.y,e),t.upZ.linearRampToValueAtTime(n.z,e)}else t.setPosition(sA.x,sA.y,sA.z),t.setOrientation(sP.x,sP.y,sP.z,n.x,n.y,n.z)}}class sL extends ty{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+e;let t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){return!1===this.hasPlaybackControl?void console.warn("THREE.Audio: this Audio has no playback control."):(!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this)}stop(e=0){return!1===this.hasPlaybackControl?void console.warn("THREE.Audio: this Audio has no playback control."):(this._progress=0,null!==this.source&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this)}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let e=t,r=t+t;e!==r;++e)if(n[e]!==n[e+t]){s.setValue(n,i);break}}saveOriginalState(){let e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let e=n;e!==i;++e)t[e]=t[i+e%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let i=0;i!==r;++i)e[t+i]=e[n+i]}_slerp(e,t,n,i){ew.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,r){let a=this._workIndex*r;ew.multiplyQuaternionsFlat(e,a,e,t,e,n),ew.slerpFlat(e,t,e,t,e,a,i)}_lerp(e,t,n,i,r){let a=1-i;for(let s=0;s!==r;++s){let r=t+s;e[r]=e[r]*a+e[n+s]*i}}_lerpAdditive(e,t,n,i,r){for(let a=0;a!==r;++a){let r=t+a;e[r]=e[r]+e[n+a]*i}}}let sk="\\[\\]\\.:\\/",sH=RegExp("["+sk+"]","g"),sV="[^"+sk+"]",sG="[^"+sk.replace("\\.","")+"]",sW=RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",sV)+/(WCOD+)?/.source.replace("WCOD",sG)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",sV)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",sV)+"$"),sj=["material","materials","bones","map"];class sX{constructor(e,t,n){this.path=t,this.parsedPath=n||sX.parseTrackName(t),this.node=sX.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new sX.Composite(e,t,n):new sX(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(sH,"")}static parseTrackName(e){let t=sW.exec(e);if(null===t)throw Error("PropertyBinding: Cannot parse trackName: "+e);let n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){let e=n.nodeName.substring(i+1);-1!==sj.indexOf(e)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=e)}if(null===n.propertyName||0===n.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){let n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){let n=function(e){for(let i=0;i=r){let a=r++,u=e[a];t[u.uuid]=l,e[l]=u,t[o]=a,e[a]=s;for(let e=0;e!==i;++e){let t=n[e],i=t[a],r=t[l];t[l]=i,t[a]=r}}}this.nCachedObjects_=r}uncache(){let e=this._objects,t=this._indicesByUUID,n=this._bindings,i=n.length,r=this.nCachedObjects_,a=e.length;for(let s=0,o=arguments.length;s!==o;++s){let o=arguments[s],l=o.uuid,u=t[l];if(void 0!==u)if(delete t[l],u0&&(t[s.uuid]=u),e[u]=s,e.pop();for(let e=0;e!==i;++e){let t=n[e];t[u]=t[r],t.pop()}}}this.nCachedObjects_=r}subscribe_(e,t){let n=this._bindingsIndicesByPath,i=n[e],r=this._bindings;if(void 0!==i)return r[i];let a=this._paths,s=this._parsedPaths,o=this._objects,l=o.length,u=this.nCachedObjects_,c=Array(l);i=r.length,n[e]=i,a.push(e),s.push(t),r.push(c);for(let n=u,i=o.length;n!==i;++n){let i=o[n];c[n]=new sX(i,e,t)}return c}unsubscribe_(e){let t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){let i=this._paths,r=this._parsedPaths,a=this._bindings,s=a.length-1,o=a[s];t[e[s]]=n,a[n]=o,a.pop(),r[n]=r[s],r.pop(),i[n]=i[s],i.pop()}}}class sY{constructor(e,t,n=null,i=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=i;const r=t.tracks,a=r.length,s=Array(a),o={endingStart:2400,endingEnd:2400};for(let e=0;e!==a;++e){const t=r[e].createInterpolant(null);s[e]=t,t.settings=o}this._interpolantSettings=o,this._interpolants=s,this._propertyBindings=Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){let n=this._clip.duration,i=e._clip.duration;e.warp(1,i/n,t),this.warp(n/i,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){let e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){let i=this._mixer,r=i.time,a=this.timeScale,s=this._timeScaleInterpolant;null===s&&(s=i._lendControlInterpolant(),this._timeScaleInterpolant=s);let o=s.parameterPositions,l=s.sampleValues;return o[0]=r,o[1]=r+n,l[0]=e/a,l[1]=t/a,this}stopWarping(){let e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,i){if(!this.enabled)return void this._updateWeight(e);let r=this._startTime;if(null!==r){let i=(e-r)*n;i<0||0===n?t=0:(this._startTime=null,t=n*i)}t*=this._updateTimeScale(e);let a=this._updateTime(t),s=this._updateWeight(e);if(s>0){let e=this._interpolants,t=this._propertyBindings;if(2501===this.blendMode)for(let n=0,i=e.length;n!==i;++n)e[n].evaluate(a),t[n].accumulateAdditive(s);else for(let n=0,r=e.length;n!==r;++n)e[n].evaluate(a),t[n].accumulate(i,s)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let n=this._weightInterpolant;if(null!==n){let i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let n=this._timeScaleInterpolant;null!==n&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,n=this.loop,i=this.time+e,r=this._loopCount,a=2202===n;if(0===e)return -1===r?i:a&&(1&r)==1?t-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));s:{if(i>=t)i=t;else if(i<0)i=0;else{this.time=i;break s}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===r&&(e>=0?(r=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),i>=t||i<0){let n=Math.floor(i/t);i-=t*n,r+=Math.abs(n);let s=this.repetitions-r;if(s<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===s){let t=e<0;this._setEndings(t,!t,a)}else this._setEndings(!1,!1,a);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(a&&(1&r)==1)return t-i}return i}_setEndings(e,t,n){let i=this._interpolantSettings;n?(i.endingStart=2401,i.endingEnd=2401):(e?i.endingStart=this.zeroSlopeAtStart?2401:2400:i.endingStart=2402,t?i.endingEnd=this.zeroSlopeAtEnd?2401:2400:i.endingEnd=2402)}_scheduleFading(e,t,n){let i=this._mixer,r=i.time,a=this._weightInterpolant;null===a&&(a=i._lendControlInterpolant(),this._weightInterpolant=a);let s=a.parameterPositions,o=a.sampleValues;return s[0]=r,o[0]=t,s[1]=r+e,o[1]=n,this}}let sZ=new Float32Array(1);class sJ extends O{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){let n=e._localRoot||this._root,i=e._clip.tracks,r=i.length,a=e._propertyBindings,s=e._interpolants,o=n.uuid,l=this._bindingsByRootAndName,u=l[o];void 0===u&&(u={},l[o]=u);for(let e=0;e!==r;++e){let r=i[e],l=r.name,c=u[l];if(void 0!==c)++c.referenceCount,a[e]=c;else{if(void 0!==(c=a[e])){null===c._cacheIndex&&(++c.referenceCount,this._addInactiveBinding(c,o,l));continue}let i=t&&t._propertyBindings[e].binding.parsedPath;c=new sB(sX.create(n,l,i),r.ValueTypeName,r.getValueSize()),++c.referenceCount,this._addInactiveBinding(c,o,l),a[e]=c}s[e].resultBuffer=c.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){let t=(e._localRoot||this._root).uuid,n=e._clip.uuid,i=this._actionsByClip[n];this._bindAction(e,i&&i.knownActions[0]),this._addInactiveAction(e,n,t)}let t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){let n=t[e];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){let n=t[e];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return null!==t&&t=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;let t=this._actions,n=this._nActiveActions,i=this.time+=e,r=Math.sign(e),a=this._accuIndex^=1;for(let s=0;s!==n;++s)t[s]._update(i,e,r,a);let s=this._bindings,o=this._nActiveBindings;for(let e=0;e!==o;++e)s[e].apply(a);return this}setTime(e){this.time=0;for(let e=0;e=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,s7).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}let ot=new eE,on=new eE;class oi{constructor(e=new eE,t=new eE){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){ot.subVectors(e,this.start),on.subVectors(this.end,this.start);let n=on.dot(on),i=on.dot(ot)/n;return t&&(i=V(i,0,1)),i}closestPointToPoint(e,t,n){let i=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}let or=new eE;class oa extends ty{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const n=new nn,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let e=0,t=1;e<32;e++,t++){const n=e/32*Math.PI*2,r=t/32*Math.PI*2;i.push(Math.cos(n),Math.sin(n),1,Math.cos(r),Math.sin(r),1)}n.setAttribute("position",new t4(i,3));const r=new iB({fog:!1,toneMapped:!1});this.cone=new iK(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),this.parent?(this.parent.updateWorldMatrix(!0),this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)):this.matrix.copy(this.light.matrixWorld),this.matrixWorld.copy(this.light.matrixWorld);let e=this.light.distance?this.light.distance:1e3,t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e),or.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(or),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}let os=new eE,oo=new e2,ol=new e2;class ou extends iK{constructor(e){const t=function e(t){let n=[];!0===t.isBone&&n.push(t);for(let i=0;i1)for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{oR.set(e.z,0,-e.x).normalize();let t=Math.acos(e.y);this.quaternion.setFromAxisAngle(oR,t)}}setLength(e,t=.2*e,n=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class oI extends iK{constructor(e=1){const t=new nn;t.setAttribute("position",new t4([0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],3)),t.setAttribute("color",new t4([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(t,new iB({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,n){let i=new tz,r=this.geometry.attributes.color.array;return i.set(e),i.toArray(r,0),i.toArray(r,3),i.set(t),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class oL{constructor(){this.type="ShapePath",this.color=new tz,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new rw,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,i){return this.currentPath.quadraticCurveTo(e,t,n,i),this}bezierCurveTo(e,t,n,i,r,a){return this.currentPath.bezierCurveTo(e,t,n,i,r,a),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){let t,n,i,r,a,s=r1.isClockWise,o=this.subPaths;if(0===o.length)return[];let l=[];if(1===o.length)return n=o[0],(i=new rz).curves=n.curves,l.push(i),l;let u=!s(o[0].getPoints());u=e?!u:u;let c=[],h=[],d=[],p=0;h[0]=void 0,d[p]=[];for(let i=0,a=o.length;i1){let e=!1,t=0;for(let e=0,t=h.length;eNumber.EPSILON){if(l<0&&(n=t[a],o=-o,s=t[r],l=-l),e.ys.y)continue;if(e.y===n.y){if(e.x===n.x)return!0}else{let t=l*(e.x-n.x)-o*(e.y-n.y);if(0===t)return!0;if(t<0)continue;i=!i}}else{if(e.y!==n.y)continue;if(s.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=s.x)return!0}}return i})(a.p,h[i].p)&&(n!==i&&t++,s?(s=!1,c[i].push(a)):e=!0);s&&c[n].push(a)}}t>0&&!1===e&&(d=c)}for(let e=0,t=h.length;et?(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2):(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0),e},cover:function(e,t){let n=e.image&&e.image.width?e.image.width/e.image.height:1;return n>t?(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0):(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2),e},fill:function(e){return e.repeat.x=1,e.repeat.y=1,e.offset.x=0,e.offset.y=0,e},getByteLength:oU};class oO extends ex{constructor(e=1,t=1,n=1,i={}){console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the "count" parameter to enable MRT.'),super(e,t,{...i,count:n}),this.isWebGLMultipleRenderTargets=!0}get texture(){return this.textures}}function oF(){let e=null,t=!1,n=null,i=null;function r(t,a){n(t,a),i=e.requestAnimationFrame(r)}return{start:function(){!0===t||null!==n&&(i=e.requestAnimationFrame(r),t=!0)},stop:function(){e.cancelAnimationFrame(i),t=!1},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function oz(e){let t=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),t.get(e)},remove:function(n){n.isInterleavedBufferAttribute&&(n=n.data);let i=t.get(n);i&&(e.deleteBuffer(i.buffer),t.delete(n))},update:function(n,i){if(n.isInterleavedBufferAttribute&&(n=n.data),n.isGLBufferAttribute){let e=t.get(n);(!e||e.versione.start-t.start);let t=0;for(let e=1;etypeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"171"}})),"u">typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="171"),e.s(["ACESFilmicToneMapping",0,4,"AddEquation",0,100,"AddOperation",0,2,"AdditiveAnimationBlendMode",0,2501,"AdditiveBlending",0,2,"AgXToneMapping",0,6,"AlphaFormat",0,1021,"AlwaysCompare",0,519,"AlwaysDepth",0,1,"AlwaysStencilFunc",0,519,"AmbientLight",0,sa,"AnimationAction",0,sY,"AnimationClip",0,aB,"AnimationLoader",0,aq,"AnimationMixer",0,sJ,"AnimationObjectGroup",0,sq,"AnimationUtils",0,aE,"ArcCurve",0,rs,"ArrayCamera",0,sT,"ArrowHelper",0,oP,"AttachedBindMode",0,R,"Audio",0,sL,"AudioAnalyser",0,sz,"AudioContext",0,s_,"AudioListener",0,sI,"AudioLoader",0,sy,"AxesHelper",0,oI,"BackSide",0,1,"BasicDepthPacking",0,3200,"BasicShadowMap",0,0,"BatchedMesh",0,iz,"Bone",0,ie,"BooleanKeyframeTrack",0,aL,"Box2",0,oe,"Box3",0,eR,"Box3Helper",0,oA,"BoxGeometry",0,ng,"BoxHelper",0,oE,"BufferAttribute",0,tZ,"BufferGeometry",0,nn,"BufferGeometryLoader",0,sd,"ByteType",0,1010,"Cache",0,ak,"Camera",0,nS,"CameraHelper",0,oM,"CanvasTexture",0,rn,"CapsuleGeometry",0,rA,"CatmullRomCurve3",0,rd,"CineonToneMapping",0,3,"CircleGeometry",0,rC,"ClampToEdgeWrapping",0,1001,"Clock",0,sw,"Color",0,tz,"ColorKeyframeTrack",0,aN,"ColorManagement",0,eu,"CompressedArrayTexture",0,re,"CompressedCubeTexture",0,rt,"CompressedTexture",0,i7,"CompressedTextureLoader",0,aY,"ConeGeometry",0,rP,"ConstantAlphaFactor",0,213,"ConstantColorFactor",0,211,"Controls",0,oN,"CubeCamera",0,nA,"CubeReflectionMapping",0,301,"CubeRefractionMapping",0,302,"CubeTexture",0,nC,"CubeTextureLoader",0,aJ,"CubeUVReflectionMapping",0,306,"CubicBezierCurve",0,rg,"CubicBezierCurve3",0,rv,"CubicInterpolant",0,aC,"CullFaceBack",0,1,"CullFaceFront",0,2,"CullFaceFrontBack",0,3,"CullFaceNone",0,0,"Curve",0,rr,"CurvePath",0,rT,"CustomBlending",0,5,"CustomToneMapping",0,5,"CylinderGeometry",0,rR,"Cylindrical",0,s8,"Data3DTexture",0,eM,"DataArrayTexture",0,eb,"DataTexture",0,it,"DataTextureLoader",0,aK,"DataUtils",0,tX,"DecrementStencilOp",0,7683,"DecrementWrapStencilOp",0,34056,"DefaultLoadingManager",0,aV,"DepthFormat",0,1026,"DepthStencilFormat",0,1027,"DepthTexture",0,ri,"DetachedBindMode",0,P,"DirectionalLight",0,sr,"DirectionalLightHelper",0,ox,"DiscreteInterpolant",0,aP,"DodecahedronGeometry",0,rL,"DoubleSide",0,2,"DstAlphaFactor",0,206,"DstColorFactor",0,208,"DynamicCopyUsage",0,35050,"DynamicDrawUsage",0,35048,"DynamicReadUsage",0,35049,"EdgesGeometry",0,rF,"EllipseCurve",0,ra,"EqualCompare",0,514,"EqualDepth",0,4,"EqualStencilFunc",0,514,"EquirectangularReflectionMapping",0,303,"EquirectangularRefractionMapping",0,304,"Euler",0,tn,"EventDispatcher",0,O,"ExtrudeGeometry",0,r4,"FileLoader",0,aX,"Float16BufferAttribute",0,t3,"Float32BufferAttribute",0,t4,"FloatType",0,1015,"Fog",0,nI,"FogExp2",0,nP,"FramebufferTexture",0,i9,"FrontSide",0,0,"Frustum",0,iS,"GLBufferAttribute",0,s1,"GLSL1",0,"100","GLSL3",0,D,"GreaterCompare",0,516,"GreaterDepth",0,6,"GreaterEqualCompare",0,518,"GreaterEqualDepth",0,5,"GreaterEqualStencilFunc",0,518,"GreaterStencilFunc",0,516,"GridHelper",0,om,"Group",0,i6,"HalfFloatType",0,1016,"HemisphereLight",0,a0,"HemisphereLightHelper",0,of,"IcosahedronGeometry",0,r6,"ImageBitmapLoader",0,sv,"ImageLoader",0,aZ,"ImageUtils",0,ed,"IncrementStencilOp",0,7682,"IncrementWrapStencilOp",0,34055,"InstancedBufferAttribute",0,is,"InstancedBufferGeometry",0,sh,"InstancedInterleavedBuffer",0,s0,"InstancedMesh",0,im,"Int16BufferAttribute",0,tQ,"Int32BufferAttribute",0,t1,"Int8BufferAttribute",0,tJ,"IntType",0,1013,"InterleavedBuffer",0,nN,"InterleavedBufferAttribute",0,nD,"Interpolant",0,aA,"InterpolateDiscrete",0,2300,"InterpolateLinear",0,2301,"InterpolateSmooth",0,2302,"InvertStencilOp",0,5386,"KeepStencilOp",0,7680,"KeyframeTrack",0,aI,"LOD",0,nQ,"LatheGeometry",0,rE,"Layers",0,ti,"LessCompare",0,513,"LessDepth",0,2,"LessEqualCompare",0,515,"LessEqualDepth",0,3,"LessEqualStencilFunc",0,515,"LessStencilFunc",0,513,"Light",0,aQ,"LightProbe",0,sl,"Line",0,iq,"Line3",0,oi,"LineBasicMaterial",0,iB,"LineCurve",0,r_,"LineCurve3",0,ry,"LineDashedMaterial",0,ax,"LineLoop",0,i$,"LineSegments",0,iK,"LinearFilter",0,1006,"LinearInterpolant",0,aR,"LinearMipMapLinearFilter",0,1008,"LinearMipMapNearestFilter",0,1007,"LinearMipmapLinearFilter",0,1008,"LinearMipmapNearestFilter",0,1007,"LinearSRGBColorSpace",0,L,"LinearToneMapping",0,1,"LinearTransfer",0,N,"Loader",0,aG,"LoaderUtils",0,sc,"LoadingManager",0,aH,"LoopOnce",0,2200,"LoopPingPong",0,2202,"LoopRepeat",0,2201,"LuminanceAlphaFormat",0,1025,"LuminanceFormat",0,1024,"MOUSE",0,A,"Material",0,tH,"MaterialLoader",0,su,"MathUtils",0,q,"Matrix2",0,s9,"Matrix3",0,Z,"Matrix4",0,e2,"MaxEquation",0,104,"Mesh",0,nf,"MeshBasicMaterial",0,tV,"MeshDepthMaterial",0,av,"MeshDistanceMaterial",0,a_,"MeshLambertMaterial",0,ag,"MeshMatcapMaterial",0,ay,"MeshNormalMaterial",0,am,"MeshPhongMaterial",0,ap,"MeshPhysicalMaterial",0,ad,"MeshStandardMaterial",0,ah,"MeshToonMaterial",0,af,"MinEquation",0,103,"MirroredRepeatWrapping",0,1002,"MixOperation",0,1,"MultiplyBlending",0,4,"MultiplyOperation",0,0,"NearestFilter",0,1003,"NearestMipMapLinearFilter",0,1005,"NearestMipMapNearestFilter",0,1004,"NearestMipmapLinearFilter",0,1005,"NearestMipmapNearestFilter",0,1004,"NeutralToneMapping",0,7,"NeverCompare",0,512,"NeverDepth",0,0,"NeverStencilFunc",0,512,"NoBlending",0,0,"NoColorSpace",0,"","NoToneMapping",0,0,"NormalAnimationBlendMode",0,2500,"NormalBlending",0,1,"NotEqualCompare",0,517,"NotEqualDepth",0,7,"NotEqualStencilFunc",0,517,"NumberKeyframeTrack",0,aU,"Object3D",0,ty,"ObjectLoader",0,sp,"ObjectSpaceNormalMap",0,1,"OctahedronGeometry",0,r8,"OneFactor",0,201,"OneMinusConstantAlphaFactor",0,214,"OneMinusConstantColorFactor",0,212,"OneMinusDstAlphaFactor",0,207,"OneMinusDstColorFactor",0,209,"OneMinusSrcAlphaFactor",0,205,"OneMinusSrcColorFactor",0,203,"OrthographicCamera",0,sn,"PCFShadowMap",0,1,"PCFSoftShadowMap",0,2,"Path",0,rw,"PerspectiveCamera",0,nE,"Plane",0,iy,"PlaneGeometry",0,r9,"PlaneHelper",0,oC,"PointLight",0,st,"PointLightHelper",0,oc,"Points",0,i4,"PointsMaterial",0,iQ,"PolarGridHelper",0,og,"PolyhedronGeometry",0,rI,"PositionalAudio",0,sF,"PropertyBinding",0,sX,"PropertyMixer",0,sB,"QuadraticBezierCurve",0,rx,"QuadraticBezierCurve3",0,rb,"Quaternion",0,ew,"QuaternionKeyframeTrack",0,aO,"QuaternionLinearInterpolant",0,aD,"RAD2DEG",0,k,"RED_GREEN_RGTC2_Format",0,36285,"RED_RGTC1_Format",0,36283,"REVISION",0,"171","RGBADepthPacking",0,3201,"RGBAFormat",0,1023,"RGBAIntegerFormat",0,1033,"RGBA_ASTC_10x10_Format",0,37819,"RGBA_ASTC_10x5_Format",0,37816,"RGBA_ASTC_10x6_Format",0,37817,"RGBA_ASTC_10x8_Format",0,37818,"RGBA_ASTC_12x10_Format",0,37820,"RGBA_ASTC_12x12_Format",0,37821,"RGBA_ASTC_4x4_Format",0,37808,"RGBA_ASTC_5x4_Format",0,37809,"RGBA_ASTC_5x5_Format",0,37810,"RGBA_ASTC_6x5_Format",0,37811,"RGBA_ASTC_6x6_Format",0,37812,"RGBA_ASTC_8x5_Format",0,37813,"RGBA_ASTC_8x6_Format",0,37814,"RGBA_ASTC_8x8_Format",0,37815,"RGBA_BPTC_Format",0,36492,"RGBA_ETC2_EAC_Format",0,37496,"RGBA_PVRTC_2BPPV1_Format",0,35843,"RGBA_PVRTC_4BPPV1_Format",0,35842,"RGBA_S3TC_DXT1_Format",0,33777,"RGBA_S3TC_DXT3_Format",0,33778,"RGBA_S3TC_DXT5_Format",0,33779,"RGBDepthPacking",0,3202,"RGBFormat",0,1022,"RGBIntegerFormat",0,1032,"RGB_BPTC_SIGNED_Format",0,36494,"RGB_BPTC_UNSIGNED_Format",0,36495,"RGB_ETC1_Format",0,36196,"RGB_ETC2_Format",0,37492,"RGB_PVRTC_2BPPV1_Format",0,35841,"RGB_PVRTC_4BPPV1_Format",0,35840,"RGB_S3TC_DXT1_Format",0,33776,"RGDepthPacking",0,3203,"RGFormat",0,1030,"RGIntegerFormat",0,1031,"RawShaderMaterial",0,ac,"Ray",0,e1,"Raycaster",0,s3,"RectAreaLight",0,ss,"RedFormat",0,1028,"RedIntegerFormat",0,1029,"ReinhardToneMapping",0,2,"RenderTarget",0,ey,"RepeatWrapping",0,1e3,"ReplaceStencilOp",0,7681,"ReverseSubtractEquation",0,102,"RingGeometry",0,r7,"SIGNED_RED_GREEN_RGTC2_Format",0,36286,"SIGNED_RED_RGTC1_Format",0,36284,"SRGBColorSpace",0,I,"SRGBTransfer",0,U,"Scene",0,nL,"ShaderMaterial",0,nb,"ShadowMaterial",0,au,"Shape",0,rz,"ShapeGeometry",0,ae,"ShapePath",0,oL,"ShapeUtils",0,r1,"ShortType",0,1011,"Skeleton",0,ia,"SkeletonHelper",0,ou,"SkinnedMesh",0,n7,"Source",0,ef,"Sphere",0,eq,"SphereGeometry",0,at,"Spherical",0,s6,"SphericalHarmonics3",0,so,"SplineCurve",0,rS,"SpotLight",0,a6,"SpotLightHelper",0,oa,"Sprite",0,nZ,"SpriteMaterial",0,nO,"SrcAlphaFactor",0,204,"SrcAlphaSaturateFactor",0,210,"SrcColorFactor",0,202,"StaticCopyUsage",0,35046,"StaticDrawUsage",0,35044,"StaticReadUsage",0,35045,"StereoCamera",0,sM,"StreamCopyUsage",0,35042,"StreamDrawUsage",0,35040,"StreamReadUsage",0,35041,"StringKeyframeTrack",0,aF,"SubtractEquation",0,101,"SubtractiveBlending",0,3,"TOUCH",0,C,"TangentSpaceNormalMap",0,0,"TetrahedronGeometry",0,an,"Texture",0,ev,"TextureLoader",0,a$,"TextureUtils",0,oD,"TorusGeometry",0,ai,"TorusKnotGeometry",0,ar,"Triangle",0,tN,"TriangleFanDrawMode",0,2,"TriangleStripDrawMode",0,1,"TrianglesDrawMode",0,0,"TubeGeometry",0,aa,"UVMapping",0,300,"Uint16BufferAttribute",0,t0,"Uint32BufferAttribute",0,t2,"Uint8BufferAttribute",0,tK,"Uint8ClampedBufferAttribute",0,t$,"Uniform",0,sK,"UniformsGroup",0,sQ,"UniformsUtils",0,nx,"UnsignedByteType",0,1009,"UnsignedInt248Type",0,1020,"UnsignedInt5999Type",0,35902,"UnsignedIntType",0,1014,"UnsignedShort4444Type",0,1017,"UnsignedShort5551Type",0,1018,"UnsignedShortType",0,1012,"VSMShadowMap",0,3,"Vector2",0,Y,"Vector3",0,eE,"Vector4",0,e_,"VectorKeyframeTrack",0,az,"VideoTexture",0,i8,"WebGL3DRenderTarget",0,eT,"WebGLArrayRenderTarget",0,eS,"WebGLCoordinateSystem",0,2e3,"WebGLCubeRenderTarget",0,nR,"WebGLMultipleRenderTargets",0,oO,"WebGLRenderTarget",0,ex,"WebGPUCoordinateSystem",0,2001,"WireframeGeometry",0,as,"WrapAroundEnding",0,2402,"ZeroCurvatureEnding",0,2400,"ZeroFactor",0,200,"ZeroSlopeEnding",0,2401,"ZeroStencilOp",0,0,"arrayNeedsUint32",0,K,"cloneUniforms",0,nv,"createCanvasElement",0,et,"createElementNS",0,ee,"getByteLength",0,oU,"getUnlitUniformColorSpace",0,ny,"mergeUniforms",0,n_,"probeAsync",0,er,"toNormalizedProjectionMatrix",0,ea,"toReversedProjectionMatrix",0,es,"warnOnce",0,ei],90072);let oB={alphahash_fragment:"#ifdef USE_ALPHAHASH\n if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif",alphahash_pars_fragment:"#ifdef USE_ALPHAHASH\n const float ALPHA_HASH_SCALE = 0.05;\n float hash2D( vec2 value ) {\n return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n }\n float hash3D( vec3 value ) {\n return hash2D( vec2( hash2D( value.xy ), value.z ) );\n }\n float getAlphaHashThreshold( vec3 position ) {\n float maxDeriv = max(\n length( dFdx( position.xyz ) ),\n length( dFdy( position.xyz ) )\n );\n float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n vec2 pixScales = vec2(\n exp2( floor( log2( pixScale ) ) ),\n exp2( ceil( log2( pixScale ) ) )\n );\n vec2 alpha = vec2(\n hash3D( floor( pixScales.x * position.xyz ) ),\n hash3D( floor( pixScales.y * position.xyz ) )\n );\n float lerpFactor = fract( log2( pixScale ) );\n float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n float a = min( lerpFactor, 1.0 - lerpFactor );\n vec3 cases = vec3(\n x * x / ( 2.0 * a * ( 1.0 - a ) ),\n ( x - 0.5 * a ) / ( 1.0 - a ),\n 1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n );\n float threshold = ( x < ( 1.0 - a ) )\n ? ( ( x < a ) ? cases.x : cases.y )\n : cases.z;\n return clamp( threshold , 1.0e-6, 1.0 );\n }\n#endif",alphamap_fragment:"#ifdef USE_ALPHAMAP\n diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n uniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef USE_ALPHATEST\n #ifdef ALPHA_TO_COVERAGE\n diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n if ( diffuseColor.a == 0.0 ) discard;\n #else\n if ( diffuseColor.a < alphaTest ) discard;\n #endif\n#endif",alphatest_pars_fragment:"#ifdef USE_ALPHATEST\n uniform float alphaTest;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n reflectedLight.indirectDiffuse *= ambientOcclusion;\n #if defined( USE_CLEARCOAT ) \n clearcoatSpecularIndirect *= ambientOcclusion;\n #endif\n #if defined( USE_SHEEN ) \n sheenSpecularIndirect *= ambientOcclusion;\n #endif\n #if defined( USE_ENVMAP ) && defined( STANDARD )\n float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n #endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n uniform sampler2D aoMap;\n uniform float aoMapIntensity;\n#endif",batching_pars_vertex:"#ifdef USE_BATCHING\n #if ! defined( GL_ANGLE_multi_draw )\n #define gl_DrawID _gl_DrawID\n uniform int _gl_DrawID;\n #endif\n uniform highp sampler2D batchingTexture;\n uniform highp usampler2D batchingIdTexture;\n mat4 getBatchingMatrix( const in float i ) {\n int size = textureSize( batchingTexture, 0 ).x;\n int j = int( i ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n float getIndirectIndex( const in int i ) {\n int size = textureSize( batchingIdTexture, 0 ).x;\n int x = i % size;\n int y = i / size;\n return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\n }\n#endif\n#ifdef USE_BATCHING_COLOR\n uniform sampler2D batchingColorTexture;\n vec3 getBatchingColor( const in float i ) {\n int size = textureSize( batchingColorTexture, 0 ).x;\n int j = int( i );\n int x = j % size;\n int y = j / size;\n return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\n }\n#endif",batching_vertex:"#ifdef USE_BATCHING\n mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\n#endif",begin_vertex:"vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n vPosition = vec3( position );\n#endif",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n vec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"float G_BlinnPhong_Implicit( ) {\n return 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( specularColor, 1.0, dotVH );\n float G = G_BlinnPhong_Implicit( );\n float D = D_BlinnPhong( shininess, dotNH );\n return F * ( G * D );\n} // validated",iridescence_fragment:"#ifdef USE_IRIDESCENCE\n const mat3 XYZ_TO_REC709 = mat3(\n 3.2404542, -0.9692660, 0.0556434,\n -1.5371385, 1.8760108, -0.2040259,\n -0.4985314, 0.0415560, 1.0572252\n );\n vec3 Fresnel0ToIor( vec3 fresnel0 ) {\n vec3 sqrtF0 = sqrt( fresnel0 );\n return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n }\n vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n }\n float IorToFresnel0( float transmittedIor, float incidentIor ) {\n return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n }\n vec3 evalSensitivity( float OPD, vec3 shift ) {\n float phase = 2.0 * PI * OPD * 1.0e-9;\n vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n xyz /= 1.0685e-7;\n vec3 rgb = XYZ_TO_REC709 * xyz;\n return rgb;\n }\n vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n vec3 I;\n float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n float cosTheta2Sq = 1.0 - sinTheta2Sq;\n if ( cosTheta2Sq < 0.0 ) {\n return vec3( 1.0 );\n }\n float cosTheta2 = sqrt( cosTheta2Sq );\n float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n float R12 = F_Schlick( R0, 1.0, cosTheta1 );\n float T121 = 1.0 - R12;\n float phi12 = 0.0;\n if ( iridescenceIOR < outsideIOR ) phi12 = PI;\n float phi21 = PI - phi12;\n vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n vec3 phi23 = vec3( 0.0 );\n if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n vec3 phi = vec3( phi21 ) + phi23;\n vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n vec3 r123 = sqrt( R123 );\n vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n vec3 C0 = R12 + Rs;\n I = C0;\n vec3 Cm = Rs - T121;\n for ( int m = 1; m <= 2; ++ m ) {\n Cm *= r123;\n vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n I += Cm * Sm;\n }\n return max( I, vec3( 0.0 ) );\n }\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n uniform sampler2D bumpMap;\n uniform float bumpScale;\n vec2 dHdxy_fwd() {\n vec2 dSTdx = dFdx( vBumpMapUv );\n vec2 dSTdy = dFdy( vBumpMapUv );\n float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n return vec2( dBx, dBy );\n }\n vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n vec3 vN = surf_norm;\n vec3 R1 = cross( vSigmaY, vN );\n vec3 R2 = cross( vN, vSigmaX );\n float fDet = dot( vSigmaX, R1 ) * faceDirection;\n vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n return normalize( abs( fDet ) * surf_norm - vGrad );\n }\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n vec4 plane;\n #ifdef ALPHA_TO_COVERAGE\n float distanceToPlane, distanceGradient;\n float clipOpacity = 1.0;\n #pragma unroll_loop_start\n for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n distanceGradient = fwidth( distanceToPlane ) / 2.0;\n clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n if ( clipOpacity == 0.0 ) discard;\n }\n #pragma unroll_loop_end\n #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n float unionClipOpacity = 1.0;\n #pragma unroll_loop_start\n for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n distanceGradient = fwidth( distanceToPlane ) / 2.0;\n unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n }\n #pragma unroll_loop_end\n clipOpacity *= 1.0 - unionClipOpacity;\n #endif\n diffuseColor.a *= clipOpacity;\n if ( diffuseColor.a == 0.0 ) discard;\n #else\n #pragma unroll_loop_start\n for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n }\n #pragma unroll_loop_end\n #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n bool clipped = true;\n #pragma unroll_loop_start\n for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n }\n #pragma unroll_loop_end\n if ( clipped ) discard;\n #endif\n #endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n varying vec3 vClipPosition;\n uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n varying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n vClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n diffuseColor *= vColor;\n#elif defined( USE_COLOR )\n diffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n varying vec4 vColor;\n#elif defined( USE_COLOR )\n varying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n varying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n varying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n vColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n vColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n vColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n vColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n vColor.xyz *= batchingColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n float precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n float precisionSafeLength( vec3 v ) {\n float maxComponent = max3( abs( v ) );\n return length( v / maxComponent ) * maxComponent;\n }\n#endif\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n bool visible;\n};\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n varying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n mat3 tmp;\n tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n return tmp;\n}\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n return vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n return RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n #define cubeUV_minMipLevel 4.0\n #define cubeUV_minTileSize 16.0\n float getFace( vec3 direction ) {\n vec3 absDirection = abs( direction );\n float face = - 1.0;\n if ( absDirection.x > absDirection.z ) {\n if ( absDirection.x > absDirection.y )\n face = direction.x > 0.0 ? 0.0 : 3.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n } else {\n if ( absDirection.z > absDirection.y )\n face = direction.z > 0.0 ? 2.0 : 5.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n }\n return face;\n }\n vec2 getUV( vec3 direction, float face ) {\n vec2 uv;\n if ( face == 0.0 ) {\n uv = vec2( direction.z, direction.y ) / abs( direction.x );\n } else if ( face == 1.0 ) {\n uv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n } else if ( face == 2.0 ) {\n uv = vec2( - direction.x, direction.y ) / abs( direction.z );\n } else if ( face == 3.0 ) {\n uv = vec2( - direction.z, direction.y ) / abs( direction.x );\n } else if ( face == 4.0 ) {\n uv = vec2( - direction.x, direction.z ) / abs( direction.y );\n } else {\n uv = vec2( direction.x, direction.y ) / abs( direction.z );\n }\n return 0.5 * ( uv + 1.0 );\n }\n vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n float face = getFace( direction );\n float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n mipInt = max( mipInt, cubeUV_minMipLevel );\n float faceSize = exp2( mipInt );\n highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n if ( face > 2.0 ) {\n uv.y += faceSize;\n face -= 3.0;\n }\n uv.x += face * faceSize;\n uv.x += filterInt * 3.0 * cubeUV_minTileSize;\n uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n uv.x *= CUBEUV_TEXEL_WIDTH;\n uv.y *= CUBEUV_TEXEL_HEIGHT;\n #ifdef texture2DGradEXT\n return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n #else\n return texture2D( envMap, uv ).rgb;\n #endif\n }\n #define cubeUV_r0 1.0\n #define cubeUV_m0 - 2.0\n #define cubeUV_r1 0.8\n #define cubeUV_m1 - 1.0\n #define cubeUV_r4 0.4\n #define cubeUV_m4 2.0\n #define cubeUV_r5 0.305\n #define cubeUV_m5 3.0\n #define cubeUV_r6 0.21\n #define cubeUV_m6 4.0\n float roughnessToMip( float roughness ) {\n float mip = 0.0;\n if ( roughness >= cubeUV_r1 ) {\n mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n } else if ( roughness >= cubeUV_r4 ) {\n mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n } else if ( roughness >= cubeUV_r5 ) {\n mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n } else if ( roughness >= cubeUV_r6 ) {\n mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n } else {\n mip = - 2.0 * log2( 1.16 * roughness ); }\n return mip;\n }\n vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n float mipF = fract( mip );\n float mipInt = floor( mip );\n vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n if ( mipF == 0.0 ) {\n return vec4( color0, 1.0 );\n } else {\n vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n return vec4( mix( color0, color1, mipF ), 1.0 );\n }\n }\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n vec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n mat3 bm = mat3( batchingMatrix );\n transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n transformedNormal = bm * transformedNormal;\n #ifdef USE_TANGENT\n transformedTangent = bm * transformedTangent;\n #endif\n#endif\n#ifdef USE_INSTANCING\n mat3 im = mat3( instanceMatrix );\n transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n transformedNormal = im * transformedNormal;\n #ifdef USE_TANGENT\n transformedTangent = im * transformedTangent;\n #endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n transformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n #ifdef FLIP_SIDED\n transformedTangent = - transformedTangent;\n #endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n uniform sampler2D displacementMap;\n uniform float displacementScale;\n uniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\n emissiveColor = sRGBTransferEOTF( emissiveColor );\n #endif\n totalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n uniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"vec4 LinearTransferOETF( in vec4 value ) {\n return value;\n}\nvec4 sRGBTransferEOTF( in vec4 value ) {\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n #ifdef ENV_WORLDPOS\n vec3 cameraToFrag;\n if ( isOrthographic ) {\n cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n } else {\n cameraToFrag = normalize( vWorldPosition - cameraPosition );\n }\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n #ifdef ENVMAP_MODE_REFLECTION\n vec3 reflectVec = reflect( cameraToFrag, worldNormal );\n #else\n vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n #endif\n #else\n vec3 reflectVec = vReflect;\n #endif\n #ifdef ENVMAP_TYPE_CUBE\n vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n #else\n vec4 envColor = vec4( 0.0 );\n #endif\n #ifdef ENVMAP_BLENDING_MULTIPLY\n outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n #elif defined( ENVMAP_BLENDING_MIX )\n outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n #elif defined( ENVMAP_BLENDING_ADD )\n outgoingLight += envColor.xyz * specularStrength * reflectivity;\n #endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n uniform float envMapIntensity;\n uniform float flipEnvMap;\n uniform mat3 envMapRotation;\n #ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n #else\n uniform sampler2D envMap;\n #endif\n \n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n uniform float reflectivity;\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n #define ENV_WORLDPOS\n #endif\n #ifdef ENV_WORLDPOS\n varying vec3 vWorldPosition;\n uniform float refractionRatio;\n #else\n varying vec3 vReflect;\n #endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n #define ENV_WORLDPOS\n #endif\n #ifdef ENV_WORLDPOS\n \n varying vec3 vWorldPosition;\n #else\n varying vec3 vReflect;\n uniform float refractionRatio;\n #endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n vec3 getIBLIrradiance( const in vec3 normal ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n return PI * envMapColor.rgb * envMapIntensity;\n #else\n return vec3( 0.0 );\n #endif\n }\n vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 reflectVec = reflect( - viewDir, normal );\n reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n reflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n return envMapColor.rgb * envMapIntensity;\n #else\n return vec3( 0.0 );\n #endif\n }\n #ifdef USE_ANISOTROPY\n vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 bentNormal = cross( bitangent, viewDir );\n bentNormal = normalize( cross( bentNormal, bitangent ) );\n bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n return getIBLRadiance( viewDir, bentNormal, roughness );\n #else\n return vec3( 0.0 );\n #endif\n }\n #endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n #ifdef ENV_WORLDPOS\n vWorldPosition = worldPosition.xyz;\n #else\n vec3 cameraToVertex;\n if ( isOrthographic ) {\n cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n } else {\n cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n }\n vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n #ifdef ENVMAP_MODE_REFLECTION\n vReflect = reflect( cameraToVertex, worldNormal );\n #else\n vReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n #endif\n #endif\n#endif",fog_vertex:"#ifdef USE_FOG\n vFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n varying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n #ifdef FOG_EXP2\n float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n #else\n float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n #endif\n gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n uniform vec3 fogColor;\n varying float vFogDepth;\n #ifdef FOG_EXP2\n uniform float fogDensity;\n #else\n uniform float fogNear;\n uniform float fogFar;\n #endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n uniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n float dotNL = dot( normal, lightDirection );\n vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n #ifdef USE_GRADIENTMAP\n return vec3( texture2D( gradientMap, coord ).r );\n #else\n vec2 fw = fwidth( coord ) * 0.5;\n return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n #endif\n}",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n uniform sampler2D lightMap;\n uniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n vec3 diffuseColor;\n float specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_Lambert\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n uniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n float x = normal.x, y = normal.y, z = normal.z;\n vec3 result = shCoefficients[ 0 ] * 0.886227;\n result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n return result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n return irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n vec3 irradiance = ambientLightColor;\n return irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n if ( cutoffDistance > 0.0 ) {\n distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n }\n return distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n return smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n struct DirectionalLight {\n vec3 direction;\n vec3 color;\n };\n uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n light.color = directionalLight.color;\n light.direction = directionalLight.direction;\n light.visible = true;\n }\n#endif\n#if NUM_POINT_LIGHTS > 0\n struct PointLight {\n vec3 position;\n vec3 color;\n float distance;\n float decay;\n };\n uniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n vec3 lVector = pointLight.position - geometryPosition;\n light.direction = normalize( lVector );\n float lightDistance = length( lVector );\n light.color = pointLight.color;\n light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n light.visible = ( light.color != vec3( 0.0 ) );\n }\n#endif\n#if NUM_SPOT_LIGHTS > 0\n struct SpotLight {\n vec3 position;\n vec3 direction;\n vec3 color;\n float distance;\n float decay;\n float coneCos;\n float penumbraCos;\n };\n uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n vec3 lVector = spotLight.position - geometryPosition;\n light.direction = normalize( lVector );\n float angleCos = dot( light.direction, spotLight.direction );\n float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n if ( spotAttenuation > 0.0 ) {\n float lightDistance = length( lVector );\n light.color = spotLight.color * spotAttenuation;\n light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n light.visible = ( light.color != vec3( 0.0 ) );\n } else {\n light.color = vec3( 0.0 );\n light.visible = false;\n }\n }\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n struct RectAreaLight {\n vec3 color;\n vec3 position;\n vec3 halfWidth;\n vec3 halfHeight;\n };\n uniform sampler2D ltc_1; uniform sampler2D ltc_2;\n uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n struct HemisphereLight {\n vec3 direction;\n vec3 skyColor;\n vec3 groundColor;\n };\n uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n float dotNL = dot( normal, hemiLight.direction );\n float hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n return irradiance;\n }\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n vec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_Toon\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n vec3 diffuseColor;\n vec3 specularColor;\n float specularShininess;\n float specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_BlinnPhong\n#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n material.ior = ior;\n #ifdef USE_SPECULAR\n float specularIntensityFactor = specularIntensity;\n vec3 specularColorFactor = specularColor;\n #ifdef USE_SPECULAR_COLORMAP\n specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n #endif\n #ifdef USE_SPECULAR_INTENSITYMAP\n specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n #endif\n material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n #else\n float specularIntensityFactor = 1.0;\n vec3 specularColorFactor = vec3( 1.0 );\n material.specularF90 = 1.0;\n #endif\n material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n material.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n material.clearcoat = clearcoat;\n material.clearcoatRoughness = clearcoatRoughness;\n material.clearcoatF0 = vec3( 0.04 );\n material.clearcoatF90 = 1.0;\n #ifdef USE_CLEARCOATMAP\n material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n #endif\n #ifdef USE_CLEARCOAT_ROUGHNESSMAP\n material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n #endif\n material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n material.clearcoatRoughness += geometryRoughness;\n material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n material.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n material.iridescence = iridescence;\n material.iridescenceIOR = iridescenceIOR;\n #ifdef USE_IRIDESCENCEMAP\n material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n #endif\n #ifdef USE_IRIDESCENCE_THICKNESSMAP\n material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n #else\n material.iridescenceThickness = iridescenceThicknessMaximum;\n #endif\n#endif\n#ifdef USE_SHEEN\n material.sheenColor = sheenColor;\n #ifdef USE_SHEEN_COLORMAP\n material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n #endif\n material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n #ifdef USE_SHEEN_ROUGHNESSMAP\n material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n #endif\n#endif\n#ifdef USE_ANISOTROPY\n #ifdef USE_ANISOTROPYMAP\n mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n #else\n vec2 anisotropyV = anisotropyVector;\n #endif\n material.anisotropy = length( anisotropyV );\n if( material.anisotropy == 0.0 ) {\n anisotropyV = vec2( 1.0, 0.0 );\n } else {\n anisotropyV /= material.anisotropy;\n material.anisotropy = saturate( material.anisotropy );\n }\n material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n vec3 diffuseColor;\n float roughness;\n vec3 specularColor;\n float specularF90;\n float dispersion;\n #ifdef USE_CLEARCOAT\n float clearcoat;\n float clearcoatRoughness;\n vec3 clearcoatF0;\n float clearcoatF90;\n #endif\n #ifdef USE_IRIDESCENCE\n float iridescence;\n float iridescenceIOR;\n float iridescenceThickness;\n vec3 iridescenceFresnel;\n vec3 iridescenceF0;\n #endif\n #ifdef USE_SHEEN\n vec3 sheenColor;\n float sheenRoughness;\n #endif\n #ifdef IOR\n float ior;\n #endif\n #ifdef USE_TRANSMISSION\n float transmission;\n float transmissionAlpha;\n float thickness;\n float attenuationDistance;\n vec3 attenuationColor;\n #endif\n #ifdef USE_ANISOTROPY\n float anisotropy;\n float alphaT;\n vec3 anisotropyT;\n vec3 anisotropyB;\n #endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n float a2 = pow2( alpha );\n float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n return 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n float a2 = pow2( alpha );\n float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n return RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n float v = 0.5 / ( gv + gl );\n return saturate(v);\n }\n float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n float a2 = alphaT * alphaB;\n highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n highp float v2 = dot( v, v );\n float w2 = a2 / v2;\n return RECIPROCAL_PI * a2 * pow2 ( w2 );\n }\n#endif\n#ifdef USE_CLEARCOAT\n vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n vec3 f0 = material.clearcoatF0;\n float f90 = material.clearcoatF90;\n float roughness = material.clearcoatRoughness;\n float alpha = pow2( roughness );\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( f0, f90, dotVH );\n float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n float D = D_GGX( alpha, dotNH );\n return F * ( V * D );\n }\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n vec3 f0 = material.specularColor;\n float f90 = material.specularF90;\n float roughness = material.roughness;\n float alpha = pow2( roughness );\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( f0, f90, dotVH );\n #ifdef USE_IRIDESCENCE\n F = mix( F, material.iridescenceFresnel, material.iridescence );\n #endif\n #ifdef USE_ANISOTROPY\n float dotTL = dot( material.anisotropyT, lightDir );\n float dotTV = dot( material.anisotropyT, viewDir );\n float dotTH = dot( material.anisotropyT, halfDir );\n float dotBL = dot( material.anisotropyB, lightDir );\n float dotBV = dot( material.anisotropyB, viewDir );\n float dotBH = dot( material.anisotropyB, halfDir );\n float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n #else\n float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n float D = D_GGX( alpha, dotNH );\n #endif\n return F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n const float LUT_SIZE = 64.0;\n const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n const float LUT_BIAS = 0.5 / LUT_SIZE;\n float dotNV = saturate( dot( N, V ) );\n vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n uv = uv * LUT_SCALE + LUT_BIAS;\n return uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n float l = length( f );\n return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n float x = dot( v1, v2 );\n float y = abs( x );\n float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n float b = 3.4175940 + ( 4.1616724 + y ) * y;\n float v = a / b;\n float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n return cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n vec3 lightNormal = cross( v1, v2 );\n if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n vec3 T1, T2;\n T1 = normalize( V - N * dot( V, N ) );\n T2 = - cross( N, T1 );\n mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n vec3 coords[ 4 ];\n coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n coords[ 0 ] = normalize( coords[ 0 ] );\n coords[ 1 ] = normalize( coords[ 1 ] );\n coords[ 2 ] = normalize( coords[ 2 ] );\n coords[ 3 ] = normalize( coords[ 3 ] );\n vec3 vectorFormFactor = vec3( 0.0 );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n float result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n return vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n float alpha = pow2( roughness );\n float invAlpha = 1.0 / alpha;\n float cos2h = dotNH * dotNH;\n float sin2h = max( 1.0 - cos2h, 0.0078125 );\n return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float D = D_Charlie( sheenRoughness, dotNH );\n float V = V_Neubelt( dotNV, dotNL );\n return sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n float dotNV = saturate( dot( normal, viewDir ) );\n float r2 = roughness * roughness;\n float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n return saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n float dotNV = saturate( dot( normal, viewDir ) );\n const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n vec4 r = roughness * c0 + c1;\n float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n return fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n vec2 fab = DFGApprox( normal, viewDir, roughness );\n return specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n vec2 fab = DFGApprox( normal, viewDir, roughness );\n #ifdef USE_IRIDESCENCE\n vec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n #else\n vec3 Fr = specularColor;\n #endif\n vec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n float Ess = fab.x + fab.y;\n float Ems = 1.0 - Ess;\n vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n singleScatter += FssEss;\n multiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 normal = geometryNormal;\n vec3 viewDir = geometryViewDir;\n vec3 position = geometryPosition;\n vec3 lightPos = rectAreaLight.position;\n vec3 halfWidth = rectAreaLight.halfWidth;\n vec3 halfHeight = rectAreaLight.halfHeight;\n vec3 lightColor = rectAreaLight.color;\n float roughness = material.roughness;\n vec3 rectCoords[ 4 ];\n rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n vec2 uv = LTC_Uv( normal, viewDir, roughness );\n vec4 t1 = texture2D( ltc_1, uv );\n vec4 t2 = texture2D( ltc_2, uv );\n mat3 mInv = mat3(\n vec3( t1.x, 0, t1.y ),\n vec3( 0, 1, 0 ),\n vec3( t1.z, 0, t1.w )\n );\n vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n }\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n #ifdef USE_CLEARCOAT\n float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n vec3 ccIrradiance = dotNLcc * directLight.color;\n clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n #endif\n #ifdef USE_SHEEN\n sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n #endif\n reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n #ifdef USE_CLEARCOAT\n clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n #endif\n #ifdef USE_SHEEN\n sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n #endif\n vec3 singleScattering = vec3( 0.0 );\n vec3 multiScattering = vec3( 0.0 );\n vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n #ifdef USE_IRIDESCENCE\n computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n #else\n computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n #endif\n vec3 totalScattering = singleScattering + multiScattering;\n vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n reflectedLight.indirectSpecular += radiance * singleScattering;\n reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct RE_Direct_Physical\n#define RE_Direct_RectArea RE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular RE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n geometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n float dotNVi = saturate( dot( normal, geometryViewDir ) );\n if ( material.iridescenceThickness == 0.0 ) {\n material.iridescence = 0.0;\n } else {\n material.iridescence = saturate( material.iridescence );\n }\n if ( material.iridescence > 0.0 ) {\n material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n }\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n PointLight pointLight;\n #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n pointLight = pointLights[ i ];\n getPointLightInfo( pointLight, geometryPosition, directLight );\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n pointLightShadow = pointLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n SpotLight spotLight;\n vec4 spotColor;\n vec3 spotLightCoord;\n bool inSpotLightMap;\n #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n spotLight = spotLights[ i ];\n getSpotLightInfo( spotLight, geometryPosition, directLight );\n #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n #else\n #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #endif\n #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n #endif\n #undef SPOT_LIGHT_MAP_INDEX\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n spotLightShadow = spotLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n DirectionalLight directionalLight;\n #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n directionalLight = directionalLights[ i ];\n getDirectionalLightInfo( directionalLight, directLight );\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n directionalLightShadow = directionalLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n RectAreaLight rectAreaLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n rectAreaLight = rectAreaLights[ i ];\n RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n vec3 iblIrradiance = vec3( 0.0 );\n vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n #if defined( USE_LIGHT_PROBES )\n irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n #endif\n #if ( NUM_HEMI_LIGHTS > 0 )\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n }\n #pragma unroll_loop_end\n #endif\n#endif\n#if defined( RE_IndirectSpecular )\n vec3 radiance = vec3( 0.0 );\n vec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n #ifdef USE_LIGHTMAP\n vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n irradiance += lightMapIrradiance;\n #endif\n #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n iblIrradiance += getIBLIrradiance( geometryNormal );\n #endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n #ifdef USE_ANISOTROPY\n radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n #else\n radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n #endif\n #ifdef USE_CLEARCOAT\n clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n #endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF )\n gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF )\n uniform float logDepthBufFC;\n varying float vFragDepth;\n varying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n varying float vFragDepth;\n varying float vIsPerspective;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n vFragDepth = 1.0 + gl_Position.w;\n vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif",map_fragment:"#ifdef USE_MAP\n vec4 sampledDiffuseColor = texture2D( map, vMapUv );\n #ifdef DECODE_VIDEO_TEXTURE\n sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\n #endif\n diffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n uniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n #if defined( USE_POINTS_UV )\n vec2 uv = vUv;\n #else\n vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n #endif\n#endif\n#ifdef USE_MAP\n diffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n diffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n varying vec2 vUv;\n#else\n #if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n uniform mat3 uvTransform;\n #endif\n#endif\n#ifdef USE_MAP\n uniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n uniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n metalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n uniform sampler2D metalnessMap;\n#endif",morphinstance_vertex:"#ifdef USE_INSTANCING_MORPH\n float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n }\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS )\n vColor *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n #if defined( USE_COLOR_ALPHA )\n if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n #elif defined( USE_COLOR )\n if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n #endif\n }\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n objectNormal *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n }\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n #ifndef USE_INSTANCING_MORPH\n uniform float morphTargetBaseInfluence;\n uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n #endif\n uniform sampler2DArray morphTargetsTexture;\n uniform ivec2 morphTargetsTextureSize;\n vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n int y = texelIndex / morphTargetsTextureSize.x;\n int x = texelIndex - y * morphTargetsTextureSize.x;\n ivec3 morphUV = ivec3( x, y, morphTargetIndex );\n return texelFetch( morphTargetsTexture, morphUV, 0 );\n }\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n transformed *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n }\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n vec3 fdx = dFdx( vViewPosition );\n vec3 fdy = dFdy( vViewPosition );\n vec3 normal = normalize( cross( fdx, fdy ) );\n#else\n vec3 normal = normalize( vNormal );\n #ifdef DOUBLE_SIDED\n normal *= faceDirection;\n #endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n #ifdef USE_TANGENT\n mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n #else\n mat3 tbn = getTangentFrame( - vViewPosition, normal,\n #if defined( USE_NORMALMAP )\n vNormalMapUv\n #elif defined( USE_CLEARCOAT_NORMALMAP )\n vClearcoatNormalMapUv\n #else\n vUv\n #endif\n );\n #endif\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n tbn[0] *= faceDirection;\n tbn[1] *= faceDirection;\n #endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n #ifdef USE_TANGENT\n mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n #else\n mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n #endif\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n tbn2[0] *= faceDirection;\n tbn2[1] *= faceDirection;\n #endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n #ifdef FLIP_SIDED\n normal = - normal;\n #endif\n #ifdef DOUBLE_SIDED\n normal = normal * faceDirection;\n #endif\n normal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n mapN.xy *= normalScale;\n normal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n varying vec3 vNormal;\n #ifdef USE_TANGENT\n varying vec3 vTangent;\n varying vec3 vBitangent;\n #endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n varying vec3 vNormal;\n #ifdef USE_TANGENT\n varying vec3 vTangent;\n varying vec3 vBitangent;\n #endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n vNormal = normalize( transformedNormal );\n #ifdef USE_TANGENT\n vTangent = normalize( transformedTangent );\n vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n #endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n uniform sampler2D normalMap;\n uniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n uniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n vec3 q0 = dFdx( eye_pos.xyz );\n vec3 q1 = dFdy( eye_pos.xyz );\n vec2 st0 = dFdx( uv.st );\n vec2 st1 = dFdy( uv.st );\n vec3 N = surf_norm;\n vec3 q1perp = cross( q1, N );\n vec3 q0perp = cross( N, q0 );\n vec3 T = q1perp * st0.x + q0perp * st1.x;\n vec3 B = q1perp * st0.y + q0perp * st1.y;\n float det = max( dot( T, T ), dot( B, B ) );\n float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n return mat3( T * scale, B * scale, N );\n }\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n vec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n clearcoatMapN.xy *= clearcoatNormalScale;\n clearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n uniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n uniform sampler2D clearcoatNormalMap;\n uniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n uniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n uniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n uniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\nconst float Inv255 = 1. / 255.;\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\nvec4 packDepthToRGBA( const in float v ) {\n if( v <= 0.0 )\n return vec4( 0., 0., 0., 0. );\n if( v >= 1.0 )\n return vec4( 1., 1., 1., 1. );\n float vuf;\n float af = modf( v * PackFactors.a, vuf );\n float bf = modf( vuf * ShiftRight8, vuf );\n float gf = modf( vuf * ShiftRight8, vuf );\n return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\n}\nvec3 packDepthToRGB( const in float v ) {\n if( v <= 0.0 )\n return vec3( 0., 0., 0. );\n if( v >= 1.0 )\n return vec3( 1., 1., 1. );\n float vuf;\n float bf = modf( v * PackFactors.b, vuf );\n float gf = modf( vuf * ShiftRight8, vuf );\n return vec3( vuf * Inv255, gf * PackUpscale, bf );\n}\nvec2 packDepthToRG( const in float v ) {\n if( v <= 0.0 )\n return vec2( 0., 0. );\n if( v >= 1.0 )\n return vec2( 1., 1. );\n float vuf;\n float gf = modf( v * 256., vuf );\n return vec2( vuf * Inv255, gf );\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n return dot( v, UnpackFactors4 );\n}\nfloat unpackRGBToDepth( const in vec3 v ) {\n return dot( v, UnpackFactors3 );\n}\nfloat unpackRGToDepth( const in vec2 v ) {\n return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\n}\nvec4 pack2HalfToRGBA( const in vec2 v ) {\n vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( const in vec4 v ) {\n return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n return ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n return depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n gl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n mvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n vec3 dithering( vec3 color ) {\n float grid_position = rand( gl_FragCoord.xy );\n vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n return color + dither_shift_RGB;\n }\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n roughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n uniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n struct DirectionalLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n struct SpotLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n struct PointLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n float shadowCameraNear;\n float shadowCameraFar;\n };\n uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n #endif\n float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n }\n vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n return unpackRGBATo2Half( texture2D( shadow, uv ) );\n }\n float VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n float occlusion = 1.0;\n vec2 distribution = texture2DDistribution( shadow, uv );\n float hard_shadow = step( compare , distribution.x );\n if (hard_shadow != 1.0 ) {\n float distance = compare - distribution.x ;\n float variance = max( 0.00000, distribution.y * distribution.y );\n float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n }\n return occlusion;\n }\n float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n float shadow = 1.0;\n shadowCoord.xyz /= shadowCoord.w;\n shadowCoord.z += shadowBias;\n bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n bool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n if ( frustumTest ) {\n #if defined( SHADOWMAP_TYPE_PCF )\n vec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n float dx0 = - texelSize.x * shadowRadius;\n float dy0 = - texelSize.y * shadowRadius;\n float dx1 = + texelSize.x * shadowRadius;\n float dy1 = + texelSize.y * shadowRadius;\n float dx2 = dx0 / 2.0;\n float dy2 = dy0 / 2.0;\n float dx3 = dx1 / 2.0;\n float dy3 = dy1 / 2.0;\n shadow = (\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n ) * ( 1.0 / 17.0 );\n #elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n vec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n float dx = texelSize.x;\n float dy = texelSize.y;\n vec2 uv = shadowCoord.xy;\n vec2 f = fract( uv * shadowMapSize + 0.5 );\n uv -= f * texelSize;\n shadow = (\n texture2DCompare( shadowMap, uv, shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n f.x ) +\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n f.x ) +\n mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n f.y ) +\n mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n f.y ) +\n mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n f.x ),\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n f.x ),\n f.y )\n ) * ( 1.0 / 9.0 );\n #elif defined( SHADOWMAP_TYPE_VSM )\n shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n #else\n shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n #endif\n }\n return mix( 1.0, shadow, shadowIntensity );\n }\n vec2 cubeToUV( vec3 v, float texelSizeY ) {\n vec3 absV = abs( v );\n float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n absV *= scaleToCube;\n v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n vec2 planar = v.xy;\n float almostATexel = 1.5 * texelSizeY;\n float almostOne = 1.0 - almostATexel;\n if ( absV.z >= almostOne ) {\n if ( v.z > 0.0 )\n planar.x = 4.0 - v.x;\n } else if ( absV.x >= almostOne ) {\n float signX = sign( v.x );\n planar.x = v.z * signX + 2.0 * signX;\n } else if ( absV.y >= almostOne ) {\n float signY = sign( v.y );\n planar.x = v.x + 2.0 * signY + 2.0;\n planar.y = v.z * signY - 2.0;\n }\n return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n }\n float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n float shadow = 1.0;\n vec3 lightToPosition = shadowCoord.xyz;\n \n float lightToPositionLength = length( lightToPosition );\n if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias;\n vec3 bd3D = normalize( lightToPosition );\n vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n shadow = (\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n ) * ( 1.0 / 9.0 );\n #else\n shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n #endif\n }\n return mix( 1.0, shadow, shadowIntensity );\n }\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n struct DirectionalLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n struct SpotLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n struct PointLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n float shadowCameraNear;\n float shadowCameraFar;\n };\n uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n #endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n vec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n #if NUM_DIR_LIGHT_SHADOWS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n #endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n shadowWorldPosition = worldPosition;\n #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n #endif\n vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n float shadow = 1.0;\n #ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n directionalLight = directionalLightShadows[ i ];\n shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n spotLight = spotLightShadows[ i ];\n shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n pointLight = pointLightShadows[ i ];\n shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #endif\n return shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n mat4 boneMatX = getBoneMatrix( skinIndex.x );\n mat4 boneMatY = getBoneMatrix( skinIndex.y );\n mat4 boneMatZ = getBoneMatrix( skinIndex.z );\n mat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n uniform mat4 bindMatrix;\n uniform mat4 bindMatrixInverse;\n uniform highp sampler2D boneTexture;\n mat4 getBoneMatrix( const in float i ) {\n int size = textureSize( boneTexture, 0 ).x;\n int j = int( i ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n vec4 skinned = vec4( 0.0 );\n skinned += boneMatX * skinVertex * skinWeight.x;\n skinned += boneMatY * skinVertex * skinWeight.y;\n skinned += boneMatZ * skinVertex * skinWeight.z;\n skinned += boneMatW * skinVertex * skinWeight.w;\n transformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n mat4 skinMatrix = mat4( 0.0 );\n skinMatrix += skinWeight.x * boneMatX;\n skinMatrix += skinWeight.y * boneMatY;\n skinMatrix += skinWeight.z * boneMatZ;\n skinMatrix += skinWeight.w * boneMatW;\n skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n #ifdef USE_TANGENT\n objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n #endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n specularStrength = texelSpecular.r;\n#else\n specularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n uniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n return saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n return saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n color = max( vec3( 0.0 ), color - 0.004 );\n return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n vec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n return a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n const mat3 ACESInputMat = mat3(\n vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ),\n vec3( 0.04823, 0.01566, 0.83777 )\n );\n const mat3 ACESOutputMat = mat3(\n vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ),\n vec3( -0.07367, -0.00605, 1.07602 )\n );\n color *= toneMappingExposure / 0.6;\n color = ACESInputMat * color;\n color = RRTAndODTFit( color );\n color = ACESOutputMat * color;\n return saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n vec3( 1.6605, - 0.1246, - 0.0182 ),\n vec3( - 0.5876, 1.1329, - 0.1006 ),\n vec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n vec3( 0.6274, 0.0691, 0.0164 ),\n vec3( 0.3293, 0.9195, 0.0880 ),\n vec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n vec3 x2 = x * x;\n vec3 x4 = x2 * x2;\n return + 15.5 * x4 * x2\n - 40.14 * x4 * x\n + 31.96 * x4\n - 6.868 * x2 * x\n + 0.4298 * x2\n + 0.1191 * x\n - 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n const mat3 AgXInsetMatrix = mat3(\n vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n );\n const mat3 AgXOutsetMatrix = mat3(\n vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n );\n const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069;\n color *= toneMappingExposure;\n color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n color = AgXInsetMatrix * color;\n color = max( color, 1e-10 ); color = log2( color );\n color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n color = clamp( color, 0.0, 1.0 );\n color = agxDefaultContrastApprox( color );\n color = AgXOutsetMatrix * color;\n color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n color = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n color = clamp( color, 0.0, 1.0 );\n return color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n const float StartCompression = 0.8 - 0.04;\n const float Desaturation = 0.15;\n color *= toneMappingExposure;\n float x = min( color.r, min( color.g, color.b ) );\n float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n color -= offset;\n float peak = max( color.r, max( color.g, color.b ) );\n if ( peak < StartCompression ) return color;\n float d = 1. - StartCompression;\n float newPeak = 1. - d * d / ( peak + d - StartCompression );\n color *= newPeak / peak;\n float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n return mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n material.transmission = transmission;\n material.transmissionAlpha = 1.0;\n material.thickness = thickness;\n material.attenuationDistance = attenuationDistance;\n material.attenuationColor = attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n #endif\n #ifdef USE_THICKNESSMAP\n material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n #endif\n vec3 pos = vWorldPosition;\n vec3 v = normalize( cameraPosition - pos );\n vec3 n = inverseTransformDirection( normal, viewMatrix );\n vec4 transmitted = getIBLVolumeRefraction(\n n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n material.attenuationColor, material.attenuationDistance );\n material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n uniform float transmission;\n uniform float thickness;\n uniform float attenuationDistance;\n uniform vec3 attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n uniform sampler2D transmissionMap;\n #endif\n #ifdef USE_THICKNESSMAP\n uniform sampler2D thicknessMap;\n #endif\n uniform vec2 transmissionSamplerSize;\n uniform sampler2D transmissionSamplerMap;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrix;\n varying vec3 vWorldPosition;\n float w0( float a ) {\n return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n }\n float w1( float a ) {\n return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n }\n float w2( float a ){\n return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n }\n float w3( float a ) {\n return ( 1.0 / 6.0 ) * ( a * a * a );\n }\n float g0( float a ) {\n return w0( a ) + w1( a );\n }\n float g1( float a ) {\n return w2( a ) + w3( a );\n }\n float h0( float a ) {\n return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n }\n float h1( float a ) {\n return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n }\n vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n uv = uv * texelSize.zw + 0.5;\n vec2 iuv = floor( uv );\n vec2 fuv = fract( uv );\n float g0x = g0( fuv.x );\n float g1x = g1( fuv.x );\n float h0x = h0( fuv.x );\n float h1x = h1( fuv.x );\n float h0y = h0( fuv.y );\n float h1y = h1( fuv.y );\n vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n }\n vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n vec2 fLodSizeInv = 1.0 / fLodSize;\n vec2 cLodSizeInv = 1.0 / cLodSize;\n vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n return mix( fSample, cSample, fract( lod ) );\n }\n vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n vec3 modelScale;\n modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n return normalize( refractionVector ) * thickness * modelScale;\n }\n float applyIorToRoughness( const in float roughness, const in float ior ) {\n return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n }\n vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n }\n vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n if ( isinf( attenuationDistance ) ) {\n return vec3( 1.0 );\n } else {\n vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance;\n }\n }\n vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n const in vec3 attenuationColor, const in float attenuationDistance ) {\n vec4 transmittedLight;\n vec3 transmittance;\n #ifdef USE_DISPERSION\n float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n for ( int i = 0; i < 3; i ++ ) {\n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n \n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n \n vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n transmittedLight[ i ] = transmissionSample[ i ];\n transmittedLight.a += transmissionSample.a;\n transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n }\n transmittedLight.a /= 3.0;\n \n #else\n \n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n \n #endif\n vec3 attenuatedColor = transmittance * transmittedLight.rgb;\n vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n }\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n varying vec2 vUv;\n#endif\n#ifdef USE_MAP\n varying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n varying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n varying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n varying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n varying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n varying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n varying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n varying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n varying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n varying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n varying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n varying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n varying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n varying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n varying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n varying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n varying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n varying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n varying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n varying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n uniform mat3 transmissionMapTransform;\n varying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n uniform mat3 thicknessMapTransform;\n varying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n varying vec2 vUv;\n#endif\n#ifdef USE_MAP\n uniform mat3 mapTransform;\n varying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n uniform mat3 alphaMapTransform;\n varying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n uniform mat3 lightMapTransform;\n varying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n uniform mat3 aoMapTransform;\n varying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n uniform mat3 bumpMapTransform;\n varying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n uniform mat3 normalMapTransform;\n varying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n uniform mat3 displacementMapTransform;\n varying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n uniform mat3 emissiveMapTransform;\n varying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n uniform mat3 metalnessMapTransform;\n varying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n uniform mat3 roughnessMapTransform;\n varying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n uniform mat3 anisotropyMapTransform;\n varying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n uniform mat3 clearcoatMapTransform;\n varying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n uniform mat3 clearcoatNormalMapTransform;\n varying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n uniform mat3 clearcoatRoughnessMapTransform;\n varying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n uniform mat3 sheenColorMapTransform;\n varying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n uniform mat3 sheenRoughnessMapTransform;\n varying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n uniform mat3 iridescenceMapTransform;\n varying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n uniform mat3 iridescenceThicknessMapTransform;\n varying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n uniform mat3 specularMapTransform;\n varying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n uniform mat3 specularColorMapTransform;\n varying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n uniform mat3 specularIntensityMapTransform;\n varying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n uniform mat3 transmissionMapTransform;\n varying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n uniform mat3 thicknessMapTransform;\n varying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n vUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n vec4 worldPosition = vec4( transformed, 1.0 );\n #ifdef USE_BATCHING\n worldPosition = batchingMatrix * worldPosition;\n #endif\n #ifdef USE_INSTANCING\n worldPosition = instanceMatrix * worldPosition;\n #endif\n worldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n gl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n vec4 texColor = texture2D( t2D, vUv );\n #ifdef DECODE_VIDEO_TEXTURE\n texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n #endif\n texColor.rgb *= backgroundIntensity;\n gl_FragColor = texColor;\n #include \n #include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n gl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n uniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n #ifdef ENVMAP_TYPE_CUBE\n vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n #elif defined( ENVMAP_TYPE_CUBE_UV )\n vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n #else\n vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n #endif\n texColor.rgb *= backgroundIntensity;\n gl_FragColor = texColor;\n #include \n #include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n gl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n gl_FragColor = texColor;\n gl_FragColor.a *= opacity;\n #include \n #include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n #include \n #include \n #include \n #include \n #ifdef USE_DISPLACEMENTMAP\n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n uniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n vec4 diffuseColor = vec4( 1.0 );\n #include \n #if DEPTH_PACKING == 3200\n diffuseColor.a = opacity;\n #endif\n #include \n #include \n #include \n #include \n #include \n float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n #if DEPTH_PACKING == 3200\n gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n #elif DEPTH_PACKING == 3201\n gl_FragColor = packDepthToRGBA( fragCoordZ );\n #elif DEPTH_PACKING == 3202\n gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\n #elif DEPTH_PACKING == 3203\n gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\n #endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #ifdef USE_DISPLACEMENTMAP\n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n vec4 diffuseColor = vec4( 1.0 );\n #include \n #include \n #include \n #include \n #include \n float dist = length( vWorldPosition - referencePosition );\n dist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n dist = saturate( dist );\n gl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n vec3 direction = normalize( vWorldDirection );\n vec2 sampleUV = equirectUv( direction );\n gl_FragColor = texture2D( tEquirect, sampleUV );\n #include \n #include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vLineDistance = scale * lineDistance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n if ( mod( vLineDistance, totalSize ) > dashSize ) {\n discard;\n }\n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n #include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n #include \n #include \n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n varying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n #ifdef USE_LIGHTMAP\n vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n #else\n reflectedLight.indirectDiffuse += vec3( 1.0 );\n #endif\n #include \n reflectedLight.indirectDiffuse *= diffuseColor.rgb;\n vec3 outgoingLight = reflectedLight.indirectDiffuse;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n #include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 viewDir = normalize( vViewPosition );\n vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n vec3 y = cross( viewDir, x );\n vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n #ifdef USE_MATCAP\n vec4 matcapColor = texture2D( matcap, uv );\n #else\n vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n #endif\n vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n #include \n #include \n #include \n #include \n #include \n #include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n varying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n vViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n varying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n #include \n #include \n #include \n #include \n gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n #ifdef OPAQUE\n gl_FragColor.a = 1.0;\n #endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n #include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n varying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n#ifdef USE_TRANSMISSION\n vWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n #define IOR\n #define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n uniform float ior;\n#endif\n#ifdef USE_SPECULAR\n uniform float specularIntensity;\n uniform vec3 specularColor;\n #ifdef USE_SPECULAR_COLORMAP\n uniform sampler2D specularColorMap;\n #endif\n #ifdef USE_SPECULAR_INTENSITYMAP\n uniform sampler2D specularIntensityMap;\n #endif\n#endif\n#ifdef USE_CLEARCOAT\n uniform float clearcoat;\n uniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n uniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n uniform float iridescence;\n uniform float iridescenceIOR;\n uniform float iridescenceThicknessMinimum;\n uniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n uniform vec3 sheenColor;\n uniform float sheenRoughness;\n #ifdef USE_SHEEN_COLORMAP\n uniform sampler2D sheenColorMap;\n #endif\n #ifdef USE_SHEEN_ROUGHNESSMAP\n uniform sampler2D sheenRoughnessMap;\n #endif\n#endif\n#ifdef USE_ANISOTROPY\n uniform vec2 anisotropyVector;\n #ifdef USE_ANISOTROPYMAP\n uniform sampler2D anisotropyMap;\n #endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n #include \n vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n #ifdef USE_SHEEN\n float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n #endif\n #ifdef USE_CLEARCOAT\n float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n varying vec2 vUv;\n uniform mat3 uvTransform;\n#endif\nvoid main() {\n #ifdef USE_POINTS_UV\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n gl_PointSize = size;\n #ifdef USE_SIZEATTENUATION\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n #endif\n #include \n #include \n #include \n #include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n #include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n #include \n #include \n #include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n vec4 mvPosition = modelViewMatrix[ 3 ];\n vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\n #ifndef USE_SIZEATTENUATION\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) scale *= - mvPosition.z;\n #endif\n vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n vec2 rotatedPosition;\n rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n mvPosition.xy += rotatedPosition;\n gl_Position = projectionMatrix * mvPosition;\n #include \n #include \n #include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n}"},ok={common:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},map:{value:null},mapTransform:{value:new Z},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Z}},envmap:{envMap:{value:null},envMapRotation:{value:new Z},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Z}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Z}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Z},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Z},normalScale:{value:new Y(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Z},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Z}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Z}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Z}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new tz(0xffffff)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0},uvTransform:{value:new Z}},sprite:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},center:{value:new Y(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Z},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0}}},oH={basic:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.fog]),vertexShader:oB.meshbasic_vert,fragmentShader:oB.meshbasic_frag},lambert:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,ok.lights,{emissive:{value:new tz(0)}}]),vertexShader:oB.meshlambert_vert,fragmentShader:oB.meshlambert_frag},phong:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,ok.lights,{emissive:{value:new tz(0)},specular:{value:new tz(1118481)},shininess:{value:30}}]),vertexShader:oB.meshphong_vert,fragmentShader:oB.meshphong_frag},standard:{uniforms:n_([ok.common,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.roughnessmap,ok.metalnessmap,ok.fog,ok.lights,{emissive:{value:new tz(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:oB.meshphysical_vert,fragmentShader:oB.meshphysical_frag},toon:{uniforms:n_([ok.common,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.gradientmap,ok.fog,ok.lights,{emissive:{value:new tz(0)}}]),vertexShader:oB.meshtoon_vert,fragmentShader:oB.meshtoon_frag},matcap:{uniforms:n_([ok.common,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,{matcap:{value:null}}]),vertexShader:oB.meshmatcap_vert,fragmentShader:oB.meshmatcap_frag},points:{uniforms:n_([ok.points,ok.fog]),vertexShader:oB.points_vert,fragmentShader:oB.points_frag},dashed:{uniforms:n_([ok.common,ok.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:oB.linedashed_vert,fragmentShader:oB.linedashed_frag},depth:{uniforms:n_([ok.common,ok.displacementmap]),vertexShader:oB.depth_vert,fragmentShader:oB.depth_frag},normal:{uniforms:n_([ok.common,ok.bumpmap,ok.normalmap,ok.displacementmap,{opacity:{value:1}}]),vertexShader:oB.meshnormal_vert,fragmentShader:oB.meshnormal_frag},sprite:{uniforms:n_([ok.sprite,ok.fog]),vertexShader:oB.sprite_vert,fragmentShader:oB.sprite_frag},background:{uniforms:{uvTransform:{value:new Z},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:oB.background_vert,fragmentShader:oB.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Z}},vertexShader:oB.backgroundCube_vert,fragmentShader:oB.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:oB.cube_vert,fragmentShader:oB.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:oB.equirect_vert,fragmentShader:oB.equirect_frag},distanceRGBA:{uniforms:n_([ok.common,ok.displacementmap,{referencePosition:{value:new eE},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:oB.distanceRGBA_vert,fragmentShader:oB.distanceRGBA_frag},shadow:{uniforms:n_([ok.lights,ok.fog,{color:{value:new tz(0)},opacity:{value:1}}]),vertexShader:oB.shadow_vert,fragmentShader:oB.shadow_frag}};oH.physical={uniforms:n_([oH.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Z},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Z},clearcoatNormalScale:{value:new Y(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Z},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Z},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Z},sheen:{value:0},sheenColor:{value:new tz(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Z},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Z},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Z},transmissionSamplerSize:{value:new Y},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Z},attenuationDistance:{value:0},attenuationColor:{value:new tz(0)},specularColor:{value:new tz(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Z},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Z},anisotropyVector:{value:new Y},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Z}}]),vertexShader:oB.meshphysical_vert,fragmentShader:oB.meshphysical_frag};let oV={r:0,b:0,g:0},oG=new tn,oW=new e2;function oj(e,t,n,i,r,a,s){let o,l,u=new tz(0),c=+(!0!==a),h=null,d=0,p=null;function f(e){let i=!0===e.isScene?e.background:null;return i&&i.isTexture&&(i=(e.backgroundBlurriness>0?n:t).get(i)),i}function m(t,n){t.getRGB(oV,ny(e)),i.buffers.color.setClear(oV.r,oV.g,oV.b,n,s)}return{getClearColor:function(){return u},setClearColor:function(e,t=1){u.set(e),m(u,c=t)},getClearAlpha:function(){return c},setClearAlpha:function(e){m(u,c=e)},render:function(t){let n=!1,r=f(t);null===r?m(u,c):r&&r.isColor&&(m(r,1),n=!0);let a=e.xr.getEnvironmentBlendMode();"additive"===a?i.buffers.color.setClear(0,0,0,1,s):"alpha-blend"===a&&i.buffers.color.setClear(0,0,0,0,s),(e.autoClear||n)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil))},addToRenderList:function(t,n){let i=f(n);i&&(i.isCubeTexture||306===i.mapping)?(void 0===l&&((l=new nf(new ng(1,1,1),new nb({name:"BackgroundCubeMaterial",uniforms:nv(oH.backgroundCube.uniforms),vertexShader:oH.backgroundCube.vertexShader,fragmentShader:oH.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),oG.copy(n.backgroundRotation),oG.x*=-1,oG.y*=-1,oG.z*=-1,i.isCubeTexture&&!1===i.isRenderTargetTexture&&(oG.y*=-1,oG.z*=-1),l.material.uniforms.envMap.value=i,l.material.uniforms.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,l.material.uniforms.backgroundBlurriness.value=n.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,l.material.uniforms.backgroundRotation.value.setFromMatrix4(oW.makeRotationFromEuler(oG)),l.material.toneMapped=eu.getTransfer(i.colorSpace)!==U,(h!==i||d!==i.version||p!==e.toneMapping)&&(l.material.needsUpdate=!0,h=i,d=i.version,p=e.toneMapping),l.layers.enableAll(),t.unshift(l,l.geometry,l.material,0,0,null)):i&&i.isTexture&&(void 0===o&&((o=new nf(new r9(2,2),new nb({name:"BackgroundMaterial",uniforms:nv(oH.background.uniforms),vertexShader:oH.background.vertexShader,fragmentShader:oH.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(o)),o.material.uniforms.t2D.value=i,o.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,o.material.toneMapped=eu.getTransfer(i.colorSpace)!==U,!0===i.matrixAutoUpdate&&i.updateMatrix(),o.material.uniforms.uvTransform.value.copy(i.matrix),(h!==i||d!==i.version||p!==e.toneMapping)&&(o.material.needsUpdate=!0,h=i,d=i.version,p=e.toneMapping),o.layers.enableAll(),t.unshift(o,o.geometry,o.material,0,0,null))},dispose:function(){void 0!==l&&(l.geometry.dispose(),l.material.dispose()),void 0!==o&&(o.geometry.dispose(),o.material.dispose())}}}function oX(e,t){let n=e.getParameter(e.MAX_VERTEX_ATTRIBS),i={},r=u(null),a=r,s=!1;function o(t){return e.bindVertexArray(t)}function l(t){return e.deleteVertexArray(t)}function u(e){let t=[],i=[],r=[];for(let e=0;e=0){let n=r[t],i=s[t];if(void 0===i&&("instanceMatrix"===t&&e.instanceMatrix&&(i=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(i=e.instanceColor)),void 0===n||n.attribute!==i||i&&n.data!==i.data)return!0;o++}return a.attributesNum!==o||a.index!==i}(n,m,l,g))&&function(e,t,n,i){let r={},s=t.attributes,o=0,l=n.getAttributes();for(let t in l)if(l[t].location>=0){let n=s[t];void 0===n&&("instanceMatrix"===t&&e.instanceMatrix&&(n=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(n=e.instanceColor));let i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[t]=i,o++}a.attributes=r,a.attributesNum=o,a.index=i}(n,m,l,g),null!==g&&t.update(g,e.ELEMENT_ARRAY_BUFFER),(M||s)&&(s=!1,function(n,i,r,a){c();let s=a.attributes,o=r.getAttributes(),l=i.defaultAttributeValues;for(let i in o){let r=o[i];if(r.location>=0){let o=s[i];if(void 0===o&&("instanceMatrix"===i&&n.instanceMatrix&&(o=n.instanceMatrix),"instanceColor"===i&&n.instanceColor&&(o=n.instanceColor)),void 0!==o){let i=o.normalized,s=o.itemSize,l=t.get(o);if(void 0===l)continue;let u=l.buffer,c=l.type,p=l.bytesPerElement,m=c===e.INT||c===e.UNSIGNED_INT||1013===o.gpuType;if(o.isInterleavedBufferAttribute){let t=o.data,l=t.stride,g=o.offset;if(t.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let s=void 0!==n.precision?n.precision:"highp",o=a(s);o!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",o,"instead."),s=o);let l=!0===n.logarithmicDepthBuffer,u=!0===n.reverseDepthBuffer&&t.has("EXT_clip_control"),c=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),h=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){let n=t.get("EXT_texture_filter_anisotropic");r=e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:a,textureFormatReadable:function(t){return 1023===t||i.convert(t)===e.getParameter(e.IMPLEMENTATION_COLOR_READ_FORMAT)},textureTypeReadable:function(n){let r=1016===n&&(t.has("EXT_color_buffer_half_float")||t.has("EXT_color_buffer_float"));return 1009===n||i.convert(n)===e.getParameter(e.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n||!!r},precision:s,logarithmicDepthBuffer:l,reverseDepthBuffer:u,maxTextures:c,maxVertexTextures:h,maxTextureSize:e.getParameter(e.MAX_TEXTURE_SIZE),maxCubemapSize:e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),maxAttributes:e.getParameter(e.MAX_VERTEX_ATTRIBS),maxVertexUniforms:e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),maxVaryings:e.getParameter(e.MAX_VARYING_VECTORS),maxFragmentUniforms:e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),vertexTextures:h>0,maxSamples:e.getParameter(e.MAX_SAMPLES)}}function oZ(e){let t=this,n=null,i=0,r=!1,a=!1,s=new iy,o=new Z,l={value:null,needsUpdate:!1};function u(e,n,i,r){let a=null!==e?e.length:0,u=null;if(0!==a){if(u=l.value,!0!==r||null===u){let t=i+4*a,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===u||u.length0),t.numPlanes=i,t.numIntersection=0)}}function oJ(e){let t=new WeakMap;function n(e,t){return 303===t?e.mapping=301:304===t&&(e.mapping=302),e}function i(e){let n=e.target;n.removeEventListener("dispose",i);let r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){let a=r.mapping;if(303===a||304===a)if(t.has(r))return n(t.get(r).texture,r.mapping);else{let a=r.image;if(!a||!(a.height>0))return null;{let s=new nR(a.height);return s.fromEquirectangularTexture(e,r),t.set(r,s),r.addEventListener("dispose",i),n(s.texture,r.mapping)}}}return r},dispose:function(){t=new WeakMap}}}let oK=[.125,.215,.35,.446,.526,.582],o$=new sn,oQ=new tz,o0=null,o1=0,o2=0,o3=!1,o4=(1+Math.sqrt(5))/2,o5=1/o4,o6=[new eE(-o4,o5,0),new eE(o4,o5,0),new eE(-o5,0,o4),new eE(o5,0,o4),new eE(0,o4,-o5),new eE(0,o4,o5),new eE(-1,1,-1),new eE(1,1,-1),new eE(-1,1,1),new eE(1,1,1)];class o8{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){o0=this._renderer.getRenderTarget(),o1=this._renderer.getActiveCubeFace(),o2=this._renderer.getActiveMipmapLevel(),o3=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(e,n,i,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=lt(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=le(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;ee-4?o=oK[s-e+4-1]:0===s&&(o=0),i.push(o);let l=1/(a-2),u=-l,c=1+l,h=[u,u,c,u,c,c,u,u,c,c,u,c],d=new Float32Array(108),p=new Float32Array(72),f=new Float32Array(36);for(let e=0;e<6;e++){let t=e%3*2/3-1,n=e>2?0:-1,i=[t,n,0,t+2/3,n,0,t+2/3,n+1,0,t,n,0,t+2/3,n+1,0,t,n+1,0];d.set(i,18*e),p.set(h,12*e);let r=[e,e,e,e,e,e];f.set(r,6*e)}let m=new nn;m.setAttribute("position",new tZ(d,3)),m.setAttribute("uv",new tZ(p,2)),m.setAttribute("faceIndex",new tZ(f,1)),t.push(m),r>4&&r--}return{lodPlanes:t,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=(r=i,new nb({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:new Float32Array(20)},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:new eE(0,1,0)}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:0,depthTest:!1,depthWrite:!1}))}return i}_compileMaterial(e){let t=new nf(this._lodPlanes[0],e);this._renderer.compile(t,o$)}_sceneToCubeUV(e,t,n,i){let r=new nE(90,1,t,n),a=[1,-1,1,1,1,1],s=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,u=o.toneMapping;o.getClearColor(oQ),o.toneMapping=0,o.autoClear=!1;let c=new tV({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),h=new nf(new ng,c),d=!1,p=e.background;p?p.isColor&&(c.color.copy(p),e.background=null,d=!0):(c.color.copy(oQ),d=!0);for(let t=0;t<6;t++){let n=t%3;0===n?(r.up.set(0,a[t],0),r.lookAt(s[t],0,0)):1===n?(r.up.set(0,0,a[t]),r.lookAt(0,s[t],0)):(r.up.set(0,a[t],0),r.lookAt(0,0,s[t]));let l=this._cubeSize;o7(i,n*l,t>2?l:0,l,l),o.setRenderTarget(i),d&&o.render(h,r),o.render(e,r)}h.geometry.dispose(),h.material.dispose(),o.toneMapping=u,o.autoClear=l,e.background=p}_textureToCubeUV(e,t){let n=this._renderer,i=301===e.mapping||302===e.mapping;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=lt()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=le());let r=i?this._cubemapMaterial:this._equirectMaterial,a=new nf(this._lodPlanes[0],r);r.uniforms.envMap.value=e;let s=this._cubeSize;o7(t,0,0,3*s,2*s),n.setRenderTarget(t),n.render(a,o$)}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;let i=this._lodPlanes.length;for(let t=1;t20&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);let m=[],g=0;for(let e=0;e<20;++e){let t=e/p,n=Math.exp(-t*t/2);m.push(n),0===e?g+=n:ev-4?i-v+4:0),y,3*_,2*_),o.setRenderTarget(t),o.render(u,o$)}}function o9(e,t,n){let i=new ex(e,t,n);return i.texture.mapping=306,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function o7(e,t,n,i,r){e.viewport.set(t,n,i,r),e.scissor.set(t,n,i,r)}function le(){return new nb({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function lt(){return new nb({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function ln(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function li(e){let t=new WeakMap,n=null;function i(e){let n=e.target;n.removeEventListener("dispose",i);let r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){let a=r.mapping,s=303===a||304===a,o=301===a||302===a;if(s||o){let a=t.get(r),l=void 0!==a?a.texture.pmremVersion:0;if(r.isRenderTargetTexture&&r.pmremVersion!==l)return null===n&&(n=new o8(e)),(a=s?n.fromEquirectangular(r,a):n.fromCubemap(r,a)).texture.pmremVersion=r.pmremVersion,t.set(r,a),a.texture;{if(void 0!==a)return a.texture;let l=r.image;return s&&l&&l.height>0||o&&l&&function(e){let t=0;for(let n=0;n<6;n++)void 0!==e[n]&&t++;return 6===t}(l)?(null===n&&(n=new o8(e)),(a=s?n.fromEquirectangular(r):n.fromCubemap(r)).texture.pmremVersion=r.pmremVersion,t.set(r,a),r.addEventListener("dispose",i),a.texture):null}}}return r},dispose:function(){t=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function lr(e){let t={};function n(n){let i;if(void 0!==t[n])return t[n];switch(n){case"WEBGL_depth_texture":i=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=e.getExtension(n)}return t[n]=i,i}return{has:function(e){return null!==n(e)},init:function(){n("EXT_color_buffer_float"),n("WEBGL_clip_cull_distance"),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture"),n("WEBGL_render_shared_exponent")},get:function(e){let t=n(e);return null===t&&ei("THREE.WebGLRenderer: "+e+" extension not supported."),t}}}function la(e,t,n,i){let r={},a=new WeakMap;function s(e){let o=e.target;for(let e in null!==o.index&&t.remove(o.index),o.attributes)t.remove(o.attributes[e]);o.removeEventListener("dispose",s),delete r[o.id];let l=a.get(o);l&&(t.remove(l),a.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(e){let n=[],i=e.index,r=e.attributes.position,s=0;if(null!==i){let e=i.array;s=i.version;for(let t=0,i=e.length;tt.maxTextureSize&&(f=Math.ceil(p/t.maxTextureSize),p=t.maxTextureSize);let m=new Float32Array(p*f*4*c),g=new eb(m,p,f,c);g.type=1015,g.needsUpdate=!0;let v=4*d;for(let t=0;t0)return e;let r=t*n,a=lm[r];if(void 0===a&&(a=new Float32Array(r),lm[r]=a),0!==t){i.toArray(a,0);for(let i=1,r=0;i!==t;++i)r+=n,e[i].toArray(a,r)}return a}function lb(e,t){if(e.length!==t.length)return!1;for(let n=0,i=e.length;n":" "} ${r}: ${n[e]}`)}return i.join("\n")}(e.getShaderSource(t),i)}}let ul=new eE;function uu(e){return""!==e}function uc(e,t){let n=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function uh(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}let ud=/^[ \t]*#include +<([\w\d./]+)>/gm;function up(e){return e.replace(ud,um)}let uf=new Map;function um(e,t){let n=oB[t];if(void 0===n){let e=uf.get(t);if(void 0!==e)n=oB[e],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,e);else throw Error("Can not resolve #include <"+t+">")}return up(n)}let ug=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function uv(e){return e.replace(ug,u_)}function u_(e,t,n,i){let r="";for(let e=parseInt(t);e0&&(r+="\n"),(a=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x].filter(uu).join("\n")).length>0&&(a+="\n");else{let e,t,i,s;r=[uy(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+g:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+f:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif","\n"].filter(uu).join("\n"),a=[uy(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.envMap?"#define "+g:"",n.envMap?"#define "+v:"",_?"#define CUBEUV_TEXEL_WIDTH "+_.texelWidth:"",_?"#define CUBEUV_TEXEL_HEIGHT "+_.texelHeight:"",_?"#define CUBEUV_MAX_MIP "+_.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+f:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?oB.tonemapping_pars_fragment:"",0!==n.toneMapping?function(e,t){let n;switch(t){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="Cineon";break;case 4:n="ACESFilmic";break;case 6:n="AgX";break;case 7:n="Neutral";break;case 5:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),n="Linear"}return"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",oB.colorspace_pars_fragment,(e=function(e){eu._getMatrix(us,eu.workingColorSpace,e);let t=`mat3( ${us.elements.map(e=>e.toFixed(4))} )`;switch(eu.getTransfer(e)){case N:return[t,"LinearTransferOETF"];case U:return[t,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",e),[t,"LinearTransferOETF"]}}(n.outputColorSpace),`vec4 linearToOutputTexel( vec4 value ) { + return ${e[1]}( vec4( value.rgb * ${e[0]}, value.a ) ); +}`),(eu.getLuminanceCoefficients(ul),t=ul.x.toFixed(4),i=ul.y.toFixed(4),s=ul.z.toFixed(4),`float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( ${t}, ${i}, ${s} ); + return dot( weights, rgb ); +}`),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(uu).join("\n")}d=uh(d=uc(d=up(d),n),n),p=uh(p=uc(p=up(p),n),n),d=uv(d),p=uv(p),!0!==n.isRawShaderMaterial&&(S="#version 300 es\n",r=[y,"#define attribute in\n#define varying out\n#define texture2D texture"].join("\n")+"\n"+r,a=["#define varying in",n.glslVersion===D?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===D?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+a);let M=S+r+d,T=S+a+p,w=ur(c,c.VERTEX_SHADER,M),E=ur(c,c.FRAGMENT_SHADER,T);function A(t){if(e.debug.checkShaderErrors){let n=c.getProgramInfoLog(b).trim(),i=c.getShaderInfoLog(w).trim(),s=c.getShaderInfoLog(E).trim(),o=!0,l=!0;if(!1===c.getProgramParameter(b,c.LINK_STATUS))if(o=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(c,b,w,E);else{let e=uo(c,w,"vertex"),i=uo(c,E,"fragment");console.error("THREE.WebGLProgram: Shader Error "+c.getError()+" - VALIDATE_STATUS "+c.getProgramParameter(b,c.VALIDATE_STATUS)+"\n\nMaterial Name: "+t.name+"\nMaterial Type: "+t.type+"\n\nProgram Info Log: "+n+"\n"+e+"\n"+i)}else""!==n?console.warn("THREE.WebGLProgram: Program Info Log:",n):(""===i||""===s)&&(l=!1);l&&(t.diagnostics={runnable:o,programLog:n,vertexShader:{log:i,prefix:r},fragmentShader:{log:s,prefix:a}})}c.deleteShader(w),c.deleteShader(E),s=new ui(c,b),o=function(e,t){let n={},i=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let r=0;r0,Z=a.clearcoat>0,J=a.dispersion>0,K=a.iridescence>0,$=a.sheen>0,Q=a.transmission>0,ee=Y&&!!a.anisotropyMap,et=Z&&!!a.clearcoatMap,en=Z&&!!a.clearcoatNormalMap,ei=Z&&!!a.clearcoatRoughnessMap,er=K&&!!a.iridescenceMap,ea=K&&!!a.iridescenceThicknessMap,es=$&&!!a.sheenColorMap,eo=$&&!!a.sheenRoughnessMap,el=!!a.specularMap,ec=!!a.specularColorMap,eh=!!a.specularIntensityMap,ed=Q&&!!a.transmissionMap,ep=Q&&!!a.thicknessMap,ef=!!a.gradientMap,em=!!a.alphaMap,eg=a.alphaTest>0,ev=!!a.alphaHash,e_=!!a.extensions,ey=0;a.toneMapped&&(null===I||!0===I.isXRRenderTarget)&&(ey=e.toneMapping);let ex={shaderID:A,shaderType:a.type,shaderName:a.name,vertexShader:_,fragmentShader:y,defines:a.defines,customVertexShaderID:x,customFragmentShaderID:b,isRawShaderMaterial:!0===a.isRawShaderMaterial,glslVersion:a.glslVersion,precision:p,batching:O,batchingColor:O&&null!==v._colorsTexture,instancing:D,instancingColor:D&&null!==v.instanceColor,instancingMorph:D&&null!==v.morphTexture,supportsVertexTextures:d,outputColorSpace:null===I?e.outputColorSpace:!0===I.isXRRenderTarget?I.texture.colorSpace:L,alphaToCoverage:!!a.alphaToCoverage,map:F,matcap:z,envMap:B,envMapMode:B&&w.mapping,envMapCubeUVHeight:E,aoMap:k,lightMap:H,bumpMap:V,normalMap:G,displacementMap:d&&W,emissiveMap:j,normalMapObjectSpace:G&&1===a.normalMapType,normalMapTangentSpace:G&&0===a.normalMapType,metalnessMap:X,roughnessMap:q,anisotropy:Y,anisotropyMap:ee,clearcoat:Z,clearcoatMap:et,clearcoatNormalMap:en,clearcoatRoughnessMap:ei,dispersion:J,iridescence:K,iridescenceMap:er,iridescenceThicknessMap:ea,sheen:$,sheenColorMap:es,sheenRoughnessMap:eo,specularMap:el,specularColorMap:ec,specularIntensityMap:eh,transmission:Q,transmissionMap:ed,thicknessMap:ep,gradientMap:ef,opaque:!1===a.transparent&&1===a.blending&&!1===a.alphaToCoverage,alphaMap:em,alphaTest:eg,alphaHash:ev,combine:a.combine,mapUv:F&&m(a.map.channel),aoMapUv:k&&m(a.aoMap.channel),lightMapUv:H&&m(a.lightMap.channel),bumpMapUv:V&&m(a.bumpMap.channel),normalMapUv:G&&m(a.normalMap.channel),displacementMapUv:W&&m(a.displacementMap.channel),emissiveMapUv:j&&m(a.emissiveMap.channel),metalnessMapUv:X&&m(a.metalnessMap.channel),roughnessMapUv:q&&m(a.roughnessMap.channel),anisotropyMapUv:ee&&m(a.anisotropyMap.channel),clearcoatMapUv:et&&m(a.clearcoatMap.channel),clearcoatNormalMapUv:en&&m(a.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ei&&m(a.clearcoatRoughnessMap.channel),iridescenceMapUv:er&&m(a.iridescenceMap.channel),iridescenceThicknessMapUv:ea&&m(a.iridescenceThicknessMap.channel),sheenColorMapUv:es&&m(a.sheenColorMap.channel),sheenRoughnessMapUv:eo&&m(a.sheenRoughnessMap.channel),specularMapUv:el&&m(a.specularMap.channel),specularColorMapUv:ec&&m(a.specularColorMap.channel),specularIntensityMapUv:eh&&m(a.specularIntensityMap.channel),transmissionMapUv:ed&&m(a.transmissionMap.channel),thicknessMapUv:ep&&m(a.thicknessMap.channel),alphaMapUv:em&&m(a.alphaMap.channel),vertexTangents:!!M.attributes.tangent&&(G||Y),vertexColors:a.vertexColors,vertexAlphas:!0===a.vertexColors&&!!M.attributes.color&&4===M.attributes.color.itemSize,pointsUvs:!0===v.isPoints&&!!M.attributes.uv&&(F||em),fog:!!S,useFog:!0===a.fog,fogExp2:!!S&&S.isFogExp2,flatShading:!0===a.flatShading,sizeAttenuation:!0===a.sizeAttenuation,logarithmicDepthBuffer:h,reverseDepthBuffer:N,skinning:!0===v.isSkinnedMesh,morphTargets:void 0!==M.morphAttributes.position,morphNormals:void 0!==M.morphAttributes.normal,morphColors:void 0!==M.morphAttributes.color,morphTargetsCount:R,morphTextureStride:P,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:a.dithering,shadowMapEnabled:e.shadowMap.enabled&&c.length>0,shadowMapType:e.shadowMap.type,toneMapping:ey,decodeVideoTexture:F&&!0===a.map.isVideoTexture&&eu.getTransfer(a.map.colorSpace)===U,decodeVideoTextureEmissive:j&&!0===a.emissiveMap.isVideoTexture&&eu.getTransfer(a.emissiveMap.colorSpace)===U,premultipliedAlpha:a.premultipliedAlpha,doubleSided:2===a.side,flipSided:1===a.side,useDepthPacking:a.depthPacking>=0,depthPacking:a.depthPacking||0,index0AttributeName:a.index0AttributeName,extensionClipCullDistance:e_&&!0===a.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(e_&&!0===a.extensions.multiDraw||O)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:a.customProgramCacheKey()};return ex.vertexUv1s=u.has(1),ex.vertexUv2s=u.has(2),ex.vertexUv3s=u.has(3),u.clear(),ex},getProgramCacheKey:function(t){var n,i,r,a;let s=[];if(t.shaderID?s.push(t.shaderID):(s.push(t.customVertexShaderID),s.push(t.customFragmentShaderID)),void 0!==t.defines)for(let e in t.defines)s.push(e),s.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(n=s,i=t,n.push(i.precision),n.push(i.outputColorSpace),n.push(i.envMapMode),n.push(i.envMapCubeUVHeight),n.push(i.mapUv),n.push(i.alphaMapUv),n.push(i.lightMapUv),n.push(i.aoMapUv),n.push(i.bumpMapUv),n.push(i.normalMapUv),n.push(i.displacementMapUv),n.push(i.emissiveMapUv),n.push(i.metalnessMapUv),n.push(i.roughnessMapUv),n.push(i.anisotropyMapUv),n.push(i.clearcoatMapUv),n.push(i.clearcoatNormalMapUv),n.push(i.clearcoatRoughnessMapUv),n.push(i.iridescenceMapUv),n.push(i.iridescenceThicknessMapUv),n.push(i.sheenColorMapUv),n.push(i.sheenRoughnessMapUv),n.push(i.specularMapUv),n.push(i.specularColorMapUv),n.push(i.specularIntensityMapUv),n.push(i.transmissionMapUv),n.push(i.thicknessMapUv),n.push(i.combine),n.push(i.fogExp2),n.push(i.sizeAttenuation),n.push(i.morphTargetsCount),n.push(i.morphAttributeCount),n.push(i.numDirLights),n.push(i.numPointLights),n.push(i.numSpotLights),n.push(i.numSpotLightMaps),n.push(i.numHemiLights),n.push(i.numRectAreaLights),n.push(i.numDirLightShadows),n.push(i.numPointLightShadows),n.push(i.numSpotLightShadows),n.push(i.numSpotLightShadowsWithMaps),n.push(i.numLightProbes),n.push(i.shadowMapType),n.push(i.toneMapping),n.push(i.numClippingPlanes),n.push(i.numClipIntersection),n.push(i.depthPacking),r=s,a=t,o.disableAll(),a.supportsVertexTextures&&o.enable(0),a.instancing&&o.enable(1),a.instancingColor&&o.enable(2),a.instancingMorph&&o.enable(3),a.matcap&&o.enable(4),a.envMap&&o.enable(5),a.normalMapObjectSpace&&o.enable(6),a.normalMapTangentSpace&&o.enable(7),a.clearcoat&&o.enable(8),a.iridescence&&o.enable(9),a.alphaTest&&o.enable(10),a.vertexColors&&o.enable(11),a.vertexAlphas&&o.enable(12),a.vertexUv1s&&o.enable(13),a.vertexUv2s&&o.enable(14),a.vertexUv3s&&o.enable(15),a.vertexTangents&&o.enable(16),a.anisotropy&&o.enable(17),a.alphaHash&&o.enable(18),a.batching&&o.enable(19),a.dispersion&&o.enable(20),a.batchingColor&&o.enable(21),r.push(o.mask),o.disableAll(),a.fog&&o.enable(0),a.useFog&&o.enable(1),a.flatShading&&o.enable(2),a.logarithmicDepthBuffer&&o.enable(3),a.reverseDepthBuffer&&o.enable(4),a.skinning&&o.enable(5),a.morphTargets&&o.enable(6),a.morphNormals&&o.enable(7),a.morphColors&&o.enable(8),a.premultipliedAlpha&&o.enable(9),a.shadowMapEnabled&&o.enable(10),a.doubleSided&&o.enable(11),a.flipSided&&o.enable(12),a.useDepthPacking&&o.enable(13),a.dithering&&o.enable(14),a.transmission&&o.enable(15),a.sheen&&o.enable(16),a.opaque&&o.enable(17),a.pointsUvs&&o.enable(18),a.decodeVideoTexture&&o.enable(19),a.decodeVideoTextureEmissive&&o.enable(20),a.alphaToCoverage&&o.enable(21),r.push(o.mask),s.push(e.outputColorSpace)),s.push(t.customProgramCacheKey),s.join()},getUniforms:function(e){let t,n=f[e.type];if(n){let e=oH[n];t=nx.clone(e.uniforms)}else t=e.uniforms;return t},acquireProgram:function(t,n){let i;for(let e=0,t=c.length;e0?i.push(c):!0===s.transparent?r.push(c):n.push(c)},unshift:function(e,t,s,o,l,u){let c=a(e,t,s,o,l,u);s.transmission>0?i.unshift(c):!0===s.transparent?r.unshift(c):n.unshift(c)},finish:function(){for(let n=t,i=e.length;n1&&n.sort(e||uE),i.length>1&&i.sort(t||uA),r.length>1&&r.sort(t||uA)}}}function uR(){let e=new WeakMap;return{get:function(t,n){let i,r=e.get(t);return void 0===r?(i=new uC,e.set(t,[i])):n>=r.length?(i=new uC,r.push(i)):i=r[n],i},dispose:function(){e=new WeakMap}}}function uP(){let e={};return{get:function(t){let n;if(void 0!==e[t.id])return e[t.id];switch(t.type){case"DirectionalLight":n={direction:new eE,color:new tz};break;case"SpotLight":n={position:new eE,direction:new eE,color:new tz,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new eE,color:new tz,distance:0,decay:0};break;case"HemisphereLight":n={direction:new eE,skyColor:new tz,groundColor:new tz};break;case"RectAreaLight":n={color:new tz,position:new eE,halfWidth:new eE,halfHeight:new eE}}return e[t.id]=n,n}}}let uI=0;function uL(e,t){return 2*!!t.castShadow-2*!!e.castShadow+ +!!t.map-!!e.map}function uN(e){let t,n=new uP,i=(t={},{get:function(e){let n;if(void 0!==t[e.id])return t[e.id];switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let e=0;e<9;e++)r.probe.push(new eE);let a=new eE,s=new e2,o=new e2;return{setup:function(t){let a=0,s=0,o=0;for(let e=0;e<9;e++)r.probe[e].set(0,0,0);let l=0,u=0,c=0,h=0,d=0,p=0,f=0,m=0,g=0,v=0,_=0;t.sort(uL);for(let e=0,y=t.length;e0&&(!0===e.has("OES_texture_float_linear")?(r.rectAreaLTC1=ok.LTC_FLOAT_1,r.rectAreaLTC2=ok.LTC_FLOAT_2):(r.rectAreaLTC1=ok.LTC_HALF_1,r.rectAreaLTC2=ok.LTC_HALF_2)),r.ambient[0]=a,r.ambient[1]=s,r.ambient[2]=o;let y=r.hash;(y.directionalLength!==l||y.pointLength!==u||y.spotLength!==c||y.rectAreaLength!==h||y.hemiLength!==d||y.numDirectionalShadows!==p||y.numPointShadows!==f||y.numSpotShadows!==m||y.numSpotMaps!==g||y.numLightProbes!==_)&&(r.directional.length=l,r.spot.length=c,r.rectArea.length=h,r.point.length=u,r.hemi.length=d,r.directionalShadow.length=p,r.directionalShadowMap.length=p,r.pointShadow.length=f,r.pointShadowMap.length=f,r.spotShadow.length=m,r.spotShadowMap.length=m,r.directionalShadowMatrix.length=p,r.pointShadowMatrix.length=f,r.spotLightMatrix.length=m+g-v,r.spotLightMap.length=g,r.numSpotLightShadowsWithMaps=v,r.numLightProbes=_,y.directionalLength=l,y.pointLength=u,y.spotLength=c,y.rectAreaLength=h,y.hemiLength=d,y.numDirectionalShadows=p,y.numPointShadows=f,y.numSpotShadows=m,y.numSpotMaps=g,y.numLightProbes=_,r.version=uI++)},setupView:function(e,t){let n=0,i=0,l=0,u=0,c=0,h=t.matrixWorldInverse;for(let t=0,d=e.length;t=a.length?(r=new uU(e),a.push(r)):r=a[i],r},dispose:function(){t=new WeakMap}}}function uO(e,t,n){let i=new iS,r=new Y,a=new Y,s=new e_,o=new av({depthPacking:3201}),l=new a_,u={},c=n.maxTextureSize,h={0:1,1:0,2:2},d=new nb({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Y},radius:{value:4}},vertexShader:"void main() {\n gl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n const float samples = float( VSM_SAMPLES );\n float mean = 0.0;\n float squared_mean = 0.0;\n float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n float uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n for ( float i = 0.0; i < samples; i ++ ) {\n float uvOffset = uvStart + i * uvStride;\n #ifdef HORIZONTAL_PASS\n vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n mean += distribution.x;\n squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n #else\n float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n mean += depth;\n squared_mean += depth * depth;\n #endif\n }\n mean = mean / samples;\n squared_mean = squared_mean / samples;\n float std_dev = sqrt( squared_mean - mean * mean );\n gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),p=d.clone();p.defines.HORIZONTAL_PASS=1;let f=new nn;f.setAttribute("position",new tZ(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new nf(f,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1;let v=this.type;function _(t,n,i,r){let a=null,s=!0===i.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==s)a=s;else if(a=!0===i.isPointLight?l:o,e.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){let e=a.uuid,t=n.uuid,i=u[e];void 0===i&&(i={},u[e]=i);let r=i[t];void 0===r&&(r=a.clone(),i[t]=r,n.addEventListener("dispose",y)),a=r}return a.visible=n.visible,a.wireframe=n.wireframe,3===r?a.side=null!==n.shadowSide?n.shadowSide:n.side:a.side=null!==n.shadowSide?n.shadowSide:h[n.side],a.alphaMap=n.alphaMap,a.alphaTest=n.alphaTest,a.map=n.map,a.clipShadows=n.clipShadows,a.clippingPlanes=n.clippingPlanes,a.clipIntersection=n.clipIntersection,a.displacementMap=n.displacementMap,a.displacementScale=n.displacementScale,a.displacementBias=n.displacementBias,a.wireframeLinewidth=n.wireframeLinewidth,a.linewidth=n.linewidth,!0===i.isPointLight&&!0===a.isMeshDistanceMaterial&&(e.properties.get(a).light=i),a}function y(e){for(let t in e.target.removeEventListener("dispose",y),u){let n=u[t],i=e.target.uuid;i in n&&(n[i].dispose(),delete n[i])}}this.render=function(n,o,l){if(!1===g.enabled||!1===g.autoUpdate&&!1===g.needsUpdate||0===n.length)return;let u=e.getRenderTarget(),h=e.getActiveCubeFace(),f=e.getActiveMipmapLevel(),y=e.state;y.setBlending(0),y.buffers.color.setClear(1,1,1,1),y.buffers.depth.setTest(!0),y.setScissorTest(!1);let x=3!==v&&3===this.type,b=3===v&&3!==this.type;for(let u=0,h=n.length;uc||r.y>c)&&(r.x>c&&(a.x=Math.floor(c/g.x),r.x=a.x*g.x,f.mapSize.x=a.x),r.y>c&&(a.y=Math.floor(c/g.y),r.y=a.y*g.y,f.mapSize.y=a.y)),null===f.map||!0===x||!0===b){let e=3!==this.type?{minFilter:1003,magFilter:1003}:{};null!==f.map&&f.map.dispose(),f.map=new ex(r.x,r.y,e),f.map.texture.name=h.name+".shadowMap",f.camera.updateProjectionMatrix()}e.setRenderTarget(f.map),e.clear();let v=f.getViewportCount();for(let n=0;n=1:-1!==P.indexOf("OpenGL ES")&&(R=parseFloat(/^OpenGL ES (\d)/.exec(P)[1])>=2);let I=null,L={},N=e.getParameter(e.SCISSOR_BOX),U=e.getParameter(e.VIEWPORT),D=new e_().fromArray(N),O=new e_().fromArray(U);function F(t,n,i,r){let a=new Uint8Array(4),s=e.createTexture();e.bindTexture(t,s),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let s=0;stypeof navigator&&/OculusBrowser/g.test(navigator.userAgent),c=new Y,h=new WeakMap,d=new WeakMap,p=!1;try{p="u">typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(e){}function f(e,t){return p?new OffscreenCanvas(e,t):ee("canvas")}function m(e,t,n){let i=1,r=G(e);if((r.width>n||r.height>n)&&(i=n/Math.max(r.width,r.height)),i<1)if("u">typeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap||"u">typeof VideoFrame&&e instanceof VideoFrame){let n=Math.floor(i*r.width),a=Math.floor(i*r.height);void 0===o&&(o=f(n,a));let s=t?f(n,a):o;return s.width=n,s.height=a,s.getContext("2d").drawImage(e,0,0,n,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+r.width+"x"+r.height+") to ("+n+"x"+a+")."),s}else"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+r.width+"x"+r.height+").");return e}function g(e){return e.generateMipmaps}function v(t){e.generateMipmap(t)}function _(n,i,r,a,s=!1){if(null!==n){if(void 0!==e[n])return e[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let o=i;if(i===e.RED&&(r===e.FLOAT&&(o=e.R32F),r===e.HALF_FLOAT&&(o=e.R16F),r===e.UNSIGNED_BYTE&&(o=e.R8)),i===e.RED_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.R8UI),r===e.UNSIGNED_SHORT&&(o=e.R16UI),r===e.UNSIGNED_INT&&(o=e.R32UI),r===e.BYTE&&(o=e.R8I),r===e.SHORT&&(o=e.R16I),r===e.INT&&(o=e.R32I)),i===e.RG&&(r===e.FLOAT&&(o=e.RG32F),r===e.HALF_FLOAT&&(o=e.RG16F),r===e.UNSIGNED_BYTE&&(o=e.RG8)),i===e.RG_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RG8UI),r===e.UNSIGNED_SHORT&&(o=e.RG16UI),r===e.UNSIGNED_INT&&(o=e.RG32UI),r===e.BYTE&&(o=e.RG8I),r===e.SHORT&&(o=e.RG16I),r===e.INT&&(o=e.RG32I)),i===e.RGB_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RGB8UI),r===e.UNSIGNED_SHORT&&(o=e.RGB16UI),r===e.UNSIGNED_INT&&(o=e.RGB32UI),r===e.BYTE&&(o=e.RGB8I),r===e.SHORT&&(o=e.RGB16I),r===e.INT&&(o=e.RGB32I)),i===e.RGBA_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RGBA8UI),r===e.UNSIGNED_SHORT&&(o=e.RGBA16UI),r===e.UNSIGNED_INT&&(o=e.RGBA32UI),r===e.BYTE&&(o=e.RGBA8I),r===e.SHORT&&(o=e.RGBA16I),r===e.INT&&(o=e.RGBA32I)),i===e.RGB&&r===e.UNSIGNED_INT_5_9_9_9_REV&&(o=e.RGB9_E5),i===e.RGBA){let t=s?N:eu.getTransfer(a);r===e.FLOAT&&(o=e.RGBA32F),r===e.HALF_FLOAT&&(o=e.RGBA16F),r===e.UNSIGNED_BYTE&&(o=t===U?e.SRGB8_ALPHA8:e.RGBA8),r===e.UNSIGNED_SHORT_4_4_4_4&&(o=e.RGBA4),r===e.UNSIGNED_SHORT_5_5_5_1&&(o=e.RGB5_A1)}return(o===e.R16F||o===e.R32F||o===e.RG16F||o===e.RG32F||o===e.RGBA16F||o===e.RGBA32F)&&t.get("EXT_color_buffer_float"),o}function y(t,n){let i;return t?null===n||1014===n||1020===n?i=e.DEPTH24_STENCIL8:1015===n?i=e.DEPTH32F_STENCIL8:1012===n&&(i=e.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===n||1014===n||1020===n?i=e.DEPTH_COMPONENT24:1015===n?i=e.DEPTH_COMPONENT32F:1012===n&&(i=e.DEPTH_COMPONENT16),i}function x(e,t){return!0===g(e)||e.isFramebufferTexture&&1003!==e.minFilter&&1006!==e.minFilter?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function b(e){let t=e.target;t.removeEventListener("dispose",b),function(e){let t=i.get(e);if(void 0===t.__webglInit)return;let n=e.source,r=d.get(n);if(r){let i=r[t.__cacheKey];i.usedTimes--,0===i.usedTimes&&M(e),0===Object.keys(r).length&&d.delete(n)}i.remove(e)}(t),t.isVideoTexture&&h.delete(t)}function S(t){let n=t.target;n.removeEventListener("dispose",S),function(t){let n=i.get(t);if(t.depthTexture&&(t.depthTexture.dispose(),i.remove(t.depthTexture)),t.isWebGLCubeRenderTarget)for(let t=0;t<6;t++){if(Array.isArray(n.__webglFramebuffer[t]))for(let i=0;i0&&l.__version!==t.version){let e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void I(l,t,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(e.TEXTURE_2D,l.__webglTexture,e.TEXTURE0+r)}let E={1e3:e.REPEAT,1001:e.CLAMP_TO_EDGE,1002:e.MIRRORED_REPEAT},A={1003:e.NEAREST,1004:e.NEAREST_MIPMAP_NEAREST,1005:e.NEAREST_MIPMAP_LINEAR,1006:e.LINEAR,1007:e.LINEAR_MIPMAP_NEAREST,1008:e.LINEAR_MIPMAP_LINEAR},C={512:e.NEVER,519:e.ALWAYS,513:e.LESS,515:e.LEQUAL,514:e.EQUAL,518:e.GEQUAL,516:e.GREATER,517:e.NOTEQUAL};function R(n,a){if((1015===a.type&&!1===t.has("OES_texture_float_linear")&&(1006===a.magFilter||1007===a.magFilter||1005===a.magFilter||1008===a.magFilter||1006===a.minFilter||1007===a.minFilter||1005===a.minFilter||1008===a.minFilter)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),e.texParameteri(n,e.TEXTURE_WRAP_S,E[a.wrapS]),e.texParameteri(n,e.TEXTURE_WRAP_T,E[a.wrapT]),(n===e.TEXTURE_3D||n===e.TEXTURE_2D_ARRAY)&&e.texParameteri(n,e.TEXTURE_WRAP_R,E[a.wrapR]),e.texParameteri(n,e.TEXTURE_MAG_FILTER,A[a.magFilter]),e.texParameteri(n,e.TEXTURE_MIN_FILTER,A[a.minFilter]),a.compareFunction&&(e.texParameteri(n,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE),e.texParameteri(n,e.TEXTURE_COMPARE_FUNC,C[a.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic"))&&1003!==a.magFilter&&(1005===a.minFilter||1008===a.minFilter)&&(1015!==a.type||!1!==t.has("OES_texture_float_linear"))&&(a.anisotropy>1||i.get(a).__currentAnisotropy)){let s=t.get("EXT_texture_filter_anisotropic");e.texParameterf(n,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),i.get(a).__currentAnisotropy=a.anisotropy}}function P(t,n){let i,r=!1;void 0===t.__webglInit&&(t.__webglInit=!0,n.addEventListener("dispose",b));let a=n.source,o=d.get(a);void 0===o&&(o={},d.set(a,o));let l=((i=[]).push(n.wrapS),i.push(n.wrapT),i.push(n.wrapR||0),i.push(n.magFilter),i.push(n.minFilter),i.push(n.anisotropy),i.push(n.internalFormat),i.push(n.format),i.push(n.type),i.push(n.generateMipmaps),i.push(n.premultiplyAlpha),i.push(n.flipY),i.push(n.unpackAlignment),i.push(n.colorSpace),i.join());if(l!==t.__cacheKey){void 0===o[l]&&(o[l]={texture:e.createTexture(),usedTimes:0},s.memory.textures++,r=!0),o[l].usedTimes++;let i=o[t.__cacheKey];void 0!==i&&(o[t.__cacheKey].usedTimes--,0===i.usedTimes&&M(n)),t.__cacheKey=l,t.__webglTexture=o[l].texture}return r}function I(t,s,o){let l=e.TEXTURE_2D;(s.isDataArrayTexture||s.isCompressedArrayTexture)&&(l=e.TEXTURE_2D_ARRAY),s.isData3DTexture&&(l=e.TEXTURE_3D);let u=P(t,s),c=s.source;n.bindTexture(l,t.__webglTexture,e.TEXTURE0+o);let h=i.get(c);if(c.version!==h.__version||!0===u){let t;n.activeTexture(e.TEXTURE0+o);let i=eu.getPrimaries(eu.workingColorSpace),d=""===s.colorSpace?null:eu.getPrimaries(s.colorSpace),p=""===s.colorSpace||i===d?e.NONE:e.BROWSER_DEFAULT_WEBGL;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,s.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,s.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,p);let f=m(s.image,!1,r.maxTextureSize);f=V(s,f);let b=a.convert(s.format,s.colorSpace),S=a.convert(s.type),M=_(s.internalFormat,b,S,s.colorSpace,s.isVideoTexture);R(l,s);let T=s.mipmaps,w=!0!==s.isVideoTexture,E=void 0===h.__version||!0===u,A=c.dataReady,C=x(s,f);if(s.isDepthTexture)M=y(1027===s.format,s.type),E&&(w?n.texStorage2D(e.TEXTURE_2D,1,M,f.width,f.height):n.texImage2D(e.TEXTURE_2D,0,M,f.width,f.height,0,b,S,null));else if(s.isDataTexture)if(T.length>0){w&&E&&n.texStorage2D(e.TEXTURE_2D,C,M,T[0].width,T[0].height);for(let i=0,r=T.length;i0){let r=oU(t.width,t.height,s.format,s.type);for(let a of s.layerUpdates){let s=t.data.subarray(a*r/t.data.BYTES_PER_ELEMENT,(a+1)*r/t.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,a,t.width,t.height,1,b,s)}s.clearLayerUpdates()}else n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,0,t.width,t.height,f.depth,b,t.data)}else n.compressedTexImage3D(e.TEXTURE_2D_ARRAY,i,M,t.width,t.height,f.depth,0,t.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else w?A&&n.texSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,0,t.width,t.height,f.depth,b,S,t.data):n.texImage3D(e.TEXTURE_2D_ARRAY,i,M,t.width,t.height,f.depth,0,b,S,t.data)}else{w&&E&&n.texStorage2D(e.TEXTURE_2D,C,M,T[0].width,T[0].height);for(let i=0,r=T.length;i0){let t=oU(f.width,f.height,s.format,s.type);for(let i of s.layerUpdates){let r=f.data.subarray(i*t/f.data.BYTES_PER_ELEMENT,(i+1)*t/f.data.BYTES_PER_ELEMENT);n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,i,f.width,f.height,1,b,S,r)}s.clearLayerUpdates()}else n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,0,f.width,f.height,f.depth,b,S,f.data)}else n.texImage3D(e.TEXTURE_2D_ARRAY,0,M,f.width,f.height,f.depth,0,b,S,f.data);else if(s.isData3DTexture)w?(E&&n.texStorage3D(e.TEXTURE_3D,C,M,f.width,f.height,f.depth),A&&n.texSubImage3D(e.TEXTURE_3D,0,0,0,0,f.width,f.height,f.depth,b,S,f.data)):n.texImage3D(e.TEXTURE_3D,0,M,f.width,f.height,f.depth,0,b,S,f.data);else if(s.isFramebufferTexture){if(E)if(w)n.texStorage2D(e.TEXTURE_2D,C,M,f.width,f.height);else{let t=f.width,i=f.height;for(let r=0;r>=1,i>>=1}}else if(T.length>0){if(w&&E){let t=G(T[0]);n.texStorage2D(e.TEXTURE_2D,C,M,t.width,t.height)}for(let i=0,r=T.length;i>c),i=Math.max(1,r.height>>c);u===e.TEXTURE_3D||u===e.TEXTURE_2D_ARRAY?n.texImage3D(u,c,p,t,i,r.depth,0,h,d,null):n.texImage2D(u,c,p,t,i,0,h,d,null)}n.bindFramebuffer(e.FRAMEBUFFER,t),H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,o,u,m.__webglTexture,0,k(r)):(u===e.TEXTURE_2D||u>=e.TEXTURE_CUBE_MAP_POSITIVE_X&&u<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,u,m.__webglTexture,c),n.bindFramebuffer(e.FRAMEBUFFER,null)}function O(t,n,i){if(e.bindRenderbuffer(e.RENDERBUFFER,t),n.depthBuffer){let r=n.depthTexture,a=r&&r.isDepthTexture?r.type:null,s=y(n.stencilBuffer,a),o=n.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,u=k(n);H(n)?l.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,u,s,n.width,n.height):i?e.renderbufferStorageMultisample(e.RENDERBUFFER,u,s,n.width,n.height):e.renderbufferStorage(e.RENDERBUFFER,s,n.width,n.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,o,e.RENDERBUFFER,t)}else{let t=n.textures;for(let r=0;r{delete r.__boundDepthTexture,delete r.__depthDisposeCallback,e.removeEventListener("dispose",t)};e.addEventListener("dispose",t),r.__depthDisposeCallback=t}r.__boundDepthTexture=e}if(t.depthTexture&&!r.__autoAllocateDepthBuffer){if(a)throw Error("target.depthTexture not supported in Cube render targets");!function(t,r){if(r&&r.isWebGLCubeRenderTarget)throw Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(e.FRAMEBUFFER,t),!(r.depthTexture&&r.depthTexture.isDepthTexture))throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");let a=i.get(r.depthTexture);a.__renderTarget=r,a.__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),w(r.depthTexture,0);let s=a.__webglTexture,o=k(r);if(1026===r.depthTexture.format)H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,s,0,o):e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,s,0);else if(1027===r.depthTexture.format)H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,s,0,o):e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,s,0);else throw Error("Unknown depthTexture format")}(r.__webglFramebuffer,t)}else if(a){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)if(n.bindFramebuffer(e.FRAMEBUFFER,r.__webglFramebuffer[i]),void 0===r.__webglDepthbuffer[i])r.__webglDepthbuffer[i]=e.createRenderbuffer(),O(r.__webglDepthbuffer[i],t,!1);else{let n=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,a=r.__webglDepthbuffer[i];e.bindRenderbuffer(e.RENDERBUFFER,a),e.framebufferRenderbuffer(e.FRAMEBUFFER,n,e.RENDERBUFFER,a)}}else if(n.bindFramebuffer(e.FRAMEBUFFER,r.__webglFramebuffer),void 0===r.__webglDepthbuffer)r.__webglDepthbuffer=e.createRenderbuffer(),O(r.__webglDepthbuffer,t,!1);else{let n=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,i=r.__webglDepthbuffer;e.bindRenderbuffer(e.RENDERBUFFER,i),e.framebufferRenderbuffer(e.FRAMEBUFFER,n,e.RENDERBUFFER,i)}n.bindFramebuffer(e.FRAMEBUFFER,null)}let z=[],B=[];function k(e){return Math.min(r.maxSamples,e.samples)}function H(e){let n=i.get(e);return e.samples>0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function V(e,t){let n=e.colorSpace,i=e.format,r=e.type;return!0===e.isCompressedTexture||!0===e.isVideoTexture||n!==L&&""!==n&&(eu.getTransfer(n)===U?(1023!==i||1009!==r)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),t}function G(e){return"u">typeof HTMLImageElement&&e instanceof HTMLImageElement?(c.width=e.naturalWidth||e.width,c.height=e.naturalHeight||e.height):"u">typeof VideoFrame&&e instanceof VideoFrame?(c.width=e.displayWidth,c.height=e.displayHeight):(c.width=e.width,c.height=e.height),c}this.allocateTextureUnit=function(){let e=T;return e>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+r.maxTextures),T+=1,e},this.resetTextureUnits=function(){T=0},this.setTexture2D=w,this.setTexture2DArray=function(t,r){let a=i.get(t);t.version>0&&a.__version!==t.version?I(a,t,r):n.bindTexture(e.TEXTURE_2D_ARRAY,a.__webglTexture,e.TEXTURE0+r)},this.setTexture3D=function(t,r){let a=i.get(t);t.version>0&&a.__version!==t.version?I(a,t,r):n.bindTexture(e.TEXTURE_3D,a.__webglTexture,e.TEXTURE0+r)},this.setTextureCube=function(t,s){let o=i.get(t);t.version>0&&o.__version!==t.version?function(t,s,o){if(6!==s.image.length)return;let l=P(t,s),u=s.source;n.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+o);let c=i.get(u);if(u.version!==c.__version||!0===l){let t;n.activeTexture(e.TEXTURE0+o);let i=eu.getPrimaries(eu.workingColorSpace),h=""===s.colorSpace?null:eu.getPrimaries(s.colorSpace),d=""===s.colorSpace||i===h?e.NONE:e.BROWSER_DEFAULT_WEBGL;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,s.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,s.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);let p=s.isCompressedTexture||s.image[0].isCompressedTexture,f=s.image[0]&&s.image[0].isDataTexture,y=[];for(let e=0;e<6;e++)p||f?y[e]=f?s.image[e].image:s.image[e]:y[e]=m(s.image[e],!0,r.maxCubemapSize),y[e]=V(s,y[e]);let b=y[0],S=a.convert(s.format,s.colorSpace),M=a.convert(s.type),T=_(s.internalFormat,S,M,s.colorSpace),w=!0!==s.isVideoTexture,E=void 0===c.__version||!0===l,A=u.dataReady,C=x(s,b);if(R(e.TEXTURE_CUBE_MAP,s),p){w&&E&&n.texStorage2D(e.TEXTURE_CUBE_MAP,C,T,b.width,b.height);for(let i=0;i<6;i++){t=y[i].mipmaps;for(let r=0;r0&&C++;let i=G(y[0]);n.texStorage2D(e.TEXTURE_CUBE_MAP,C,T,i.width,i.height)}for(let i=0;i<6;i++)if(f){w?A&&n.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,0,0,y[i].width,y[i].height,S,M,y[i].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,T,y[i].width,y[i].height,0,S,M,y[i].data);for(let r=0;r1;if(!h&&(void 0===l.__webglTexture&&(l.__webglTexture=e.createTexture()),l.__version=r.version,s.memory.textures++),c){o.__webglFramebuffer=[];for(let t=0;t<6;t++)if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer[t]=[];for(let n=0;n0){o.__webglFramebuffer=[];for(let t=0;t0&&!1===H(t)){o.__webglMultisampledFramebuffer=e.createFramebuffer(),o.__webglColorRenderbuffer=[],n.bindFramebuffer(e.FRAMEBUFFER,o.__webglMultisampledFramebuffer);for(let n=0;n0)for(let i=0;i0)for(let n=0;n0){if(!1===H(t)){let r=t.textures,a=t.width,s=t.height,o=e.COLOR_BUFFER_BIT,l=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,c=i.get(t),h=r.length>1;if(h)for(let t=0;t.025?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&s<=.015&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&null!==(r=t.getPose(e.gripSpace,n))&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1);null!==s&&(null===(i=t.getPose(e.targetRaySpace,n))&&null!==r&&(i=r),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(uH)))}return null!==s&&(s.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==a),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){let n=new i6;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}}let uG=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,uW=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class uj{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,n){if(null===this.texture){let i=new ev;e.properties.get(i).__webglTexture=t.texture,(t.depthNear!=n.depthNear||t.depthFar!=n.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=i}}getMesh(e){if(null!==this.texture&&null===this.mesh){let t=e.cameras[0].viewport,n=new nb({vertexShader:uG,fragmentShader:uW,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new nf(new r9(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class uX extends O{constructor(e,t){super();const n=this;let i=null,r=1,a=null,s="local-floor",o=1,l=null,u=null,c=null,h=null,d=null,p=null;const f=new uj,m=t.getContextAttributes();let g=null,v=null;const _=[],y=[],x=new Y;let b=null;const S=new nE;S.viewport=new e_;const M=new nE;M.viewport=new e_;const T=[S,M],w=new sT;let E=null,A=null;function C(e){let t=y.indexOf(e.inputSource);if(-1===t)return;let n=_[t];void 0!==n&&(n.update(e.inputSource,e.frame,l||a),n.dispatchEvent({type:e.type,data:e.inputSource}))}function R(){i.removeEventListener("select",C),i.removeEventListener("selectstart",C),i.removeEventListener("selectend",C),i.removeEventListener("squeeze",C),i.removeEventListener("squeezestart",C),i.removeEventListener("squeezeend",C),i.removeEventListener("end",R),i.removeEventListener("inputsourceschange",P);for(let e=0;e<_.length;e++){let t=y[e];null!==t&&(y[e]=null,_[e].disconnect(t))}E=null,A=null,f.reset(),e.setRenderTarget(g),d=null,h=null,c=null,i=null,v=null,D.stop(),n.isPresenting=!1,e.setPixelRatio(b),e.setSize(x.width,x.height,!1),n.dispatchEvent({type:"sessionend"})}function P(e){for(let t=0;t=0&&(y[i]=null,_[i].disconnect(n))}for(let t=0;t=y.length){y.push(n),i=e;break}else if(null===y[e]){y[e]=n,i=e;break}if(-1===i)break}let r=_[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getGripSpace()},this.getHand=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){r=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){s=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||a},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==h?h:d},this.getBinding=function(){return c},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(u){if(null!==(i=u)){if(g=e.getRenderTarget(),i.addEventListener("select",C),i.addEventListener("selectstart",C),i.addEventListener("selectend",C),i.addEventListener("squeeze",C),i.addEventListener("squeezestart",C),i.addEventListener("squeezeend",C),i.addEventListener("end",R),i.addEventListener("inputsourceschange",P),!0!==m.xrCompatible&&await t.makeXRCompatible(),b=e.getPixelRatio(),e.getSize(x),void 0===i.renderState.layers){let n={antialias:m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,t,n),i.updateRenderState({baseLayer:d}),e.setPixelRatio(1),e.setSize(d.framebufferWidth,d.framebufferHeight,!1),v=new ex(d.framebufferWidth,d.framebufferHeight,{format:1023,type:1009,colorSpace:e.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,a=null,s=null;m.depth&&(s=m.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,n=m.stencil?1027:1026,a=m.stencil?1020:1014);let o={colorFormat:t.RGBA8,depthFormat:s,scaleFactor:r};h=(c=new XRWebGLBinding(i,t)).createProjectionLayer(o),i.updateRenderState({layers:[h]}),e.setPixelRatio(1),e.setSize(h.textureWidth,h.textureHeight,!1),v=new ex(h.textureWidth,h.textureHeight,{format:1023,type:1009,depthTexture:new ri(h.textureWidth,h.textureHeight,a,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:e.outputColorSpace,samples:4*!!m.antialias,resolveDepthBuffer:!1===h.ignoreDepthValues})}v.isXRRenderTarget=!0,this.setFoveation(o),l=null,a=await i.requestReferenceSpace(s),D.setContext(i),D.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode},this.getDepthTexture=function(){return f.getDepthTexture()};const I=new eE,L=new eE;function N(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){var t,n,r;if(null===i)return;let a=e.near,s=e.far;null!==f.texture&&(f.depthNear>0&&(a=f.depthNear),f.depthFar>0&&(s=f.depthFar)),w.near=M.near=S.near=a,w.far=M.far=S.far=s,(E!==w.near||A!==w.far)&&(i.updateRenderState({depthNear:w.near,depthFar:w.far}),E=w.near,A=w.far),S.layers.mask=2|e.layers.mask,M.layers.mask=4|e.layers.mask,w.layers.mask=S.layers.mask|M.layers.mask;let o=e.parent,l=w.cameras;N(w,o);for(let e=0;e0&&(e.alphaTest.value=i.alphaTest);let r=t.get(i),a=r.envMap,s=r.envMapRotation;a&&(e.envMap.value=a,uq.copy(s),uq.x*=-1,uq.y*=-1,uq.z*=-1,a.isCubeTexture&&!1===a.isRenderTargetTexture&&(uq.y*=-1,uq.z*=-1),e.envMapRotation.value.setFromMatrix4(uY.makeRotationFromEuler(uq)),e.flipEnvMap.value=a.isCubeTexture&&!1===a.isRenderTargetTexture?-1:1,e.reflectivity.value=i.reflectivity,e.ior.value=i.ior,e.refractionRatio.value=i.refractionRatio),i.lightMap&&(e.lightMap.value=i.lightMap,e.lightMapIntensity.value=i.lightMapIntensity,n(i.lightMap,e.lightMapTransform)),i.aoMap&&(e.aoMap.value=i.aoMap,e.aoMapIntensity.value=i.aoMapIntensity,n(i.aoMap,e.aoMapTransform))}return{refreshFogUniforms:function(t,n){n.color.getRGB(t.fogColor.value,ny(e)),n.isFog?(t.fogNear.value=n.near,t.fogFar.value=n.far):n.isFogExp2&&(t.fogDensity.value=n.density)},refreshMaterialUniforms:function(e,r,a,s,o){var l,u,c,h,d,p,f,m,g,v,_,y,x,b,S,M,T,w,E,A,C,R,P;let I;r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(e,r):r.isMeshToonMaterial?(i(e,r),l=e,(u=r).gradientMap&&(l.gradientMap.value=u.gradientMap)):r.isMeshPhongMaterial?(i(e,r),c=e,h=r,c.specular.value.copy(h.specular),c.shininess.value=Math.max(h.shininess,1e-4)):r.isMeshStandardMaterial?(i(e,r),d=e,p=r,d.metalness.value=p.metalness,p.metalnessMap&&(d.metalnessMap.value=p.metalnessMap,n(p.metalnessMap,d.metalnessMapTransform)),d.roughness.value=p.roughness,p.roughnessMap&&(d.roughnessMap.value=p.roughnessMap,n(p.roughnessMap,d.roughnessMapTransform)),p.envMap&&(d.envMapIntensity.value=p.envMapIntensity),r.isMeshPhysicalMaterial&&(f=e,m=r,g=o,f.ior.value=m.ior,m.sheen>0&&(f.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),f.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(f.sheenColorMap.value=m.sheenColorMap,n(m.sheenColorMap,f.sheenColorMapTransform)),m.sheenRoughnessMap&&(f.sheenRoughnessMap.value=m.sheenRoughnessMap,n(m.sheenRoughnessMap,f.sheenRoughnessMapTransform))),m.clearcoat>0&&(f.clearcoat.value=m.clearcoat,f.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(f.clearcoatMap.value=m.clearcoatMap,n(m.clearcoatMap,f.clearcoatMapTransform)),m.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap,n(m.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),m.clearcoatNormalMap&&(f.clearcoatNormalMap.value=m.clearcoatNormalMap,n(m.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),1===m.side&&f.clearcoatNormalScale.value.negate())),m.dispersion>0&&(f.dispersion.value=m.dispersion),m.iridescence>0&&(f.iridescence.value=m.iridescence,f.iridescenceIOR.value=m.iridescenceIOR,f.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(f.iridescenceMap.value=m.iridescenceMap,n(m.iridescenceMap,f.iridescenceMapTransform)),m.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=m.iridescenceThicknessMap,n(m.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),m.transmission>0&&(f.transmission.value=m.transmission,f.transmissionSamplerMap.value=g.texture,f.transmissionSamplerSize.value.set(g.width,g.height),m.transmissionMap&&(f.transmissionMap.value=m.transmissionMap,n(m.transmissionMap,f.transmissionMapTransform)),f.thickness.value=m.thickness,m.thicknessMap&&(f.thicknessMap.value=m.thicknessMap,n(m.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=m.attenuationDistance,f.attenuationColor.value.copy(m.attenuationColor)),m.anisotropy>0&&(f.anisotropyVector.value.set(m.anisotropy*Math.cos(m.anisotropyRotation),m.anisotropy*Math.sin(m.anisotropyRotation)),m.anisotropyMap&&(f.anisotropyMap.value=m.anisotropyMap,n(m.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=m.specularIntensity,f.specularColor.value.copy(m.specularColor),m.specularColorMap&&(f.specularColorMap.value=m.specularColorMap,n(m.specularColorMap,f.specularColorMapTransform)),m.specularIntensityMap&&(f.specularIntensityMap.value=m.specularIntensityMap,n(m.specularIntensityMap,f.specularIntensityMapTransform)))):r.isMeshMatcapMaterial?(i(e,r),v=e,(_=r).matcap&&(v.matcap.value=_.matcap)):r.isMeshDepthMaterial?i(e,r):r.isMeshDistanceMaterial?(i(e,r),y=e,x=r,I=t.get(x).light,y.referencePosition.value.setFromMatrixPosition(I.matrixWorld),y.nearDistance.value=I.shadow.camera.near,y.farDistance.value=I.shadow.camera.far):r.isMeshNormalMaterial?i(e,r):r.isLineBasicMaterial?(b=e,S=r,b.diffuse.value.copy(S.color),b.opacity.value=S.opacity,S.map&&(b.map.value=S.map,n(S.map,b.mapTransform)),r.isLineDashedMaterial&&(M=e,T=r,M.dashSize.value=T.dashSize,M.totalSize.value=T.dashSize+T.gapSize,M.scale.value=T.scale)):r.isPointsMaterial?(w=e,E=r,A=a,C=s,w.diffuse.value.copy(E.color),w.opacity.value=E.opacity,w.size.value=E.size*A,w.scale.value=.5*C,E.map&&(w.map.value=E.map,n(E.map,w.uvTransform)),E.alphaMap&&(w.alphaMap.value=E.alphaMap,n(E.alphaMap,w.alphaMapTransform)),E.alphaTest>0&&(w.alphaTest.value=E.alphaTest)):r.isSpriteMaterial?(R=e,P=r,R.diffuse.value.copy(P.color),R.opacity.value=P.opacity,R.rotation.value=P.rotation,P.map&&(R.map.value=P.map,n(P.map,R.mapTransform)),P.alphaMap&&(R.alphaMap.value=P.alphaMap,n(P.alphaMap,R.alphaMapTransform)),P.alphaTest>0&&(R.alphaTest.value=P.alphaTest)):r.isShadowMaterial?(e.color.value.copy(r.color),e.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function uJ(e,t,n,i){let r={},a={},s=[],o=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS);function l(e){let t={boundary:0,storage:0};return"number"==typeof e||"boolean"==typeof e?(t.boundary=4,t.storage=4):e.isVector2?(t.boundary=8,t.storage=8):e.isVector3||e.isColor?(t.boundary=16,t.storage=12):e.isVector4?(t.boundary=16,t.storage=16):e.isMatrix3?(t.boundary=48,t.storage=48):e.isMatrix4?(t.boundary=64,t.storage=64):e.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",e),t}function u(t){let n=t.target;n.removeEventListener("dispose",u);let i=s.indexOf(n.__bindingPointIndex);s.splice(i,1),e.deleteBuffer(r[n.id]),delete r[n.id],delete a[n.id]}return{bind:function(e,t){let n=t.program;i.uniformBlockBinding(e,n)},update:function(n,c){var h;let d,p,f,m,g=r[n.id];void 0===g&&(function(e){let t=e.uniforms,n=0;for(let e=0,i=t.length;e0&&(n+=16-i),e.__size=n,e.__cache={}}(n),(h=n).__bindingPointIndex=d=function(){for(let e=0;etypeof WebGLRenderingContext&&A instanceof WebGLRenderingContext)throw Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");t=A.getContextAttributes().alpha}else t=P;const B=new Uint32Array(4),k=new Int32Array(4);let H=null,V=null;const G=[],W=[];this.domElement=E,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=I,this.toneMapping=0,this.toneMappingExposure=1;const j=this;let X=!1,q=0,Y=0,Z=null,J=-1,K=null;const $=new e_,Q=new e_;let ee=null;const en=new tz(0);let eo=0,el=E.width,ec=E.height,eh=1,ed=null,ep=null;const ef=new e_(0,0,el,ec),em=new e_(0,0,el,ec);let eg=!1;const ev=new iS;let ey=!1,eb=!1;const eS=new e2,eM=new e2,eT=new eE,ew=new e_,eA={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let eC=!1;function eR(){return null===Z?eh:1}let eP=A;function eI(e,t){return E.getContext(e,t)}try{if("setAttribute"in E&&E.setAttribute("data-engine","three.js r171"),E.addEventListener("webglcontextlost",eU,!1),E.addEventListener("webglcontextrestored",eD,!1),E.addEventListener("webglcontextcreationerror",eO,!1),null===eP){const e="webgl2";if(eP=eI(e,{alpha:!0,depth:C,stencil:R,antialias:N,premultipliedAlpha:U,preserveDrawingBuffer:D,powerPreference:O,failIfMajorPerformanceCaveat:F}),null===eP)if(eI(e))throw Error("Error creating WebGL context with your selected attributes.");else throw Error("Error creating WebGL context.")}}catch(e){throw console.error("THREE.WebGLRenderer: "+e.message),e}function eL(){(n=new lr(eP)).init(),M=new uk(eP,n),i=new oY(eP,n,e,M),r=new uz(eP,n),i.reverseDepthBuffer&&z&&r.buffers.depth.setReversed(!0),a=new lo(eP),s=new uw,o=new uB(eP,n,r,s,i,M,a),l=new oJ(j),u=new li(j),c=new oz(eP),T=new oX(eP,c),h=new la(eP,c,a,T),d=new lu(eP,h,c,a),x=new ll(eP,i,o),v=new oZ(s),p=new uT(j,l,u,n,i,T,v),f=new uZ(j,s),m=new uR,g=new uD(n),y=new oj(j,l,u,r,d,t,U),_=new uO(j,d,i),w=new uJ(eP,a,i,r),b=new oq(eP,n,a),S=new ls(eP,n,a),a.programs=p.programs,j.capabilities=i,j.extensions=n,j.properties=s,j.renderLists=m,j.shadowMap=_,j.state=r,j.info=a}eL();const eN=new uX(j,eP);function eU(e){e.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),X=!0}function eD(){console.log("THREE.WebGLRenderer: Context Restored."),X=!1;let e=a.autoReset,t=_.enabled,n=_.autoUpdate,i=_.needsUpdate,r=_.type;eL(),a.autoReset=e,_.enabled=t,_.autoUpdate=n,_.needsUpdate=i,_.type=r}function eO(e){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",e.statusMessage)}function eF(e){var t,n;let i,r=e.target;r.removeEventListener("dispose",eF),n=t=r,void 0!==(i=s.get(n).programs)&&(i.forEach(function(e){p.releaseProgram(e)}),n.isShaderMaterial&&p.releaseShaderCache(n)),s.remove(t)}function ez(e,t,n){!0===e.transparent&&2===e.side&&!1===e.forceSinglePass?(e.side=1,e.needsUpdate=!0,eY(e,t,n),e.side=0,e.needsUpdate=!0,eY(e,t,n),e.side=2):eY(e,t,n)}this.xr=eN,this.getContext=function(){return eP},this.getContextAttributes=function(){return eP.getContextAttributes()},this.forceContextLoss=function(){let e=n.get("WEBGL_lose_context");e&&e.loseContext()},this.forceContextRestore=function(){let e=n.get("WEBGL_lose_context");e&&e.restoreContext()},this.getPixelRatio=function(){return eh},this.setPixelRatio=function(e){void 0!==e&&(eh=e,this.setSize(el,ec,!1))},this.getSize=function(e){return e.set(el,ec)},this.setSize=function(e,t,n=!0){eN.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(el=e,ec=t,E.width=Math.floor(e*eh),E.height=Math.floor(t*eh),!0===n&&(E.style.width=e+"px",E.style.height=t+"px"),this.setViewport(0,0,e,t))},this.getDrawingBufferSize=function(e){return e.set(el*eh,ec*eh).floor()},this.setDrawingBufferSize=function(e,t,n){el=e,ec=t,eh=n,E.width=Math.floor(e*n),E.height=Math.floor(t*n),this.setViewport(0,0,e,t)},this.getCurrentViewport=function(e){return e.copy($)},this.getViewport=function(e){return e.copy(ef)},this.setViewport=function(e,t,n,i){e.isVector4?ef.set(e.x,e.y,e.z,e.w):ef.set(e,t,n,i),r.viewport($.copy(ef).multiplyScalar(eh).round())},this.getScissor=function(e){return e.copy(em)},this.setScissor=function(e,t,n,i){e.isVector4?em.set(e.x,e.y,e.z,e.w):em.set(e,t,n,i),r.scissor(Q.copy(em).multiplyScalar(eh).round())},this.getScissorTest=function(){return eg},this.setScissorTest=function(e){r.setScissorTest(eg=e)},this.setOpaqueSort=function(e){ed=e},this.setTransparentSort=function(e){ep=e},this.getClearColor=function(e){return e.copy(y.getClearColor())},this.setClearColor=function(){y.setClearColor.apply(y,arguments)},this.getClearAlpha=function(){return y.getClearAlpha()},this.setClearAlpha=function(){y.setClearAlpha.apply(y,arguments)},this.clear=function(e=!0,t=!0,n=!0){let i=0;if(e){let e=!1;if(null!==Z){let t=Z.texture.format;e=1033===t||1031===t||1029===t}if(e){let e=Z.texture.type,t=1009===e||1014===e||1012===e||1020===e||1017===e||1018===e,n=y.getClearColor(),i=y.getClearAlpha(),r=n.r,a=n.g,s=n.b;t?(B[0]=r,B[1]=a,B[2]=s,B[3]=i,eP.clearBufferuiv(eP.COLOR,0,B)):(k[0]=r,k[1]=a,k[2]=s,k[3]=i,eP.clearBufferiv(eP.COLOR,0,k))}else i|=eP.COLOR_BUFFER_BIT}t&&(i|=eP.DEPTH_BUFFER_BIT),n&&(i|=eP.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(0xffffffff)),eP.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){E.removeEventListener("webglcontextlost",eU,!1),E.removeEventListener("webglcontextrestored",eD,!1),E.removeEventListener("webglcontextcreationerror",eO,!1),y.dispose(),m.dispose(),g.dispose(),s.dispose(),l.dispose(),u.dispose(),d.dispose(),T.dispose(),w.dispose(),p.dispose(),eN.dispose(),eN.removeEventListener("sessionstart",ek),eN.removeEventListener("sessionend",eH),eV.stop()},this.renderBufferDirect=function(e,t,a,d,p,m){let g;null===t&&(t=eA);let _=p.isMesh&&0>p.matrixWorld.determinant(),y=function(e,t,n,a,c){var h,d;!0!==t.isScene&&(t=eA),o.resetTextureUnits();let p=t.fog,m=a.isMeshStandardMaterial?t.environment:null,g=null===Z?j.outputColorSpace:!0===Z.isXRRenderTarget?Z.texture.colorSpace:L,_=(a.isMeshStandardMaterial?u:l).get(a.envMap||m),y=!0===a.vertexColors&&!!n.attributes.color&&4===n.attributes.color.itemSize,b=!!n.attributes.tangent&&(!!a.normalMap||a.anisotropy>0),S=!!n.morphAttributes.position,M=!!n.morphAttributes.normal,T=!!n.morphAttributes.color,E=0;a.toneMapped&&(null===Z||!0===Z.isXRRenderTarget)&&(E=j.toneMapping);let A=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,C=void 0!==A?A.length:0,R=s.get(a),P=V.state.lights;if(!0===ey&&(!0===eb||e!==K)){let t=e===K&&a.id===J;v.setState(a,e,t)}let I=!1;a.version===R.__version?R.needsLights&&R.lightsStateVersion!==P.state.version||R.outputColorSpace!==g||c.isBatchedMesh&&!1===R.batching?I=!0:c.isBatchedMesh||!0!==R.batching?c.isBatchedMesh&&!0===R.batchingColor&&null===c.colorTexture||c.isBatchedMesh&&!1===R.batchingColor&&null!==c.colorTexture||c.isInstancedMesh&&!1===R.instancing?I=!0:c.isInstancedMesh||!0!==R.instancing?c.isSkinnedMesh&&!1===R.skinning?I=!0:c.isSkinnedMesh||!0!==R.skinning?c.isInstancedMesh&&!0===R.instancingColor&&null===c.instanceColor||c.isInstancedMesh&&!1===R.instancingColor&&null!==c.instanceColor||c.isInstancedMesh&&!0===R.instancingMorph&&null===c.morphTexture||c.isInstancedMesh&&!1===R.instancingMorph&&null!==c.morphTexture||R.envMap!==_||!0===a.fog&&R.fog!==p||void 0!==R.numClippingPlanes&&(R.numClippingPlanes!==v.numPlanes||R.numIntersection!==v.numIntersection)||R.vertexAlphas!==y||R.vertexTangents!==b||R.morphTargets!==S||R.morphNormals!==M||R.morphColors!==T||R.toneMapping!==E?I=!0:R.morphTargetsCount!==C&&(I=!0):I=!0:I=!0:I=!0:(I=!0,R.__version=a.version);let N=R.currentProgram;!0===I&&(N=eY(a,t,c));let U=!1,D=!1,O=!1,F=N.getUniforms(),z=R.uniforms;if(r.useProgram(N.program)&&(U=!0,D=!0,O=!0),a.id!==J&&(J=a.id,D=!0),U||K!==e){r.buffers.depth.getReversed()?(eS.copy(e.projectionMatrix),ea(eS),es(eS),F.setValue(eP,"projectionMatrix",eS)):F.setValue(eP,"projectionMatrix",e.projectionMatrix),F.setValue(eP,"viewMatrix",e.matrixWorldInverse);let t=F.map.cameraPosition;void 0!==t&&t.setValue(eP,eT.setFromMatrixPosition(e.matrixWorld)),i.logarithmicDepthBuffer&&F.setValue(eP,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),(a.isMeshPhongMaterial||a.isMeshToonMaterial||a.isMeshLambertMaterial||a.isMeshBasicMaterial||a.isMeshStandardMaterial||a.isShaderMaterial)&&F.setValue(eP,"isOrthographic",!0===e.isOrthographicCamera),K!==e&&(K=e,D=!0,O=!0)}if(c.isSkinnedMesh){F.setOptional(eP,c,"bindMatrix"),F.setOptional(eP,c,"bindMatrixInverse");let e=c.skeleton;e&&(null===e.boneTexture&&e.computeBoneTexture(),F.setValue(eP,"boneTexture",e.boneTexture,o))}c.isBatchedMesh&&(F.setOptional(eP,c,"batchingTexture"),F.setValue(eP,"batchingTexture",c._matricesTexture,o),F.setOptional(eP,c,"batchingIdTexture"),F.setValue(eP,"batchingIdTexture",c._indirectTexture,o),F.setOptional(eP,c,"batchingColorTexture"),null!==c._colorsTexture&&F.setValue(eP,"batchingColorTexture",c._colorsTexture,o));let B=n.morphAttributes;if((void 0!==B.position||void 0!==B.normal||void 0!==B.color)&&x.update(c,n,N),(D||R.receiveShadow!==c.receiveShadow)&&(R.receiveShadow=c.receiveShadow,F.setValue(eP,"receiveShadow",c.receiveShadow)),a.isMeshGouraudMaterial&&null!==a.envMap&&(z.envMap.value=_,z.flipEnvMap.value=_.isCubeTexture&&!1===_.isRenderTargetTexture?-1:1),a.isMeshStandardMaterial&&null===a.envMap&&null!==t.environment&&(z.envMapIntensity.value=t.environmentIntensity),D&&(F.setValue(eP,"toneMappingExposure",j.toneMappingExposure),R.needsLights&&(h=z,d=O,h.ambientLightColor.needsUpdate=d,h.lightProbe.needsUpdate=d,h.directionalLights.needsUpdate=d,h.directionalLightShadows.needsUpdate=d,h.pointLights.needsUpdate=d,h.pointLightShadows.needsUpdate=d,h.spotLights.needsUpdate=d,h.spotLightShadows.needsUpdate=d,h.rectAreaLights.needsUpdate=d,h.hemisphereLights.needsUpdate=d),p&&!0===a.fog&&f.refreshFogUniforms(z,p),f.refreshMaterialUniforms(z,a,eh,ec,V.state.transmissionRenderTarget[e.id]),ui.upload(eP,eZ(R),z,o)),a.isShaderMaterial&&!0===a.uniformsNeedUpdate&&(ui.upload(eP,eZ(R),z,o),a.uniformsNeedUpdate=!1),a.isSpriteMaterial&&F.setValue(eP,"center",c.center),F.setValue(eP,"modelViewMatrix",c.modelViewMatrix),F.setValue(eP,"normalMatrix",c.normalMatrix),F.setValue(eP,"modelMatrix",c.matrixWorld),a.isShaderMaterial||a.isRawShaderMaterial){let e=a.uniformsGroups;for(let t=0,n=e.length;t{function i(){(r.forEach(function(e){s.get(e).currentProgram.isReady()&&r.delete(e)}),0===r.size)?t(e):setTimeout(i,10)}null!==n.get("KHR_parallel_shader_compile")?i():setTimeout(i,10)})};let eB=null;function ek(){eV.stop()}function eH(){eV.start()}const eV=new oF;function eG(e,t,n,i){if(!1===e.visible)return;if(e.layers.test(t.layers)){if(e.isGroup)n=e.renderOrder;else if(e.isLOD)!0===e.autoUpdate&&e.update(t);else if(e.isLight)V.pushLight(e),e.castShadow&&V.pushShadow(e);else if(e.isSprite){if(!e.frustumCulled||ev.intersectsSprite(e)){i&&ew.setFromMatrixPosition(e.matrixWorld).applyMatrix4(eM);let t=d.update(e),r=e.material;r.visible&&H.push(e,t,r,n,ew.z,null)}}else if((e.isMesh||e.isLine||e.isPoints)&&(!e.frustumCulled||ev.intersectsObject(e))){let t=d.update(e),r=e.material;if(i&&(void 0!==e.boundingSphere?(null===e.boundingSphere&&e.computeBoundingSphere(),ew.copy(e.boundingSphere.center)):(null===t.boundingSphere&&t.computeBoundingSphere(),ew.copy(t.boundingSphere.center)),ew.applyMatrix4(e.matrixWorld).applyMatrix4(eM)),Array.isArray(r)){let i=t.groups;for(let a=0,s=i.length;a0&&eX(a,t,n),s.length>0&&eX(s,t,n),o.length>0&&eX(o,t,n),r.buffers.depth.setTest(!0),r.buffers.depth.setMask(!0),r.buffers.color.setMask(!0),r.setPolygonOffset(!1)}function ej(e,t,i,r){if(null!==(!0===i.isScene?i.overrideMaterial:null))return;void 0===V.state.transmissionRenderTarget[r.id]&&(V.state.transmissionRenderTarget[r.id]=new ex(1,1,{generateMipmaps:!0,type:n.has("EXT_color_buffer_half_float")||n.has("EXT_color_buffer_float")?1016:1009,minFilter:1008,samples:4,stencilBuffer:R,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:eu.workingColorSpace}));let a=V.state.transmissionRenderTarget[r.id],s=r.viewport||$;a.setSize(s.z,s.w);let l=j.getRenderTarget();j.setRenderTarget(a),j.getClearColor(en),(eo=j.getClearAlpha())<1&&j.setClearColor(0xffffff,.5),j.clear(),eC&&y.render(i);let u=j.toneMapping;j.toneMapping=0;let c=r.viewport;if(void 0!==r.viewport&&(r.viewport=void 0),V.setupLightsView(r),!0===ey&&v.setGlobalState(j.clippingPlanes,r),eX(e,i,r),o.updateMultisampleRenderTarget(a),o.updateRenderTargetMipmap(a),!1===n.has("WEBGL_multisampled_render_to_texture")){let e=!1;for(let n=0,a=t.length;ntypeof self&&eV.setContext(self),this.setAnimationLoop=function(e){eB=e,eN.setAnimationLoop(e),null===e?eV.stop():eV.start()},eN.addEventListener("sessionstart",ek),eN.addEventListener("sessionend",eH),this.render=function(e,t){if(void 0!==t&&!0!==t.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===X)return;if(!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===t.parent&&!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),!0===eN.enabled&&!0===eN.isPresenting&&(!0===eN.cameraAutoUpdate&&eN.updateCamera(t),t=eN.getCamera()),!0===e.isScene&&e.onBeforeRender(j,e,t,Z),(V=g.get(e,W.length)).init(t),W.push(V),eM.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),ev.setFromProjectionMatrix(eM),eb=this.localClippingEnabled,ey=v.init(this.clippingPlanes,eb),(H=m.get(e,G.length)).init(),G.push(H),!0===eN.enabled&&!0===eN.isPresenting){let e=j.xr.getDepthSensingMesh();null!==e&&eG(e,t,-1/0,j.sortObjects)}eG(e,t,0,j.sortObjects),H.finish(),!0===j.sortObjects&&H.sort(ed,ep),(eC=!1===eN.enabled||!1===eN.isPresenting||!1===eN.hasDepthSensing())&&y.addToRenderList(H,e),this.info.render.frame++,!0===ey&&v.beginShadows();let n=V.state.shadowsArray;_.render(n,e,t),!0===ey&&v.endShadows(),!0===this.info.autoReset&&this.info.reset();let i=H.opaque,r=H.transmissive;if(V.setupLights(),t.isArrayCamera){let n=t.cameras;if(r.length>0)for(let t=0,a=n.length;t0&&ej(i,r,e,t),eC&&y.render(e),eW(H,e,t);null!==Z&&(o.updateMultisampleRenderTarget(Z),o.updateRenderTargetMipmap(Z)),!0===e.isScene&&e.onAfterRender(j,e,t),T.resetDefaultState(),J=-1,K=null,W.pop(),W.length>0?(V=W[W.length-1],!0===ey&&v.setGlobalState(j.clippingPlanes,V.state.camera)):V=null,G.pop(),H=G.length>0?G[G.length-1]:null},this.getActiveCubeFace=function(){return q},this.getActiveMipmapLevel=function(){return Y},this.getRenderTarget=function(){return Z},this.setRenderTargetTextures=function(e,t,i){s.get(e.texture).__webglTexture=t,s.get(e.depthTexture).__webglTexture=i;let r=s.get(e);r.__hasExternalTextures=!0,r.__autoAllocateDepthBuffer=void 0===i,r.__autoAllocateDepthBuffer||!0!==n.has("WEBGL_multisampled_render_to_texture")||(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),r.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(e,t){let n=s.get(e);n.__webglFramebuffer=t,n.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,n=0){Z=e,q=t,Y=n;let i=!0,a=null,l=!1,u=!1;if(e){let c=s.get(e);if(void 0!==c.__useDefaultFramebuffer)r.bindFramebuffer(eP.FRAMEBUFFER,null),i=!1;else if(void 0===c.__webglFramebuffer)o.setupRenderTarget(e);else if(c.__hasExternalTextures)o.rebindTextures(e,s.get(e.texture).__webglTexture,s.get(e.depthTexture).__webglTexture);else if(e.depthBuffer){let t=e.depthTexture;if(c.__boundDepthTexture!==t){if(null!==t&&s.has(t)&&(e.width!==t.image.width||e.height!==t.image.height))throw Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");o.setupDepthRenderbuffer(e)}}let h=e.texture;(h.isData3DTexture||h.isDataArrayTexture||h.isCompressedArrayTexture)&&(u=!0);let d=s.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(a=Array.isArray(d[t])?d[t][n]:d[t],l=!0):a=e.samples>0&&!1===o.useMultisampledRTT(e)?s.get(e).__webglMultisampledFramebuffer:Array.isArray(d)?d[n]:d,$.copy(e.viewport),Q.copy(e.scissor),ee=e.scissorTest}else $.copy(ef).multiplyScalar(eh).floor(),Q.copy(em).multiplyScalar(eh).floor(),ee=eg;if(r.bindFramebuffer(eP.FRAMEBUFFER,a)&&i&&r.drawBuffers(e,a),r.viewport($),r.scissor(Q),r.setScissorTest(ee),l){let i=s.get(e.texture);eP.framebufferTexture2D(eP.FRAMEBUFFER,eP.COLOR_ATTACHMENT0,eP.TEXTURE_CUBE_MAP_POSITIVE_X+t,i.__webglTexture,n)}else if(u){let i=s.get(e.texture);eP.framebufferTextureLayer(eP.FRAMEBUFFER,eP.COLOR_ATTACHMENT0,i.__webglTexture,n||0,t||0)}J=-1},this.readRenderTargetPixels=function(e,t,n,a,o,l,u){if(!(e&&e.isWebGLRenderTarget))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let c=s.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==u&&(c=c[u]),c){r.bindFramebuffer(eP.FRAMEBUFFER,c);try{let r=e.texture,s=r.format,u=r.type;if(!i.textureFormatReadable(s))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!i.textureTypeReadable(u))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-a&&n>=0&&n<=e.height-o&&eP.readPixels(t,n,a,o,M.convert(s),M.convert(u),l)}finally{let e=null!==Z?s.get(Z).__webglFramebuffer:null;r.bindFramebuffer(eP.FRAMEBUFFER,e)}}},this.readRenderTargetPixelsAsync=async function(e,t,n,a,o,l,u){if(!(e&&e.isWebGLRenderTarget))throw Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let c=s.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==u&&(c=c[u]),c){let u=e.texture,h=u.format,d=u.type;if(!i.textureFormatReadable(h))throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!i.textureTypeReadable(d))throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(t>=0&&t<=e.width-a&&n>=0&&n<=e.height-o){r.bindFramebuffer(eP.FRAMEBUFFER,c);let e=eP.createBuffer();eP.bindBuffer(eP.PIXEL_PACK_BUFFER,e),eP.bufferData(eP.PIXEL_PACK_BUFFER,l.byteLength,eP.STREAM_READ),eP.readPixels(t,n,a,o,M.convert(h),M.convert(d),0);let i=null!==Z?s.get(Z).__webglFramebuffer:null;r.bindFramebuffer(eP.FRAMEBUFFER,i);let u=eP.fenceSync(eP.SYNC_GPU_COMMANDS_COMPLETE,0);return eP.flush(),await er(eP,u,4),eP.bindBuffer(eP.PIXEL_PACK_BUFFER,e),eP.getBufferSubData(eP.PIXEL_PACK_BUFFER,0,l),eP.deleteBuffer(e),eP.deleteSync(u),l}throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(e,t=null,n=0){!0!==e.isTexture&&(ei("WebGLRenderer: copyFramebufferToTexture function signature has changed."),t=arguments[0]||null,e=arguments[1]);let i=Math.pow(2,-n),a=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i),l=null!==t?t.x:0,u=null!==t?t.y:0;o.setTexture2D(e,0),eP.copyTexSubImage2D(eP.TEXTURE_2D,n,0,0,l,u,a,s),r.unbindTexture()};const eK=eP.createFramebuffer(),e$=eP.createFramebuffer();this.copyTextureToTexture=function(e,t,n=null,i=null,a=0,l=null){let u,c,h,d,p,f,m,g,v,_;!0!==e.isTexture&&(ei("WebGLRenderer: copyTextureToTexture function signature has changed."),i=arguments[0]||null,e=arguments[1],t=arguments[2],l=arguments[3]||0,n=null),null===l&&(0!==a?(ei("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),l=a,a=0):l=0);let y=e.isCompressedTexture?e.mipmaps[l]:e.image;if(null!==n)u=n.max.x-n.min.x,c=n.max.y-n.min.y,h=n.isBox3?n.max.z-n.min.z:1,d=n.min.x,p=n.min.y,f=n.isBox3?n.min.z:0;else{let t=Math.pow(2,-a);u=Math.floor(y.width*t),c=Math.floor(y.height*t),h=e.isDataArrayTexture?y.depth:e.isData3DTexture?Math.floor(y.depth*t):1,d=0,p=0,f=0}null!==i?(m=i.x,g=i.y,v=i.z):(m=0,g=0,v=0);let x=M.convert(t.format),b=M.convert(t.type);t.isData3DTexture?(o.setTexture3D(t,0),_=eP.TEXTURE_3D):t.isDataArrayTexture||t.isCompressedArrayTexture?(o.setTexture2DArray(t,0),_=eP.TEXTURE_2D_ARRAY):(o.setTexture2D(t,0),_=eP.TEXTURE_2D),eP.pixelStorei(eP.UNPACK_FLIP_Y_WEBGL,t.flipY),eP.pixelStorei(eP.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),eP.pixelStorei(eP.UNPACK_ALIGNMENT,t.unpackAlignment);let S=eP.getParameter(eP.UNPACK_ROW_LENGTH),T=eP.getParameter(eP.UNPACK_IMAGE_HEIGHT),w=eP.getParameter(eP.UNPACK_SKIP_PIXELS),E=eP.getParameter(eP.UNPACK_SKIP_ROWS),A=eP.getParameter(eP.UNPACK_SKIP_IMAGES);eP.pixelStorei(eP.UNPACK_ROW_LENGTH,y.width),eP.pixelStorei(eP.UNPACK_IMAGE_HEIGHT,y.height),eP.pixelStorei(eP.UNPACK_SKIP_PIXELS,d),eP.pixelStorei(eP.UNPACK_SKIP_ROWS,p),eP.pixelStorei(eP.UNPACK_SKIP_IMAGES,f);let C=e.isDataArrayTexture||e.isData3DTexture,R=t.isDataArrayTexture||t.isData3DTexture;if(e.isDepthTexture){let n=s.get(e),i=s.get(t),o=s.get(n.__renderTarget),_=s.get(i.__renderTarget);r.bindFramebuffer(eP.READ_FRAMEBUFFER,o.__webglFramebuffer),r.bindFramebuffer(eP.DRAW_FRAMEBUFFER,_.__webglFramebuffer);for(let n=0;ntypeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return 2e3}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;let t=this.getContext();t.drawingBufferColorspace=eu._getDrawingBufferColorSpace(e),t.unpackColorSpace=eu._getUnpackColorSpace()}}e.s(["PMREMGenerator",0,o8,"ShaderChunk",0,oB,"ShaderLib",0,oH,"UniformsLib",0,ok,"WebGLRenderer",0,uK,"WebGLUtils",0,uk],8560);var u$=e.i(30224);let uQ=e=>{let t,n=new Set,i=(e,i)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=i?i:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,a={setState:i,getState:r,getInitialState:()=>s,subscribe:e=>(n.add(e),()=>n.delete(e))},s=t=e(i,r,a);return a},u0=e=>e?uQ(e):uQ;e.s(["createStore",0,u0],8155);let{useSyncExternalStoreWithSelector:u1}=u$.default,u2=(e,t)=>{let n=u0(e),i=(e,i=t)=>(function(e,t=e=>e,n){let i=u1(e.subscribe,e.getState,e.getInitialState,t,n);return E.default.useDebugValue(i),i})(n,e,i);return Object.assign(i,n),i},u3=(e,t)=>e?u2(e,t):u2,u4=[];function u5(e,t,n=(e,t)=>e===t){if(e===t)return!0;if(!e||!t)return!1;let i=e.length;if(t.length!==i)return!1;for(let r=0;r0&&(r.timeout&&clearTimeout(r.timeout),r.timeout=setTimeout(r.remove,i.lifespan)),r.response;if(!n)throw r.promise}let r={keys:t,equal:i.equal,remove:()=>{let e=u4.indexOf(r);-1!==e&&u4.splice(e,1)},promise:("object"==typeof e&&"function"==typeof e.then?e:e(...t)).then(e=>{r.response=e,i.lifespan&&i.lifespan>0&&(r.timeout=setTimeout(r.remove,i.lifespan))}).catch(e=>r.error=e)};if(u4.push(r),!n)throw r.promise}var u8=e.i(89499),u9=e.i(43476),u7=E;function ce(e,t,n){if(!e)return;if(!0===n(e))return e;let i=t?e.return:e.child;for(;i;){let e=ce(i,t,n);if(e)return e;i=t?null:i.sibling}}function ct(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}"u">typeof window&&((null==(y=window.document)?void 0:y.createElement)||(null==(x=window.navigator)?void 0:x.product)==="ReactNative")?u7.useLayoutEffect:u7.useEffect;let cn=ct(u7.createContext(null));class ci extends u7.Component{render(){return u7.createElement(cn.Provider,{value:this._reactInternals},this.props.children)}}function cr(){let e=u7.useContext(cn);if(null===e)throw Error("its-fine: useFiber must be called within a !");let t=u7.useId();return u7.useMemo(()=>{for(let n of[e,null==e?void 0:e.alternate]){if(!n)continue;let e=ce(n,!1,e=>{let n=e.memoizedState;for(;n;){if(n.memoizedState===t)return!0;n=n.next}});if(e)return e}},[e,t])}let ca=Symbol.for("react.context"),cs=e=>null!==e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===ca;function co(e){let t=e.root;for(;t.getState().previousRoot;)t=t.getState().previousRoot;return t}E.act;let cl=e=>e&&e.hasOwnProperty("current"),cu=e=>null!=e&&("string"==typeof e||"number"==typeof e||e.isColor),cc="u">typeof window&&((null==(m=window.document)?void 0:m.createElement)||(null==(g=window.navigator)?void 0:g.product)==="ReactNative")?E.useLayoutEffect:E.useEffect;function ch(e){let t=E.useRef(e);return cc(()=>void(t.current=e),[e]),t}function cd(){let e,t=cr(),n=(e=function(){let e=cr(),[t]=u7.useState(()=>new Map);t.clear();let n=e;for(;n;){let e=n.type;cs(e)&&e!==cn&&!t.has(e)&&t.set(e,u7.use(ct(e))),n=n.return}return t}(),u7.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>i=>u7.createElement(t,null,u7.createElement(n.Provider,{...i,value:e.get(n)})),e=>u7.createElement(ci,{...e})),[e]));return E.useMemo(()=>({children:e})=>{let i=ce(t,!0,e=>e.type===E.StrictMode)?E.StrictMode:E.Fragment;return(0,u9.jsx)(i,{children:(0,u9.jsx)(n,{children:e})})},[t,n])}function cp({set:e}){return cc(()=>(e(new Promise(()=>null)),()=>e(!1)),[e]),null}let cf=((v=class extends E.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}).getDerivedStateFromError=()=>({error:!0}),v);function cm(e){var t;let n="u">typeof window?null!=(t=window.devicePixelRatio)?t:2:1;return Array.isArray(e)?Math.min(Math.max(e[0],n),e[1]):e}function cg(e){var t;return null==(t=e.__r3f)?void 0:t.root.getState()}let cv={obj:e=>e===Object(e)&&!cv.arr(e)&&"function"!=typeof e,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,boo:e=>"boolean"==typeof e,und:e=>void 0===e,nul:e=>null===e,arr:e=>Array.isArray(e),equ(e,t,{arrays:n="shallow",objects:i="reference",strict:r=!0}={}){let a;if(typeof e!=typeof t||!!e!=!!t)return!1;if(cv.str(e)||cv.num(e)||cv.boo(e))return e===t;let s=cv.obj(e);if(s&&"reference"===i)return e===t;let o=cv.arr(e);if(o&&"reference"===n)return e===t;if((o||s)&&e===t)return!0;for(a in e)if(!(a in t))return!1;if(s&&"shallow"===n&&"shallow"===i){for(a in r?t:e)if(!cv.equ(e[a],t[a],{strict:r,objects:"reference"}))return!1}else for(a in r?t:e)if(e[a]!==t[a])return!1;if(cv.und(a)){if(o&&0===e.length&&0===t.length||s&&0===Object.keys(e).length&&0===Object.keys(t).length)return!0;if(e!==t)return!1}return!0}},c_=["children","key","ref"];function cy(e,t,n,i){let r=null==e?void 0:e.__r3f;return!r&&(r={root:t,type:n,parent:null,children:[],props:function(e){let t={};for(let n in e)c_.includes(n)||(t[n]=e[n]);return t}(i),object:e,eventCount:0,handlers:{},isHidden:!1},e&&(e.__r3f=r)),r}function cx(e,t){if(!t.includes("-")||t in e)return{root:e,key:t,target:e[t]};let n=e,i=t.split("-");for(let r of i){if("object"!=typeof n||null===n){if(void 0!==n)return{root:n,key:i.slice(i.indexOf(r)).join("-"),target:void 0};return{root:e,key:t,target:void 0}}t=r,e=n,n=n[t]}return{root:e,key:t,target:n}}let cb=/-\d+$/;function cS(e,t){if(cv.str(t.props.attach)){if(cb.test(t.props.attach)){let n=t.props.attach.replace(cb,""),{root:i,key:r}=cx(e.object,n);Array.isArray(i[r])||(i[r]=[])}let{root:n,key:i}=cx(e.object,t.props.attach);t.previousAttach=n[i],n[i]=t.object}else cv.fun(t.props.attach)&&(t.previousAttach=t.props.attach(e.object,t.object))}function cM(e,t){if(cv.str(t.props.attach)){let{root:n,key:i}=cx(e.object,t.props.attach),r=t.previousAttach;void 0===r?delete n[i]:n[i]=r}else null==t.previousAttach||t.previousAttach(e.object,t.object);delete t.previousAttach}let cT=[...c_,"args","dispose","attach","object","onUpdate","dispose"],cw=new Map,cE=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],cA=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function cC(e,t){var n,i;let r=e.__r3f,a=r&&co(r).getState(),s=null==r?void 0:r.eventCount;for(let n in t){let s=t[n];if(cT.includes(n))continue;if(r&&cA.test(n)){"function"==typeof s?r.handlers[n]=s:delete r.handlers[n],r.eventCount=Object.keys(r.handlers).length;continue}if(void 0===s)continue;let{root:o,key:l,target:u}=cx(e,n);if(void 0===u&&("object"!=typeof o||null===o))throw Error(`R3F: Cannot set "${n}". Ensure it is an object before setting "${l}".`);if(u instanceof ti&&s instanceof ti)u.mask=s.mask;else if(u instanceof tz&&cu(s))u.set(s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&"function"==typeof u.copy&&null!=s&&s.constructor&&u.constructor===s.constructor)u.copy(s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&Array.isArray(s))"function"==typeof u.fromArray?u.fromArray(s):u.set(...s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&"number"==typeof s)"function"==typeof u.setScalar?u.setScalar(s):u.set(s);else if(o instanceof nb&&"uniforms"===l&&cv.obj(s)){cv.obj(o.uniforms)||(o.uniforms={});let e=o.uniforms;for(let t in s){let n=s[t],i=e[t];i?Object.assign(i,n):e[t]={...n}}}else o[l]=s,a&&!a.linear&&cE.includes(l)&&null!=(i=o[l])&&i.isTexture&&1023===o[l].format&&1009===o[l].type&&(o[l].colorSpace=I)}if(null!=r&&r.parent&&null!=a&&a.internal&&null!=(n=r.object)&&n.isObject3D&&s!==r.eventCount){let e=r.object,t=a.internal.interaction.indexOf(e);t>-1&&a.internal.interaction.splice(t,1),r.eventCount&&null!==e.raycast&&a.internal.interaction.push(e)}return r&&void 0===r.props.attach&&(r.object.isBufferGeometry?r.props.attach="geometry":r.object.isMaterial&&(r.props.attach="material")),r&&cR(r),e}function cR(e){var t;if(!e.parent)return;null==e.props.onUpdate||e.props.onUpdate(e.object);let n=null==(t=e.root)||null==t.getState?void 0:t.getState();n&&0===n.internal.frames&&n.invalidate()}function cP(e,t){!e.manual&&(e&&e.isOrthographicCamera?(e.left=-(t.width/2),e.right=t.width/2,e.top=t.height/2,e.bottom=-(t.height/2)):e.aspect=t.width/t.height,e.updateProjectionMatrix())}let cI=e=>null==e?void 0:e.isObject3D;function cL(e){return(e.eventObject||e.object).uuid+"/"+e.index+e.instanceId}function cN(e,t,n,i){let r=n.get(t);r&&(n.delete(t),0===n.size&&(e.delete(i),r.target.releasePointerCapture(i)))}let cU=e=>!!(null!=e&&e.render),cD=E.createContext(null);function cO(){let e=E.useContext(cD);if(!e)throw Error("R3F: Hooks can only be used within the Canvas component!");return e}function cF(e=e=>e,t){return cO()(e,t)}function cz(e,t=0){let n=cO(),i=n.getState().internal.subscribe,r=ch(e);return cc(()=>i(r,t,n),[t,i,n]),null}let cB=new WeakMap;function ck(e,t){return function(n,...i){var r;let a;return"function"==typeof n&&(null==n||null==(r=n.prototype)?void 0:r.constructor)===n?(a=cB.get(n))||(a=new n,cB.set(n,a)):a=n,e&&e(a),Promise.all(i.map(e=>new Promise((n,i)=>a.load(e,e=>{var t;let i;cI(null==e?void 0:e.scene)&&Object.assign(e,(t=e.scene,i={nodes:{},materials:{},meshes:{}},t&&t.traverse(e=>{e.name&&(i.nodes[e.name]=e),e.material&&!i.materials[e.material.name]&&(i.materials[e.material.name]=e.material),e.isMesh&&!i.meshes[e.name]&&(i.meshes[e.name]=e)}),i)),n(e)},t,t=>i(Error(`Could not load ${e}: ${null==t?void 0:t.message}`))))))}}function cH(e,t,n,i){let r=Array.isArray(t)?t:[t],a=u6(ck(n,i),[e,...r],!1,{equal:cv.equ});return Array.isArray(t)?a:a[0]}cH.preload=function(e,t,n){let i,r=Array.isArray(t)?t:[t];u6(ck(n),[e,...r],!0,i)},cH.clear=function(e,t){var n=[e,...Array.isArray(t)?t:[t]];if(void 0===n||0===n.length)u4.splice(0,u4.length);else{let e=u4.find(e=>u5(n,e.keys,e.equal));e&&e.remove()}};var cV={exports:{}},cG={exports:{}};cG.exports;let cW=(T||(T=1,M||(M=1,cG.exports=function(e){function t(e,t,n,i){return new iJ(e,t,n,i)}function n(){}function i(e){var t="https://react.dev/errors/"+e;if(1sT||(e.current=sM[sT],sM[sT]=null,sT--)}function h(e,t){sM[++sT]=e.current,e.current=t}function d(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function p(e,t,n){var i=e.pendingLanes;if(0===i)return 0;var r=0,a=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var o=0x7ffffff&i;return 0!==o?0!=(i=o&~a)?r=d(i):0!=(s&=o)?r=d(s):n||0!=(n=o&~e)&&(r=d(n)):0!=(o=i&~a)?r=d(o):0!==s?r=d(s):n||0!=(n=i&~e)&&(r=d(n)),0===r?0:0!==t&&t!==r&&(t&a)==0&&((a=r&-r)>=(n=t&-t)||32===a&&(4194048&n)!=0)?t:r}function f(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)==0}function m(){var e=sI;return(0x3c00000&(sI<<=1))==0&&(sI=4194304),e}function g(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function v(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function _(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var i=31-sE(t);e.entangledLanes|=t,e.entanglements[i]=0x40000000|e.entanglements[i]|261930&n}function y(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var i=31-sE(n),r=1<)":-1r||l[i]!==u[r]){var c=` +`+l[i].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=i&&0<=r)break}}}finally{sY=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?T(n):""}function C(e){try{var t="",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return T(e.type);case 16:return T("Lazy");case 13:return e.child!==t&&null!==t?T("Suspense Fallback"):T("Suspense");case 19:return T("SuspenseList");case 0:case 15:return A(e.type,!1);case 11:return A(e.type.render,!1);case 1:return A(e.type,!0);case 31:return T("Activity");default:return""}}(e,n),n=e,e=e.return;while(e)return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}function R(e,t){if("object"==typeof e&&null!==e){var n=sZ.get(e);return void 0!==n?n:(t={value:e,source:t,stack:C(t)},sZ.set(e,t),t)}return{value:e,source:t,stack:C(t)}}function P(e,t){sJ[sK++]=sQ,sJ[sK++]=s$,s$=e,sQ=t}function I(e,t,n){s0[s1++]=s3,s0[s1++]=s4,s0[s1++]=s2,s2=e;var i=s3;e=s4;var r=32-sE(i)-1;i&=~(1<>=s,r-=s,s3=1<<32-sE(t)+r|n<d?(p=h,h=null):p=h.sibling;var v=m(t,h,s[d],o);if(null===v){null===h&&(h=p);break}e&&h&&null===v.alternate&&n(t,h),i=l(v,i,d),null===c?u=v:c.sibling=v,c=v,h=p}if(d===s.length)return r(t,h),ot&&P(t,d),u;if(null===h){for(;dp?(v=d,d=null):v=d.sibling;var y=m(t,d,_.value,u);if(null===y){null===d&&(d=v);break}e&&d&&null===y.alternate&&n(t,d),s=l(y,s,p),null===h?c=y:h.sibling=y,h=y,d=v}if(_.done)return r(t,d),ot&&P(t,p),c;if(null===d){for(;!_.done;p++,_=o.next())null!==(_=f(t,_.value,u))&&(s=l(_,s,p),null===h?c=_:h.sibling=_,h=_);return ot&&P(t,p),c}for(d=a(d);!_.done;p++,_=o.next())null!==(_=g(d,t,p,_.value,u))&&(e&&null!==_.alternate&&d.delete(null===_.key?p:_.key),s=l(_,s,p),null===h?c=_:h.sibling=_,h=_);return e&&d.forEach(function(e){return n(t,e)}),ot&&P(t,p),c}(c,h,d=v.call(d),p)}if("function"==typeof d.then)return t(c,h,eM(d),p);if(d.$$typeof===rd)return t(c,h,ee(c,d),p);ew(c,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==h&&6===h.tag?(r(c,h.sibling),(p=s(h,d)).return=c):(r(c,h),(p=i2(d,c.mode,p)).return=c),u(c=p)):r(c,h)}(c,h,d,p);return oR=null,v}catch(e){if(e===oT||e===oE)throw e;var _=t(29,e,null,c.mode);return _.lanes=p,_.return=c,_}finally{}}}function eA(){for(var e=oU,t=oD=oU=0;ta?a:8);var s=rM.T,o={};rM.T=o,t$(e,!1,t,n);try{var l=r(),u=rM.S;if(null!==u&&u(o,l),null!==l&&"object"==typeof l&&"function"==typeof l.then){var c,h,d=(c=[],h={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},l.then(function(){h.status="fulfilled",h.value=i;for(var e=0;e";case lu:return":has("+(id(e)||"")+")";case lc:return'[role="'+e.value+'"]';case ld:return'"'+e.value+'"';case lh:return'[data-testname="'+e.value+'"]';default:throw Error(i(365))}}function ip(e,t){var n=[];e=[e,0];for(var i=0;ilO&&(t.flags|=128,a=!0,nO(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=eK(s))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,nD(t,e),nO(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!ot)return nF(t),null}else 2*sO()-r.renderingStartTime>lO&&0x20000000!==n&&(t.flags|=128,a=!0,nO(r,!1),t.lanes=4194304);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(e=r.last)?e.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=sO(),e.sibling=null,n=oV.current,h(oV,a?1&n|2:1&n),ot&&P(t,r.treeForkCount),e):(nF(t),null);case 22:case 23:return eJ(t),ej(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?(0x20000000&n)!=0&&(128&t.flags)==0&&(nF(t),6&t.subtreeFlags&&(t.flags|=8192)):nF(t),null!==(n=t.updateQueue)&&nD(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&c(oM),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),q(oh),nF(t),null;case 25:case 30:return null}throw Error(i(156,t.tag))}(t.alternate,t,lT);if(null!==n){lv=n;return}if(null!==(t=t.sibling)){lv=t;return}lv=t=e}while(null!==t)0===lw&&(lw=5)}function iD(e,t){do{var n=function(e,t){switch(N(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return q(oh),O(),(65536&(e=t.flags))!=0&&(128&e)==0?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return z(t),null;case 31:if(null!==t.memoizedState){if(eJ(t),null===t.alternate)throw Error(i(340));G()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(eJ(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));G()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return c(oV),null;case 4:return O(),null;case 10:return q(t.type),null;case 22:case 23:return eJ(t),ej(),null!==e&&c(oM),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return q(oh),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lv=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lv=e;return}lv=e=n}while(null!==e)lw=6,lv=null}function iO(e,t,n,r,a,s,o,l,u){e.cancelPendingCommit=null;do iH();while(0!==lB)if((6&lm)!=0)throw Error(i(327));if(null!==t){if(t===e.current)throw Error(i(177));if(function(e,t,n,i,r,a){var s=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,l=e.expirationTimes,u=e.hiddenUpdates;for(n=s&~n;0n?32:n;n=rM.T;var a=rq();try{rX(r),rM.T=null,r=lW,lW=null;var s=lk,o=lV;if(lB=0,lH=lk=null,lV=0,(6&lm)!=0)throw Error(i(331));var l=lm;if(lm|=4,il(s.current),it(s,s.current,o,r),lm=l,es(0,!1),sW&&"function"==typeof sW.onPostCommitFiberRoot)try{sW.onPostCommitFiberRoot(sG,s)}catch{}return!0}finally{rX(a),rM.T=n,ik(e,t)}}function iG(e,t,n){t=R(n,t),t=t9(e.stateNode,t,2),null!==(e=eO(e,t,2))&&(v(e,2),ea(e))}function iW(e,t,n){if(3===e.tag)iG(e,e,n);else for(;null!==t;){if(3===t.tag){iG(t,e,n);break}if(1===t.tag){var i=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof i.componentDidCatch&&(null===lz||!lz.has(i))){e=R(n,e),null!==(i=eO(t,n=t7(2),2))&&(ne(n,i,t,e),v(i,2),ea(i));break}}t=t.return}}function ij(e,t,n){var i=e.pingCache;if(null===i){i=e.pingCache=new lf;var r=new Set;i.set(t,r)}else void 0===(r=i.get(t))&&(r=new Set,i.set(t,r));r.has(n)||(lM=!0,r.add(n),e=iX.bind(null,e,t,n),t.then(e,e))}function iX(e,t,n){var i=e.pingCache;null!==i&&i.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lg===e&&(l_&n)===n&&(4===lw||3===lw&&(0x3c00000&l_)===l_&&300>sO()-lU?(2&lm)==0&&iT(e,0):lC|=n,lP===l_&&(lP=0)),ea(e)}function iq(e,t){0===t&&(t=m()),null!==(e=eP(e,t))&&(v(e,t),ea(e))}function iY(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),iq(e,n)}function iZ(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),iq(e,n)}function iJ(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function iK(e){return!(!(e=e.prototype)||!e.isReactComponent)}function i$(e,n){var i=e.alternate;return null===i?((i=t(e.tag,n,e.key,e.mode)).elementType=e.elementType,i.type=e.type,i.stateNode=e.stateNode,i.alternate=e,e.alternate=i):(i.pendingProps=n,i.type=e.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=0x3e00000&e.flags,i.childLanes=e.childLanes,i.lanes=e.lanes,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,n=e.dependencies,i.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},i.sibling=e.sibling,i.index=e.index,i.ref=e.ref,i.refCleanup=e.refCleanup,i}function iQ(e,t){e.flags&=0x3e00002;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,e.dependencies=null===(t=n.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function i0(e,n,r,a,s,o){var l=0;if(a=e,"function"==typeof e)iK(e)&&(l=1);else if("string"==typeof e)l=si&&sv?sr(e,r,s5.current)?26:sb(e)?27:5:si?sr(e,r,s5.current)?26:5:sv&&sb(e)?27:5;else o:switch(e){case r_:return(e=t(31,r,n,s)).elementType=r_,e.lanes=o,e;case rl:return i1(r.children,s,o,n);case ru:l=8,s|=24;break;case rc:return(e=t(12,r,n,2|s)).elementType=rc,e.lanes=o,e;case rf:return(e=t(13,r,n,s)).elementType=rf,e.lanes=o,e;case rm:return(e=t(19,r,n,s)).elementType=rm,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case rd:l=10;break o;case rh:l=9;break o;case rp:l=11;break o;case rg:l=14;break o;case rv:l=16,a=null;break o}l=29,r=Error(i(130,null===e?"null":typeof e,"")),a=null}return(n=t(l,r,n,s)).elementType=e,n.type=a,n.lanes=o,n}function i1(e,n,i,r){return(e=t(7,e,r,n)).lanes=i,e}function i2(e,n,i){return(e=t(6,e,null,n)).lanes=i,e}function i3(e){var n=t(18,null,null,0);return n.stateNode=e,n}function i4(e,n,i){return(n=t(4,null!==e.children?e.children:[],e.key,n)).lanes=i,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function i5(e,t,n,i,r,a,s,o,l){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=rB,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=g(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=g(0),this.hiddenUpdates=g(null),this.identifierPrefix=i,this.onUncaughtError=r,this.onCaughtError=a,this.onRecoverableError=s,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=l,this.incompleteTransitions=new Map}function i6(e,n,i,r,a,s,o,l,u,c,h,d){return e=new i5(e,n,i,o,u,c,h,d,l),n=1,!0===s&&(n|=24),s=t(3,null,null,n),e.current=s,s.stateNode=e,n=en(),n.refCount++,e.pooledCache=n,n.refCount++,s.memoizedState={element:r,isDehydrated:i,cache:n},eN(s),e}function i8(e){var t=e._reactInternals;if(void 0===t)throw"function"==typeof e.render?Error(i(188)):Error(i(268,e=Object.keys(e).join(",")));return null===(e=null!==(e=s(t))?function e(t){var n=t.tag;if(5===n||26===n||27===n||6===n)return t;for(t=t.child;null!==t;){if(null!==(n=e(t)))return n;t=t.sibling}return null}(e):null)?null:rA(e.stateNode)}function i9(e,t,n,i,r,a){r=sw,null===i.context?i.context=r:i.pendingContext=r,(i=eD(t)).payload={element:n},null!==(a=void 0===a?null:a)&&(i.callback=a),null!==(n=eO(e,i,t))&&(i_(n,e,t),eF(n,e,t))}function i7(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n>>=0)?32:31-(sA(e)/sC|0)|0},sA=Math.log,sC=Math.LN2,sR=256,sP=262144,sI=4194304,sL=ri.unstable_scheduleCallback,sN=ri.unstable_cancelCallback,sU=ri.unstable_shouldYield,sD=ri.unstable_requestPaint,sO=ri.unstable_now,sF=ri.unstable_ImmediatePriority,sz=ri.unstable_UserBlockingPriority,sB=ri.unstable_NormalPriority,sk=ri.unstable_IdlePriority,sH=ri.log,sV=ri.unstable_setDisableYieldValue,sG=null,sW=null,sj="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},sX="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof w.default&&"function"==typeof w.default.emit)return void w.default.emit("uncaughtException",e);console.error(e)},sq=Object.prototype.hasOwnProperty,sY=!1,sZ=new WeakMap,sJ=[],sK=0,s$=null,sQ=0,s0=[],s1=0,s2=null,s3=1,s4="",s5=u(null),s6=u(null),s8=u(null),s9=u(null),s7=null,oe=null,ot=!1,on=null,oi=!1,or=Error(i(519)),oa=u(null),os=null,oo=null,ol="u">typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ou=ri.unstable_scheduleCallback,oc=ri.unstable_NormalPriority,oh={$$typeof:rd,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0},od=null,op=null,of=!1,om=!1,og=!1,ov=0,o_=null,oy=0,ox=0,ob=null,oS=rM.S;rM.S=function(e,t){lD=sO(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e){if(null===o_){var t=o_=[];oy=0,ox=ed(),ob={status:"pending",value:void 0,then:function(e){t.push(e)}}}oy++,e.then(ep,ep)}(t),null!==oS&&oS(e,t)};var oM=u(null),oT=Error(i(460)),ow=Error(i(474)),oE=Error(i(542)),oA={then:function(){}},oC=null,oR=null,oP=0,oI=eE(!0),oL=eE(!1),oN=[],oU=0,oD=0,oO=!1,oF=!1,oz=u(null),oB=u(0),ok=u(null),oH=null,oV=u(0),oG=0,oW=null,oj=null,oX=null,oq=!1,oY=!1,oZ=!1,oJ=0,oK=0,o$=null,oQ=0,o0={readContext:Q,use:tt,useCallback:e$,useContext:e$,useEffect:e$,useImperativeHandle:e$,useLayoutEffect:e$,useInsertionEffect:e$,useMemo:e$,useReducer:e$,useRef:e$,useState:e$,useDebugValue:e$,useDeferredValue:e$,useTransition:e$,useSyncExternalStore:e$,useId:e$,useHostTransitionStatus:e$,useFormState:e$,useActionState:e$,useOptimistic:e$,useMemoCache:e$,useCacheRefresh:e$};o0.useEffectEvent=e$;var o1={readContext:Q,use:tt,useCallback:function(e,t){return e8().memoizedState=[e,void 0===t?null:t],e},useContext:Q,useEffect:tI,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,tR(4194308,4,tO.bind(null,t,e),n)},useLayoutEffect:function(e,t){return tR(4194308,4,e,t)},useInsertionEffect:function(e,t){tR(4,2,e,t)},useMemo:function(e,t){var n=e8();t=void 0===t?null:t;var i=e();return n.memoizedState=[i,t],i},useReducer:function(e,t,n){var i=e8();if(void 0!==n)var r=n(t);else r=t;return i.memoizedState=i.baseState=r,i.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:r},e=e.dispatch=tZ.bind(null,oW,e),[i.memoizedState,e]},useRef:function(e){return e8().memoizedState={current:e}},useState:function(e){var t=(e=tp(e)).queue,n=tJ.bind(null,oW,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:tz,useDeferredValue:function(e,t){return tH(e8(),e,t)},useTransition:function(){var e=tp(!1);return e=tG.bind(null,oW,e.queue,!0,!1),e8().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=oW,a=e8();if(ot){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===lg)throw Error(i(349));(127&l_)!=0||tl(r,t,n)}a.memoizedState=n;var s={value:n,getSnapshot:t};return a.queue=s,tI(tc.bind(null,r,s,e),[e]),r.flags|=2048,tA(9,{destroy:void 0},tu.bind(null,r,s,n,t),null),n},useId:function(){var e=e8(),t=lg.identifierPrefix;if(ot){var n=s4,i=s3;t="_"+t+"R_"+(n=(i&~(1<<32-sE(i)-1)).toString(32)+n),0<(n=oJ++)&&(t+="H"+n.toString(32)),t+="_"}else t="_"+t+"r_"+(n=oQ++).toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:tj,useFormState:tS,useActionState:tS,useOptimistic:function(e){var t=e8();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=t$.bind(null,oW,!0,n),n.dispatch=t,[e,t]},useMemoCache:tn,useCacheRefresh:function(){return e8().memoizedState=tY.bind(null,oW)},useEffectEvent:function(e){var t=e8(),n={impl:e};return t.memoizedState=n,function(){if((2&lm)!=0)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},o2={readContext:Q,use:tt,useCallback:tB,useContext:Q,useEffect:tL,useImperativeHandle:tF,useInsertionEffect:tU,useLayoutEffect:tD,useMemo:tk,useReducer:tr,useRef:tC,useState:function(){return tr(ti)},useDebugValue:tz,useDeferredValue:function(e,t){return tV(e9(),oj.memoizedState,e,t)},useTransition:function(){var e=tr(ti)[0],t=e9().memoizedState;return["boolean"==typeof e?e:te(e),t]},useSyncExternalStore:to,useId:tX,useHostTransitionStatus:tj,useFormState:tM,useActionState:tM,useOptimistic:function(e,t){return tf(e9(),oj,e,t)},useMemoCache:tn,useCacheRefresh:tq};o2.useEffectEvent=tN;var o3={readContext:Q,use:tt,useCallback:tB,useContext:Q,useEffect:tL,useImperativeHandle:tF,useInsertionEffect:tU,useLayoutEffect:tD,useMemo:tk,useReducer:ts,useRef:tC,useState:function(){return ts(ti)},useDebugValue:tz,useDeferredValue:function(e,t){var n=e9();return null===oj?tH(n,e,t):tV(n,oj.memoizedState,e,t)},useTransition:function(){var e=ts(ti)[0],t=e9().memoizedState;return["boolean"==typeof e?e:te(e),t]},useSyncExternalStore:to,useId:tX,useHostTransitionStatus:tj,useFormState:tE,useActionState:tE,useOptimistic:function(e,t){var n=e9();return null!==oj?tf(n,oj,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:tn,useCacheRefresh:tq};o3.useEffectEvent=tN;var o4={enqueueSetState:function(e,t,n){e=e._reactInternals;var i=ig(),r=eD(i);r.payload=t,null!=n&&(r.callback=n),null!==(t=eO(e,r,i))&&(i_(t,e,i),eF(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var i=ig(),r=eD(i);r.tag=1,r.payload=t,null!=n&&(r.callback=n),null!==(t=eO(e,r,i))&&(i_(t,e,i),eF(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ig(),i=eD(n);i.tag=2,null!=t&&(i.callback=t),null!==(t=eO(e,i,n))&&(i_(t,e,n),eF(t,e,n))}},o5=Error(i(461)),o6=!1,o8={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null},o9=!1,o7=!1,le=!1,lt="function"==typeof WeakSet?WeakSet:Set,ln=null,li=null,lr=!1,la=null,ls=8192,lo={getCacheForType:function(e){var t=Q(oh),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Q(oh).controller.signal}},ll=0,lu=1,lc=2,lh=3,ld=4;if("function"==typeof Symbol&&Symbol.for){var lp=Symbol.for;ll=lp("selector.component"),lu=lp("selector.has_pseudo_class"),lc=lp("selector.role"),lh=lp("selector.test_id"),ld=lp("selector.text")}var lf="function"==typeof WeakMap?WeakMap:Map,lm=0,lg=null,lv=null,l_=0,ly=0,lx=null,lb=!1,lS=!1,lM=!1,lT=0,lw=0,lE=0,lA=0,lC=0,lR=0,lP=0,lI=null,lL=null,lN=!1,lU=0,lD=0,lO=1/0,lF=null,lz=null,lB=0,lk=null,lH=null,lV=0,lG=0,lW=null,lj=null,lX=0,lq=null;return rt.attemptContinuousHydration=function(e){if(13===e.tag||31===e.tag){var t=eP(e,0x4000000);null!==t&&i_(t,e,0x4000000),re(e,0x4000000)}},rt.attemptHydrationAtCurrentPriority=function(e){if(13===e.tag||31===e.tag){var t=ig(),n=eP(e,t=b(t));null!==n&&i_(n,e,t),re(e,t)}},rt.attemptSynchronousHydration=function(e){switch(e.tag){case 3:if((e=e.stateNode).current.memoizedState.isDehydrated){var t=d(e.pendingLanes);if(0!==t){for(e.pendingLanes|=2,e.entangledLanes|=2;t;){var n=1<<31-sE(t);e.entanglements[1]|=n,t&=~n}ea(e),(6&lm)==0&&(lO=sO()+500,es(0,!1))}}break;case 31:case 13:null!==(t=eP(e,2))&&i_(t,e,2),iS(),re(e,2)}},rt.batchedUpdates=function(e,t){return e(t)},rt.createComponentSelector=function(e){return{$$typeof:ll,value:e}},rt.createContainer=function(e,t,n,i,r,a,s,o,l,u){return i6(e,t,!1,null,n,i,a,null,s,o,l,u)},rt.createHasPseudoClassSelector=function(e){return{$$typeof:lu,value:e}},rt.createHydrationContainer=function(e,t,n,i,r,a,s,o,l,u,c,h,d,p){var f;return(e=i6(n,i,!0,e,r,a,o,p,l,u,c,h)).context=sw,n=e.current,(r=eD(i=b(i=ig()))).callback=null!=(f=t)?f:null,eO(n,r,i),t=i,e.current.lanes=t,v(e,t),ea(e),e},rt.createPortal=function(e,t,n){var i=3=c&&s>=d&&a<=h&&o<=p){e.splice(t,1);break}if(r!==c||n.width!==u.width||po){if(!(s!==d||n.height!==u.height||ha)){c>r&&(u.width+=c-r,u.x=r),hs&&(u.height+=d-s,u.y=s),pn&&(n=l)),l ")+` + +No matching component was found for: + `+e.join(" > ")}return null},rt.getPublicRootInstance=function(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 27:case 5:return rA(e.child.stateNode);default:return e.child.stateNode}},rt.injectIntoDevTools=function(){var e={bundleType:0,version:rT,rendererPackageName:rw,currentDispatcherRef:rM,reconcilerVersion:"19.2.0"};if(null!==rE&&(e.rendererConfig=rE),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)e=!0;else{try{sG=t.inject(e),sW=t}catch{}e=!!t.checkDCE}}return e},rt.isAlreadyRendering=function(){return(6&lm)!=0},rt.observeVisibleRects=function(e,t,n,r){if(!r7)throw Error(i(363));var a=as(e=im(e,t),n,r).disconnect;return{disconnect:function(){a()}}},rt.shouldError=function(){return null},rt.shouldSuspend=function(){return!1},rt.startHostTransition=function(e,t,r,a){if(5!==e.tag)throw Error(i(476));var s=tW(e).queue;tG(e,s,t,r4,null===r?n:function(){var t=tW(e);return null===t.next&&(t=e.alternate.memoizedState),tK(e,t.next.queue,{},ig()),r(a)})},rt.updateContainer=function(e,t,n,i){var r=t.current,a=ig();return i9(r,a,e,t,n,i),a},rt.updateContainerSync=function(e,t,n,i){return i9(t.current,2,e,t,n,i),2},rt},cG.exports.default=cG.exports,Object.defineProperty(cG.exports,"__esModule",{value:!0})),cV.exports=cG.exports),(b=cV.exports)&&b.__esModule&&Object.prototype.hasOwnProperty.call(b,"default"))?b.default:b,cj={},cX=/^three(?=[A-Z])/,cq=e=>`${e[0].toUpperCase()}${e.slice(1)}`,cY=0;function cZ(e){if("function"==typeof e){let t=`${cY++}`;return cj[t]=e,t}Object.assign(cj,e)}function cJ(e,t){let n=cq(e),i=cj[n];if("primitive"!==e&&!i)throw Error(`R3F: ${n} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if("primitive"===e&&!t.object)throw Error("R3F: Primitives without 'object' are invalid!");if(void 0!==t.args&&!Array.isArray(t.args))throw Error("R3F: The args prop must be an array!")}function cK(e){if(e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?cS(e.parent,e):cI(e.object)&&!1!==e.props.visible&&(e.object.visible=!0),e.isHidden=!1,cR(e)}}function c$(e,t,n){let i=t.root.getState();if(e.parent||e.object===i.scene){if(!t.object){var r,a;let e=cj[cq(t.type)];t.object=null!=(r=t.props.object)?r:new e(...null!=(a=t.props.args)?a:[]),t.object.__r3f=t}if(cC(t.object,t.props),t.props.attach)cS(e,t);else if(cI(t.object)&&cI(e.object)){let i=e.object.children.indexOf(null==n?void 0:n.object);if(n&&-1!==i){let n=e.object.children.indexOf(t.object);-1!==n?(e.object.children.splice(n,1),e.object.children.splice(n{try{e.dispose()}catch{}};"u">typeof IS_REACT_ACT_ENVIRONMENT?t():(0,u8.unstable_scheduleCallback)(u8.unstable_IdlePriority,t)}}function c2(e,t,n){if(!t)return;t.parent=null;let i=e.children.indexOf(t);-1!==i&&e.children.splice(i,1),t.props.attach?cM(e,t):cI(t.object)&&cI(e.object)&&(e.object.remove(t.object),function(e,t){let{internal:n}=e.getState();n.interaction=n.interaction.filter(e=>e!==t),n.initialHits=n.initialHits.filter(e=>e!==t),n.hovered.forEach((e,i)=>{(e.eventObject===t||e.object===t)&&n.hovered.delete(i)}),n.capturedMap.forEach((e,i)=>{cN(n.capturedMap,t,e,i)})}(co(t),t.object));let r=null!==t.props.dispose&&!1!==n;for(let e=t.children.length-1;e>=0;e--){let n=t.children[e];c2(t,n,r)}t.children.length=0,delete t.object.__r3f,r&&"primitive"!==t.type&&"Scene"!==t.object.type&&c1(t.object),void 0===n&&cR(t)}let c3=[],c4=()=>{},c5={},c6=0,c8=(S={isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:function(e,t,n){var i;return cJ(e=cq(e)in cj?e:e.replace(cX,""),t),"primitive"===e&&null!=(i=t.object)&&i.__r3f&&delete t.object.__r3f,cy(t.object,n,e,t)},removeChild:c2,appendChild:cQ,appendInitialChild:cQ,insertBefore:c0,appendChildToContainer(e,t){let n=e.getState().scene.__r3f;t&&n&&cQ(n,t)},removeChildFromContainer(e,t){let n=e.getState().scene.__r3f;t&&n&&c2(n,t)},insertInContainerBefore(e,t,n){let i=e.getState().scene.__r3f;t&&n&&i&&c0(i,t,n)},getRootHostContext:()=>c5,getChildHostContext:()=>c5,commitUpdate(e,t,n,i,r){var a,s,o;cJ(t,i);let l=!1;if("primitive"===e.type&&n.object!==i.object||(null==(a=i.args)?void 0:a.length)!==(null==(s=n.args)?void 0:s.length)?l=!0:null!=(o=i.args)&&o.some((e,t)=>{var i;return e!==(null==(i=n.args)?void 0:i[t])})&&(l=!0),l)c3.push([e,{...i},r]);else{let t=function(e,t){let n={};for(let i in t)if(!cT.includes(i)&&!cv.equ(t[i],e.props[i]))for(let e in n[i]=t[i],t)e.startsWith(`${i}-`)&&(n[e]=t[e]);for(let i in e.props){if(cT.includes(i)||t.hasOwnProperty(i))continue;let{root:r,key:a}=cx(e.object,i);if(r.constructor&&0===r.constructor.length){let e=function(e){let t=cw.get(e.constructor);try{t||(t=new e.constructor,cw.set(e.constructor,t))}catch(e){}return t}(r);cv.und(e)||(n[a]=e[a])}else n[a]=0}return n}(e,i);Object.keys(t).length&&(Object.assign(e.props,t),cC(e.object,t))}(null===r.sibling||(4&r.flags)==0)&&function(){for(let[e]of c3){let t=e.parent;if(t)for(let n of(e.props.attach?cM(t,e):cI(e.object)&&cI(t.object)&&t.object.remove(e.object),e.children))n.props.attach?cM(e,n):cI(n.object)&&cI(e.object)&&e.object.remove(n.object);e.isHidden&&cK(e),e.object.__r3f&&delete e.object.__r3f,"primitive"!==e.type&&c1(e.object)}for(let[i,r,a]of c3){i.props=r;let s=i.parent;if(s){let r=cj[cq(i.type)],o=i.object;i.object=null!=(e=i.props.object)?e:new r(...null!=(t=i.props.args)?t:[]),i.object.__r3f=i;var e,t,n=i.object;for(let e of[a,a.alternate])if(null!==e)if("function"==typeof e.ref){null==e.refCleanup||e.refCleanup();let t=e.ref(n);"function"==typeof t&&(e.refCleanup=t)}else e.ref&&(e.ref.current=n);for(let e of(!function(e,t,n){let{internal:i}=e.getState();for(let e=0;e{if(e.eventObject===t||e.object===t){i.hovered.delete(r);let a={...e,eventObject:e.eventObject===t?n:e.eventObject,object:e.object===t?n:e.object};i.hovered.set(cL(a),a)}}),i.capturedMap.forEach(e=>{let i=e.get(t);i&&(e.delete(t),e.set(n,i))})}(co(i),o,i.object),cC(i.object,i.props),i.props.attach?cS(s,i):cI(i.object)&&cI(s.object)&&s.object.add(i.object),i.children))e.props.attach?cS(i,e):cI(e.object)&&cI(i.object)&&i.object.add(e.object);cR(i)}}c3.length=0}()},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:e=>null==e?void 0:e.object,prepareForCommit:()=>null,preparePortalMount:e=>cy(e.getState().scene,e,"",{}),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:function(e){if(!e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?cM(e.parent,e):cI(e.object)&&(e.object.visible=!1),e.isHidden=!0,cR(e)}},unhideInstance:cK,createTextInstance:c4,hideTextInstance:c4,unhideTextInstance:c4,scheduleTimeout:"function"==typeof setTimeout?setTimeout:void 0,cancelTimeout:"function"==typeof clearTimeout?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:E.createContext(null),setCurrentUpdatePriority(e){c6=e},getCurrentUpdatePriority:()=>c6,resolveUpdatePriority(){var e;if(0!==c6)return c6;switch("u">typeof window&&(null==(e=window.event)?void 0:e.type)){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return 2;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return 8;default:return 32}},resetFormInstance(){},rendererPackageName:"@react-three/fiber",rendererVersion:"9.6.1",applyViewTransitionName(e,t,n){},restoreViewTransitionName(e,t){},cancelViewTransitionName(e,t,n){},cancelRootViewTransitionName(e){},restoreRootViewTransitionName(e){},InstanceMeasurement:null,measureInstance:e=>null,wasInstanceInViewport:e=>!0,hasInstanceChanged:(e,t)=>!1,hasInstanceAffectedParent:(e,t)=>!1,suspendOnActiveViewTransition(e,t){},startGestureTransition:()=>null,startViewTransition:()=>null,stopViewTransition(e){},createViewTransitionInstance:e=>null,getCurrentGestureOffset(e){throw Error("startGestureTransition is not yet supported in react-three-fiber.")},cloneMutableInstance:(e,t)=>e,cloneMutableTextInstance:e=>e,cloneRootViewTransitionContainer(e){throw Error("Not implemented.")},removeRootViewTransitionClone(e,t){throw Error("Not implemented.")},createFragmentInstance:e=>null,updateFragmentInstanceFiber(e,t){},commitNewChildToFragmentInstance(e,t){},deleteChildFromFragmentInstance(e,t){},measureClonedInstance:e=>null,maySuspendCommitOnUpdate:(e,t,n)=>!1,maySuspendCommitInSyncRender:(e,t)=>!1,startSuspendingCommit:()=>null,getSuspendedCommitReason:(e,t)=>null},(_=cW(S)).injectIntoDevTools(),_),c9=new Map,c7={objects:"shallow",strict:!1};function he(e){var t,n;let i,r,a,s,o,l,u,c=c9.get(e),h=null==c?void 0:c.fiber,d=null==c?void 0:c.store;c&&console.warn("R3F.createRoot should only be called once!");let p="function"==typeof reportError?reportError:console.error,f=d||(t=hp,n=hf,o=(s=(a=u3((e,i)=>{let r,a=new eE,s=new eE,o=new eE;function l(e=i().camera,t=s,n=i().size){let{width:r,height:u,top:c,left:h}=n,d=r/u;t.isVector3?o.copy(t):o.set(...t);let p=e.getWorldPosition(a).distanceTo(o);if(e&&e.isOrthographicCamera)return{width:r/e.zoom,height:u/e.zoom,top:c,left:h,factor:1,distance:p,aspect:d};{let t=2*Math.tan(e.fov*Math.PI/180/2)*p,n=r/u*t;return{width:n,height:t,top:c,left:h,factor:r/n,distance:p,aspect:d}}}let u=t=>e(e=>({performance:{...e.performance,current:t}})),c=new Y;return{set:e,get:i,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(e=1)=>t(i(),e),advance:(e,t)=>n(e,t,i()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new sw,pointer:c,mouse:c,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{let e=i();r&&clearTimeout(r),e.performance.current!==e.performance.min&&u(e.performance.min),r=setTimeout(()=>u(i().performance.max),e.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:l},setEvents:t=>e(e=>({...e,events:{...e.events,...t}})),setSize:(t,n,r=0,a=0)=>{let o=i().camera,u={width:t,height:n,top:r,left:a};e(e=>({size:u,viewport:{...e.viewport,...l(o,s,u)}}))},setDpr:t=>e(e=>{let n=cm(t);return{viewport:{...e.viewport,dpr:n,initialDpr:e.viewport.initialDpr||n}}}),setFrameloop:(t="always")=>{let n=i().clock;n.stop(),n.elapsedTime=0,"never"!==t&&(n.start(),n.elapsedTime=0),e(()=>({frameloop:t}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:E.createRef(),active:!1,frames:0,priority:0,subscribe:(e,t,n)=>{let r=i().internal;return r.priority=r.priority+ +(t>0),r.subscribers.push({ref:e,priority:t,store:n}),r.subscribers=r.subscribers.sort((e,t)=>e.priority-t.priority),()=>{let n=i().internal;null!=n&&n.subscribers&&(n.priority=n.priority-(t>0),n.subscribers=n.subscribers.filter(t=>t.ref!==e))}}}}})).getState()).size,l=s.viewport.dpr,u=s.camera,a.subscribe(()=>{let{camera:e,size:t,viewport:n,gl:i,set:r}=a.getState();if(t.width!==o.width||t.height!==o.height||n.dpr!==l){o=t,l=n.dpr,cP(e,t),n.dpr>0&&i.setPixelRatio(n.dpr);let r="u">typeof HTMLCanvasElement&&i.domElement instanceof HTMLCanvasElement;i.setSize(t.width,t.height,r)}e!==u&&(u=e,r(t=>({viewport:{...t.viewport,...t.viewport.getCurrentViewport(e)}})))}),a.subscribe(e=>t(e)),a),m=h||c8.createContainer(f,1,null,!1,null,"",p,p,p,null);c||c9.set(e,{fiber:m,store:f});let g=!1,v=null;return{async configure(t={}){var n,a;let s;v=new Promise(e=>s=e);let{gl:o,size:l,scene:u,events:c,onCreated:h,shadows:d=!1,linear:p=!1,flat:m=!1,legacy:_=!1,orthographic:y=!1,frameloop:x="always",dpr:b=[1,2],performance:S,raycaster:M,camera:T,onPointerMissed:w}=t,E=f.getState(),A=E.gl;if(!E.gl){let t={canvas:e,powerPreference:"high-performance",antialias:!0,alpha:!0},n="function"==typeof o?await o(t):o;A=cU(n)?n:new uK({...t,...o}),E.set({gl:A})}let C=E.raycaster;C||E.set({raycaster:C=new s3});let{params:R,...P}=M||{};if(cv.equ(P,C,c7)||cC(C,{...P}),cv.equ(R,C.params,c7)||cC(C,{params:{...C.params,...R}}),!E.camera||E.camera===r&&!cv.equ(r,T,c7)){r=T;let e=null==T?void 0:T.isCamera,t=e?T:y?new sn(0,0,0,0,.1,1e3):new nE(75,0,.1,1e3);!e&&(t.position.z=5,T&&(cC(t,T),!t.manual&&("aspect"in T||"left"in T||"right"in T||"bottom"in T||"top"in T)&&(t.manual=!0,t.updateProjectionMatrix())),E.camera||null!=T&&T.rotation||t.lookAt(0,0,0)),E.set({camera:t}),C.camera=t}if(!E.scene){let e;null!=u&&u.isScene?cy(e=u,f,"",{}):(cy(e=new nL,f,"",{}),u&&cC(e,u)),E.set({scene:e})}c&&!E.events.handlers&&E.set({events:c(f)});let N=function(e,t){if(!t&&"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&e.parentElement){let{width:t,height:n,top:i,left:r}=e.parentElement.getBoundingClientRect();return{width:t,height:n,top:i,left:r}}return!t&&"u">typeof OffscreenCanvas&&e instanceof OffscreenCanvas?{width:e.width,height:e.height,top:0,left:0}:{width:0,height:0,top:0,left:0,...t}}(e,l);if(cv.equ(N,E.size,c7)||E.setSize(N.width,N.height,N.top,N.left),b&&E.viewport.dpr!==cm(b)&&E.setDpr(b),E.frameloop!==x&&E.setFrameloop(x),E.onPointerMissed||E.set({onPointerMissed:w}),S&&!cv.equ(S,E.performance,c7)&&E.set(e=>({performance:{...e.performance,...S}})),!E.xr){let e=(e,t)=>{let n=f.getState();"never"!==n.frameloop&&hf(e,!0,n,t)},t=()=>{let t=f.getState();t.gl.xr.enabled=t.gl.xr.isPresenting,t.gl.xr.setAnimationLoop(t.gl.xr.isPresenting?e:null),t.gl.xr.isPresenting||hp(t)},i={connect(){let e=f.getState().gl;e.xr.addEventListener("sessionstart",t),e.xr.addEventListener("sessionend",t)},disconnect(){let e=f.getState().gl;e.xr.removeEventListener("sessionstart",t),e.xr.removeEventListener("sessionend",t)}};"function"==typeof(null==(n=A.xr)?void 0:n.addEventListener)&&i.connect(),E.set({xr:i})}if(A.shadowMap){let e=A.shadowMap.enabled,t=A.shadowMap.type;A.shadowMap.enabled=!!d,cv.boo(d)?A.shadowMap.type=2:cv.str(d)?A.shadowMap.type=null!=(a=({basic:0,percentage:1,soft:2,variance:3})[d])?a:2:cv.obj(d)&&Object.assign(A.shadowMap,d),(e!==A.shadowMap.enabled||t!==A.shadowMap.type)&&(A.shadowMap.needsUpdate=!0)}return eu.enabled=!_,g||(A.outputColorSpace=p?L:I,A.toneMapping=4*!m),E.legacy!==_&&E.set(()=>({legacy:_})),E.linear!==p&&E.set(()=>({linear:p})),E.flat!==m&&E.set(()=>({flat:m})),!o||cv.fun(o)||cU(o)||cv.equ(o,A,c7)||cC(A,o),i=h,g=!0,s(),this},render(t){return g||v||this.configure(),v.then(()=>{c8.updateContainer((0,u9.jsx)(ht,{store:f,children:t,onCreated:i,rootElement:e}),m,null,()=>void 0)}),f},unmount(){hn(e)}}}function ht({store:e,children:t,onCreated:n,rootElement:i}){return cc(()=>{let t=e.getState();t.set(e=>({internal:{...e.internal,active:!0}})),n&&n(t),e.getState().events.connected||null==t.events.connect||t.events.connect(i)},[]),(0,u9.jsx)(cD.Provider,{value:e,children:t})}function hn(e,t){let n=c9.get(e),i=null==n?void 0:n.fiber;if(i){let r=null==n?void 0:n.store.getState();r&&(r.internal.active=!1),c8.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{null==r.events.disconnect||r.events.disconnect(),null==(n=r.gl)||null==(i=n.renderLists)||null==i.dispose||i.dispose(),null==(a=r.gl)||null==a.forceContextLoss||a.forceContextLoss(),null!=(s=r.gl)&&s.xr&&r.xr.disconnect();var n,i,a,s,o=r.scene;for(let e in"Scene"!==o.type&&(null==o.dispose||o.dispose()),o){let t=o[e];(null==t?void 0:t.type)!=="Scene"&&(null==t||null==t.dispose||t.dispose())}c9.delete(e),t&&t(e)}catch(e){}},500)})}}function hi({state:e={},children:t,container:n}){let{events:i,size:r,...a}=e,s=cO(),[o]=E.useState(()=>new s3),[l]=E.useState(()=>new Y),u=ch((e,t)=>{let a;if(t.camera&&r){let n=t.camera;a=e.viewport.getCurrentViewport(n,new eE,r),n!==e.camera&&cP(n,r)}return{...e,...t,scene:n,raycaster:o,pointer:l,mouse:l,previousRoot:s,events:{...e.events,...t.events,...i},size:{...e.size,...r},viewport:{...e.viewport,...a},setEvents:e=>t.set(t=>({...t,events:{...t.events,...e}}))}}),c=E.useMemo(()=>{let e=u3((e,t)=>({...a,set:e,get:t})),t=t=>e.setState(e=>u.current(t,e));return t(s.getState()),s.subscribe(t),e},[s,n]);return(0,u9.jsx)(u9.Fragment,{children:c8.createPortal((0,u9.jsx)(cD.Provider,{value:c,children:t}),c,null)})}let hr=new Set,ha=new Set,hs=new Set;function ho(e,t){if(e.size)for(let{callback:n}of e.values())n(t)}function hl(e,t){switch(e){case"before":return ho(hr,t);case"after":return ho(ha,t);case"tail":return ho(hs,t)}}function hu(e,t,n){let i=t.clock.getDelta();"never"===t.frameloop&&"number"==typeof e&&(i=e-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=e),s=t.internal.subscribers;for(let e=0;e0)&&!(null!=(t=c.gl.xr)&&t.isPresenting)&&(l+=hu(e,c))}if(hh=!1,hl("after",e),0===l)return hl("tail",e),hc=!1,cancelAnimationFrame(u)}function hp(e,t=1){var n;if(!e)return c9.forEach(e=>hp(e.store.getState(),t));(null==(n=e.gl.xr)||!n.isPresenting)&&e.internal.active&&"never"!==e.frameloop&&(t>1?e.internal.frames=Math.min(60,e.internal.frames+t):hh?e.internal.frames=2:e.internal.frames=1,hc||(hc=!0,requestAnimationFrame(hd)))}function hf(e,t=!0,n,i){if(t&&hl("before",e),n)hu(e,n,i);else for(let t of c9.values())hu(e,t.store.getState());t&&hl("after",e)}let hm={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function hg(e){let{handlePointer:t}=function(e){function t(e){return e.filter(e=>["Move","Over","Enter","Out","Leave"].some(t=>{var n;return null==(n=e.__r3f)?void 0:n.handlers["onPointer"+t]}))}function n(t){let{internal:n}=e.getState();for(let e of n.hovered.values())if(!t.length||!t.find(t=>t.object===e.object&&t.index===e.index&&t.instanceId===e.instanceId)){let i=e.eventObject.__r3f;if(n.hovered.delete(cL(e)),null!=i&&i.eventCount){let n=i.handlers,r={...e,intersections:t};null==n.onPointerOut||n.onPointerOut(r),null==n.onPointerLeave||n.onPointerLeave(r)}}}function i(e,t){for(let n=0;nn([]);case"onLostPointerCapture":return t=>{let{internal:i}=e.getState();"pointerId"in t&&i.capturedMap.has(t.pointerId)&&requestAnimationFrame(()=>{i.capturedMap.has(t.pointerId)&&(i.capturedMap.delete(t.pointerId),n([]))})}}return function(a){let{onPointerMissed:s,internal:o}=e.getState();o.lastEvent.current=a;let l="onPointerMove"===r,u="onClick"===r||"onContextMenu"===r||"onDoubleClick"===r,c=function(t,n){let i=e.getState(),r=new Set,a=[],s=n?n(i.internal.interaction):i.internal.interaction;for(let e=0;e{let n=cg(e.object),i=cg(t.object);return n&&i&&i.events.priority-n.events.priority||e.distance-t.distance}).filter(e=>{let t=cL(e);return!r.has(t)&&(r.add(t),!0)});for(let e of(i.events.filter&&(o=i.events.filter(o,i)),o)){let t=e.object;for(;t;){var l;null!=(l=t.__r3f)&&l.eventCount&&a.push({...e,eventObject:t}),t=t.parent}}if("pointerId"in t&&i.internal.capturedMap.has(t.pointerId))for(let e of i.internal.capturedMap.get(t.pointerId).values())r.has(cL(e.intersection))||a.push(e.intersection);return a}(a,l?t:void 0),h=u?function(t){let{internal:n}=e.getState(),i=t.offsetX-n.initialClick[0],r=t.offsetY-n.initialClick[1];return Math.round(Math.sqrt(i*i+r*r))}(a):0;"onPointerDown"===r&&(o.initialClick=[a.offsetX,a.offsetY],o.initialHits=c.map(e=>e.eventObject)),u&&!c.length&&h<=2&&(i(a,o.interaction),s&&s(a)),l&&n(c),!function(e,t,i,r){if(e.length){let a={stopped:!1};for(let s of e){let o=cg(s.object);if(o||s.object.traverseAncestors(e=>{let t=cg(e);if(t)return o=t,!1}),o){let{raycaster:l,pointer:u,camera:c,internal:h}=o,d=new eE(u.x,u.y,0).unproject(c),p=e=>{var t,n;return null!=(t=null==(n=h.capturedMap.get(e))?void 0:n.has(s.eventObject))&&t},f=e=>{let n={intersection:s,target:t.target};h.capturedMap.has(e)?h.capturedMap.get(e).set(s.eventObject,n):h.capturedMap.set(e,new Map([[s.eventObject,n]])),t.target.setPointerCapture(e)},m=e=>{let t=h.capturedMap.get(e);t&&cN(h.capturedMap,s.eventObject,t,e)},g={};for(let e in t){let n=t[e];"function"!=typeof n&&(g[e]=n)}let v={...s,...g,pointer:u,intersections:e,stopped:a.stopped,delta:i,unprojectedPoint:d,ray:l.ray,camera:c,stopPropagation(){let i="pointerId"in t&&h.capturedMap.get(t.pointerId);(!i||i.has(s.eventObject))&&(v.stopped=a.stopped=!0,h.hovered.size&&Array.from(h.hovered.values()).find(e=>e.eventObject===s.eventObject)&&n([...e.slice(0,e.indexOf(s)),s]))},target:{hasPointerCapture:p,setPointerCapture:f,releasePointerCapture:m},currentTarget:{hasPointerCapture:p,setPointerCapture:f,releasePointerCapture:m},nativeEvent:t};if(r(v),!0===a.stopped)break}}}}(c,a,h,function(e){let t=e.eventObject,n=t.__r3f;if(!(null!=n&&n.eventCount))return;let s=n.handlers;if(l){if(s.onPointerOver||s.onPointerEnter||s.onPointerOut||s.onPointerLeave){let t=cL(e),n=o.hovered.get(t);n?n.stopped&&e.stopPropagation():(o.hovered.set(t,e),null==s.onPointerOver||s.onPointerOver(e),null==s.onPointerEnter||s.onPointerEnter(e))}null==s.onPointerMove||s.onPointerMove(e)}else{let n=s[r];n?(!u||o.initialHits.includes(t))&&(i(a,o.interaction.filter(e=>!o.initialHits.includes(e))),n(e)):u&&o.initialHits.includes(t)&&i(a,o.interaction.filter(e=>!o.initialHits.includes(e)))}})}}}}(e);return{priority:1,enabled:!0,compute(e,t,n){t.pointer.set(e.offsetX/t.size.width*2-1,-(2*(e.offsetY/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)},connected:void 0,handlers:Object.keys(hm).reduce((e,n)=>({...e,[n]:t(n)}),{}),update:()=>{var t;let{events:n,internal:i}=e.getState();null!=(t=i.lastEvent)&&t.current&&n.handlers&&n.handlers.onPointerMove(i.lastEvent.current)},connect:t=>{let{set:n,events:i}=e.getState();if(null==i.disconnect||i.disconnect(),n(e=>({events:{...e.events,connected:t}})),i.handlers)for(let e in i.handlers){let n=i.handlers[e],[r,a]=hm[e];t.addEventListener(r,n,{passive:a})}},disconnect:()=>{let{set:t,events:n}=e.getState();if(n.connected){if(n.handlers)for(let e in n.handlers){let t=n.handlers[e],[i]=hm[e];n.connected.removeEventListener(i,t)}t(e=>({events:{...e.events,connected:void 0}}))}}}}e.s(["B",0,cp,"C",0,cF,"D",0,cz,"E",0,cf,"G",0,cH,"a",0,ch,"b",0,cc,"c",0,he,"d",0,hn,"e",0,cZ,"f",0,hg,"i",0,cl,"o",0,function(e,t,n){return(0,u9.jsx)(hi,{children:e,container:t,state:n})},"s",0,cC,"u",0,cd],1950),e.i(8560),e.s(["ACESFilmicToneMapping",0,4,"AddEquation",0,100,"AddOperation",0,2,"AdditiveAnimationBlendMode",0,2501,"AdditiveBlending",0,2,"AgXToneMapping",0,6,"AlphaFormat",0,1021,"AlwaysCompare",0,519,"AlwaysDepth",0,1,"AlwaysStencilFunc",0,519,"AmbientLight",0,sa,"AnimationAction",0,sY,"AnimationClip",0,aB,"AnimationLoader",0,aq,"AnimationMixer",0,sJ,"AnimationObjectGroup",0,sq,"AnimationUtils",0,aE,"ArcCurve",0,rs,"ArrayCamera",0,sT,"ArrowHelper",0,oP,"AttachedBindMode",0,R,"Audio",0,sL,"AudioAnalyser",0,sz,"AudioContext",0,s_,"AudioListener",0,sI,"AudioLoader",0,sy,"AxesHelper",0,oI,"BackSide",0,1,"BasicDepthPacking",0,3200,"BasicShadowMap",0,0,"BatchedMesh",0,iz,"Bone",0,ie,"BooleanKeyframeTrack",0,aL,"Box2",0,oe,"Box3",0,eR,"Box3Helper",0,oA,"BoxGeometry",0,ng,"BoxHelper",0,oE,"BufferAttribute",0,tZ,"BufferGeometry",0,nn,"BufferGeometryLoader",0,sd,"ByteType",0,1010,"Cache",0,ak,"Camera",0,nS,"CameraHelper",0,oM,"CanvasTexture",0,rn,"CapsuleGeometry",0,rA,"CatmullRomCurve3",0,rd,"CineonToneMapping",0,3,"CircleGeometry",0,rC,"ClampToEdgeWrapping",0,1001,"Clock",0,sw,"Color",0,tz,"ColorKeyframeTrack",0,aN,"ColorManagement",0,eu,"CompressedArrayTexture",0,re,"CompressedCubeTexture",0,rt,"CompressedTexture",0,i7,"CompressedTextureLoader",0,aY,"ConeGeometry",0,rP,"ConstantAlphaFactor",0,213,"ConstantColorFactor",0,211,"Controls",0,oN,"CubeCamera",0,nA,"CubeReflectionMapping",0,301,"CubeRefractionMapping",0,302,"CubeTexture",0,nC,"CubeTextureLoader",0,aJ,"CubeUVReflectionMapping",0,306,"CubicBezierCurve",0,rg,"CubicBezierCurve3",0,rv,"CubicInterpolant",0,aC,"CullFaceBack",0,1,"CullFaceFront",0,2,"CullFaceFrontBack",0,3,"CullFaceNone",0,0,"Curve",0,rr,"CurvePath",0,rT,"CustomBlending",0,5,"CustomToneMapping",0,5,"CylinderGeometry",0,rR,"Cylindrical",0,s8,"Data3DTexture",0,eM,"DataArrayTexture",0,eb,"DataTexture",0,it,"DataTextureLoader",0,aK,"DataUtils",0,tX,"DecrementStencilOp",0,7683,"DecrementWrapStencilOp",0,34056,"DefaultLoadingManager",0,aV,"DepthFormat",0,1026,"DepthStencilFormat",0,1027,"DepthTexture",0,ri,"DetachedBindMode",0,P,"DirectionalLight",0,sr,"DirectionalLightHelper",0,ox,"DiscreteInterpolant",0,aP,"DodecahedronGeometry",0,rL,"DoubleSide",0,2,"DstAlphaFactor",0,206,"DstColorFactor",0,208,"DynamicCopyUsage",0,35050,"DynamicDrawUsage",0,35048,"DynamicReadUsage",0,35049,"EdgesGeometry",0,rF,"EllipseCurve",0,ra,"EqualCompare",0,514,"EqualDepth",0,4,"EqualStencilFunc",0,514,"EquirectangularReflectionMapping",0,303,"EquirectangularRefractionMapping",0,304,"Euler",0,tn,"EventDispatcher",0,O,"ExtrudeGeometry",0,r4,"FileLoader",0,aX,"Float16BufferAttribute",0,t3,"Float32BufferAttribute",0,t4,"FloatType",0,1015,"Fog",0,nI,"FogExp2",0,nP,"FramebufferTexture",0,i9,"FrontSide",0,0,"Frustum",0,iS,"GLBufferAttribute",0,s1,"GLSL1",0,"100","GLSL3",0,D,"GreaterCompare",0,516,"GreaterDepth",0,6,"GreaterEqualCompare",0,518,"GreaterEqualDepth",0,5,"GreaterEqualStencilFunc",0,518,"GreaterStencilFunc",0,516,"GridHelper",0,om,"Group",0,i6,"HalfFloatType",0,1016,"HemisphereLight",0,a0,"HemisphereLightHelper",0,of,"IcosahedronGeometry",0,r6,"ImageBitmapLoader",0,sv,"ImageLoader",0,aZ,"ImageUtils",0,ed,"IncrementStencilOp",0,7682,"IncrementWrapStencilOp",0,34055,"InstancedBufferAttribute",0,is,"InstancedBufferGeometry",0,sh,"InstancedInterleavedBuffer",0,s0,"InstancedMesh",0,im,"Int16BufferAttribute",0,tQ,"Int32BufferAttribute",0,t1,"Int8BufferAttribute",0,tJ,"IntType",0,1013,"InterleavedBuffer",0,nN,"InterleavedBufferAttribute",0,nD,"Interpolant",0,aA,"InterpolateDiscrete",0,2300,"InterpolateLinear",0,2301,"InterpolateSmooth",0,2302,"InvertStencilOp",0,5386,"KeepStencilOp",0,7680,"KeyframeTrack",0,aI,"LOD",0,nQ,"LatheGeometry",0,rE,"Layers",0,ti,"LessCompare",0,513,"LessDepth",0,2,"LessEqualCompare",0,515,"LessEqualDepth",0,3,"LessEqualStencilFunc",0,515,"LessStencilFunc",0,513,"Light",0,aQ,"LightProbe",0,sl,"Line",0,iq,"Line3",0,oi,"LineBasicMaterial",0,iB,"LineCurve",0,r_,"LineCurve3",0,ry,"LineDashedMaterial",0,ax,"LineLoop",0,i$,"LineSegments",0,iK,"LinearFilter",0,1006,"LinearInterpolant",0,aR,"LinearMipMapLinearFilter",0,1008,"LinearMipMapNearestFilter",0,1007,"LinearMipmapLinearFilter",0,1008,"LinearMipmapNearestFilter",0,1007,"LinearSRGBColorSpace",0,L,"LinearToneMapping",0,1,"LinearTransfer",0,N,"Loader",0,aG,"LoaderUtils",0,sc,"LoadingManager",0,aH,"LoopOnce",0,2200,"LoopPingPong",0,2202,"LoopRepeat",0,2201,"LuminanceAlphaFormat",0,1025,"LuminanceFormat",0,1024,"MOUSE",0,A,"Material",0,tH,"MaterialLoader",0,su,"MathUtils",0,q,"Matrix2",0,s9,"Matrix3",0,Z,"Matrix4",0,e2,"MaxEquation",0,104,"Mesh",0,nf,"MeshBasicMaterial",0,tV,"MeshDepthMaterial",0,av,"MeshDistanceMaterial",0,a_,"MeshLambertMaterial",0,ag,"MeshMatcapMaterial",0,ay,"MeshNormalMaterial",0,am,"MeshPhongMaterial",0,ap,"MeshPhysicalMaterial",0,ad,"MeshStandardMaterial",0,ah,"MeshToonMaterial",0,af,"MinEquation",0,103,"MirroredRepeatWrapping",0,1002,"MixOperation",0,1,"MultiplyBlending",0,4,"MultiplyOperation",0,0,"NearestFilter",0,1003,"NearestMipMapLinearFilter",0,1005,"NearestMipMapNearestFilter",0,1004,"NearestMipmapLinearFilter",0,1005,"NearestMipmapNearestFilter",0,1004,"NeutralToneMapping",0,7,"NeverCompare",0,512,"NeverDepth",0,0,"NeverStencilFunc",0,512,"NoBlending",0,0,"NoColorSpace",0,"","NoToneMapping",0,0,"NormalAnimationBlendMode",0,2500,"NormalBlending",0,1,"NotEqualCompare",0,517,"NotEqualDepth",0,7,"NotEqualStencilFunc",0,517,"NumberKeyframeTrack",0,aU,"Object3D",0,ty,"ObjectLoader",0,sp,"ObjectSpaceNormalMap",0,1,"OctahedronGeometry",0,r8,"OneFactor",0,201,"OneMinusConstantAlphaFactor",0,214,"OneMinusConstantColorFactor",0,212,"OneMinusDstAlphaFactor",0,207,"OneMinusDstColorFactor",0,209,"OneMinusSrcAlphaFactor",0,205,"OneMinusSrcColorFactor",0,203,"OrthographicCamera",0,sn,"PCFShadowMap",0,1,"PCFSoftShadowMap",0,2,"PMREMGenerator",0,o8,"Path",0,rw,"PerspectiveCamera",0,nE,"Plane",0,iy,"PlaneGeometry",0,r9,"PlaneHelper",0,oC,"PointLight",0,st,"PointLightHelper",0,oc,"Points",0,i4,"PointsMaterial",0,iQ,"PolarGridHelper",0,og,"PolyhedronGeometry",0,rI,"PositionalAudio",0,sF,"PropertyBinding",0,sX,"PropertyMixer",0,sB,"QuadraticBezierCurve",0,rx,"QuadraticBezierCurve3",0,rb,"Quaternion",0,ew,"QuaternionKeyframeTrack",0,aO,"QuaternionLinearInterpolant",0,aD,"RED_GREEN_RGTC2_Format",0,36285,"RED_RGTC1_Format",0,36283,"REVISION",0,"171","RGBADepthPacking",0,3201,"RGBAFormat",0,1023,"RGBAIntegerFormat",0,1033,"RGBA_ASTC_10x10_Format",0,37819,"RGBA_ASTC_10x5_Format",0,37816,"RGBA_ASTC_10x6_Format",0,37817,"RGBA_ASTC_10x8_Format",0,37818,"RGBA_ASTC_12x10_Format",0,37820,"RGBA_ASTC_12x12_Format",0,37821,"RGBA_ASTC_4x4_Format",0,37808,"RGBA_ASTC_5x4_Format",0,37809,"RGBA_ASTC_5x5_Format",0,37810,"RGBA_ASTC_6x5_Format",0,37811,"RGBA_ASTC_6x6_Format",0,37812,"RGBA_ASTC_8x5_Format",0,37813,"RGBA_ASTC_8x6_Format",0,37814,"RGBA_ASTC_8x8_Format",0,37815,"RGBA_BPTC_Format",0,36492,"RGBA_ETC2_EAC_Format",0,37496,"RGBA_PVRTC_2BPPV1_Format",0,35843,"RGBA_PVRTC_4BPPV1_Format",0,35842,"RGBA_S3TC_DXT1_Format",0,33777,"RGBA_S3TC_DXT3_Format",0,33778,"RGBA_S3TC_DXT5_Format",0,33779,"RGBDepthPacking",0,3202,"RGBFormat",0,1022,"RGBIntegerFormat",0,1032,"RGB_BPTC_SIGNED_Format",0,36494,"RGB_BPTC_UNSIGNED_Format",0,36495,"RGB_ETC1_Format",0,36196,"RGB_ETC2_Format",0,37492,"RGB_PVRTC_2BPPV1_Format",0,35841,"RGB_PVRTC_4BPPV1_Format",0,35840,"RGB_S3TC_DXT1_Format",0,33776,"RGDepthPacking",0,3203,"RGFormat",0,1030,"RGIntegerFormat",0,1031,"RawShaderMaterial",0,ac,"Ray",0,e1,"Raycaster",0,s3,"RectAreaLight",0,ss,"RedFormat",0,1028,"RedIntegerFormat",0,1029,"ReinhardToneMapping",0,2,"RenderTarget",0,ey,"RepeatWrapping",0,1e3,"ReplaceStencilOp",0,7681,"ReverseSubtractEquation",0,102,"RingGeometry",0,r7,"SIGNED_RED_GREEN_RGTC2_Format",0,36286,"SIGNED_RED_RGTC1_Format",0,36284,"SRGBColorSpace",0,I,"SRGBTransfer",0,U,"Scene",0,nL,"ShaderChunk",0,oB,"ShaderLib",0,oH,"ShaderMaterial",0,nb,"ShadowMaterial",0,au,"Shape",0,rz,"ShapeGeometry",0,ae,"ShapePath",0,oL,"ShapeUtils",0,r1,"ShortType",0,1011,"Skeleton",0,ia,"SkeletonHelper",0,ou,"SkinnedMesh",0,n7,"Source",0,ef,"Sphere",0,eq,"SphereGeometry",0,at,"Spherical",0,s6,"SphericalHarmonics3",0,so,"SplineCurve",0,rS,"SpotLight",0,a6,"SpotLightHelper",0,oa,"Sprite",0,nZ,"SpriteMaterial",0,nO,"SrcAlphaFactor",0,204,"SrcAlphaSaturateFactor",0,210,"SrcColorFactor",0,202,"StaticCopyUsage",0,35046,"StaticDrawUsage",0,35044,"StaticReadUsage",0,35045,"StereoCamera",0,sM,"StreamCopyUsage",0,35042,"StreamDrawUsage",0,35040,"StreamReadUsage",0,35041,"StringKeyframeTrack",0,aF,"SubtractEquation",0,101,"SubtractiveBlending",0,3,"TOUCH",0,C,"TangentSpaceNormalMap",0,0,"TetrahedronGeometry",0,an,"Texture",0,ev,"TextureLoader",0,a$,"TextureUtils",0,oD,"TorusGeometry",0,ai,"TorusKnotGeometry",0,ar,"Triangle",0,tN,"TriangleFanDrawMode",0,2,"TriangleStripDrawMode",0,1,"TrianglesDrawMode",0,0,"TubeGeometry",0,aa,"UVMapping",0,300,"Uint16BufferAttribute",0,t0,"Uint32BufferAttribute",0,t2,"Uint8BufferAttribute",0,tK,"Uint8ClampedBufferAttribute",0,t$,"Uniform",0,sK,"UniformsGroup",0,sQ,"UniformsLib",0,ok,"UniformsUtils",0,nx,"UnsignedByteType",0,1009,"UnsignedInt248Type",0,1020,"UnsignedInt5999Type",0,35902,"UnsignedIntType",0,1014,"UnsignedShort4444Type",0,1017,"UnsignedShort5551Type",0,1018,"UnsignedShortType",0,1012,"VSMShadowMap",0,3,"Vector2",0,Y,"Vector3",0,eE,"Vector4",0,e_,"VectorKeyframeTrack",0,az,"VideoTexture",0,i8,"WebGL3DRenderTarget",0,eT,"WebGLArrayRenderTarget",0,eS,"WebGLCoordinateSystem",0,2e3,"WebGLCubeRenderTarget",0,nR,"WebGLMultipleRenderTargets",0,oO,"WebGLRenderTarget",0,ex,"WebGLRenderer",0,uK,"WebGLUtils",0,uk,"WebGPUCoordinateSystem",0,2001,"WireframeGeometry",0,as,"WrapAroundEnding",0,2402,"ZeroCurvatureEnding",0,2400,"ZeroFactor",0,200,"ZeroSlopeEnding",0,2401,"ZeroStencilOp",0,0,"createCanvasElement",0,et],32009);var hv=e.i(32009);function h_(e,t){let n;return(...i)=>{window.clearTimeout(n),n=window.setTimeout(()=>e(...i),t)}}let hy=["x","y","top","bottom","left","right","width","height"];function hx({ref:e,children:t,fallback:n,resize:i,style:r,gl:a,events:s=hg,eventSource:o,eventPrefix:l,shadows:u,linear:c,flat:h,legacy:d,orthographic:p,frameloop:f,dpr:m,performance:g,raycaster:v,camera:_,scene:y,onPointerMissed:x,onCreated:b,...S}){E.useMemo(()=>cZ(hv),[]);let M=cd(),[T,w]=function({debounce:e,scroll:t,polyfill:n,offsetSize:i}={debounce:0,scroll:!1,offsetSize:!1}){var r,a,s;let o=n||("u"(p.current=!0,()=>void(p.current=!1)));let[f,m,g]=(0,E.useMemo)(()=>{let e=()=>{let e,t;if(!c.current.element)return;let{left:n,top:r,width:a,height:s,bottom:o,right:l,x:h,y:d}=c.current.element.getBoundingClientRect(),f={left:n,top:r,width:a,height:s,bottom:o,right:l,x:h,y:d};c.current.element instanceof HTMLElement&&i&&(f.height=c.current.element.offsetHeight,f.width=c.current.element.offsetWidth),Object.freeze(f),p.current&&(e=c.current.lastBounds,t=f,!hy.every(n=>e[n]===t[n]))&&u(c.current.lastBounds=f)};return[e,d?h_(e,d):e,h?h_(e,h):e]},[u,i,h,d]);function v(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",g,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null),c.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",c.current.orientationHandler))}function _(){c.current.element&&(c.current.resizeObserver=new o(g),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(e=>e.addEventListener("scroll",g,{capture:!0,passive:!0})),c.current.orientationHandler=()=>{g()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",c.current.orientationHandler))}return r=g,a=!!t,(0,E.useEffect)(()=>{if(a)return window.addEventListener("scroll",r,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",r,!0)},[r,a]),s=m,(0,E.useEffect)(()=>(window.addEventListener("resize",s),()=>void window.removeEventListener("resize",s)),[s]),(0,E.useEffect)(()=>{v(),_()},[t,g,m]),(0,E.useEffect)(()=>v,[]),[e=>{e&&e!==c.current.element&&(v(),c.current.element=e,c.current.scrollContainers=function e(t){let n=[];if(!t||t===document.body)return n;let{overflow:i,overflowX:r,overflowY:a}=window.getComputedStyle(t);return[i,r,a].some(e=>"auto"===e||"scroll"===e)&&n.push(t),[...n,...e(t.parentElement)]}(e),_())},l,f]}({scroll:!0,debounce:{scroll:50,resize:0},...i}),A=E.useRef(null),C=E.useRef(null);E.useImperativeHandle(e,()=>A.current);let R=ch(x),[P,I]=E.useState(!1),[L,N]=E.useState(!1);if(P)throw P;if(L)throw L;let U=E.useRef(null);cc(()=>{let e=A.current;w.width>0&&w.height>0&&e&&(U.current||(U.current=he(e)),async function(){await U.current.configure({gl:a,scene:y,events:s,shadows:u,linear:c,flat:h,legacy:d,orthographic:p,frameloop:f,dpr:m,performance:g,raycaster:v,camera:_,size:w,onPointerMissed:(...e)=>null==R.current?void 0:R.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(o?cl(o)?o.current:o:C.current),l&&e.setEvents({compute:(e,t)=>{let n=e[l+"X"],i=e[l+"Y"];t.pointer.set(n/t.size.width*2-1,-(2*(i/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==b||b(e)}}),U.current.render((0,u9.jsx)(M,{children:(0,u9.jsx)(cf,{set:N,children:(0,u9.jsx)(E.Suspense,{fallback:(0,u9.jsx)(cp,{set:I}),children:null!=t?t:null})})}))}())}),E.useEffect(()=>{let e=A.current;if(e)return()=>hn(e)},[]);let D=o?"none":"auto";return(0,u9.jsx)("div",{ref:C,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:D,...r},...S,children:(0,u9.jsx)("div",{ref:T,style:{width:"100%",height:"100%"},children:(0,u9.jsx)("canvas",{ref:A,style:{display:"block"},children:n})})})}e.s(["Canvas",0,function(e){return(0,u9.jsx)(ci,{children:(0,u9.jsx)(hx,{...e})})}],75056),e.s(["useFrame",0,cz],25234),e.s(["useThree",0,cF],28600)},67335,e=>{"use strict";var t=e.i(1950);e.s(["extend",()=>t.e])},44208,e=>{"use strict";var t=e.i(1950);e.s(["createPortal",()=>t.o])},60602,e=>{"use strict";var t=e.i(1950);e.s(["useLoader",()=>t.G])},24205,e=>{"use strict";var t=e.i(1950);e.s(["applyProps",()=>t.s])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/04vqjcwjasc-3.js b/build/.next/static/chunks/04vqjcwjasc-3.js new file mode 100644 index 0000000..b2697f1 --- /dev/null +++ b/build/.next/static/chunks/04vqjcwjasc-3.js @@ -0,0 +1,101 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41626,e=>{"use strict";var t,r,n,i,s,o,a,l,c,u,d,p,f,m,h,g,v,y,x,w,b,_,j,M,S,R=e.i(43476),N=e.i(71645),k=e.i(75056),V=e.i(25234),A=e.i(43257),P=e.i(8560),C=e.i(28600);function T(e,t,r){t.traverse(t=>{t.material&&(e.properties.remove(t.material),null==t.material.dispose||t.material.dispose())}),e.info.programs.length=0,e.compile(t,r)}function I({focus:e=0,samples:t=10,size:r=25}){let n=(0,C.useThree)(e=>e.gl),i=(0,C.useThree)(e=>e.scene),s=(0,C.useThree)(e=>e.camera);return N.useEffect(()=>{let o=P.ShaderChunk.shadowmap_pars_fragment;return P.ShaderChunk.shadowmap_pars_fragment=P.ShaderChunk.shadowmap_pars_fragment.replace("#ifdef USE_SHADOWMAP","#ifdef USE_SHADOWMAP\n"+(({focus:e=0,size:t=25,samples:r=10}={})=>` +#define PENUMBRA_FILTER_SIZE float(${t}) +#define RGB_NOISE_FUNCTION(uv) (randRGB(uv)) +vec3 randRGB(vec2 uv) { + return vec3( + fract(sin(dot(uv, vec2(12.75613, 38.12123))) * 13234.76575), + fract(sin(dot(uv, vec2(19.45531, 58.46547))) * 43678.23431), + fract(sin(dot(uv, vec2(23.67817, 78.23121))) * 93567.23423) + ); +} + +vec3 lowPassRandRGB(vec2 uv) { + // 3x3 convolution (average) + // can be implemented as separable with an extra buffer for a total of 6 samples instead of 9 + vec3 result = vec3(0); + result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, -1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, 0.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, +1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, -1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, 0.0)); + result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, +1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, -1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, 0.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, +1.0)); + result *= 0.111111111; // 1.0 / 9.0 + return result; +} +vec3 highPassRandRGB(vec2 uv) { + // by subtracting the low-pass signal from the original signal, we're being left with the high-pass signal + // hp(x) = x - lp(x) + return RGB_NOISE_FUNCTION(uv) - lowPassRandRGB(uv) + 0.5; +} + + +vec2 vogelDiskSample(int sampleIndex, int sampleCount, float angle) { + const float goldenAngle = 2.399963f; // radians + float r = sqrt(float(sampleIndex) + 0.5f) / sqrt(float(sampleCount)); + float theta = float(sampleIndex) * goldenAngle + angle; + float sine = sin(theta); + float cosine = cos(theta); + return vec2(cosine, sine) * r; +} +float penumbraSize( const in float zReceiver, const in float zBlocker ) { // Parallel plane estimation + return (zReceiver - zBlocker) / zBlocker; +} +float findBlocker(sampler2D shadowMap, vec2 uv, float compare, float angle) { + float texelSize = 1.0 / float(textureSize(shadowMap, 0).x); + float blockerDepthSum = float(${e}); + float blockers = 0.0; + + int j = 0; + vec2 offset = vec2(0.); + float depth = 0.; + + #pragma unroll_loop_start + for(int i = 0; i < ${r}; i ++) { + offset = (vogelDiskSample(j, ${r}, angle) * texelSize) * 2.0 * PENUMBRA_FILTER_SIZE; + depth = unpackRGBAToDepth( texture2D( shadowMap, uv + offset)); + if (depth < compare) { + blockerDepthSum += depth; + blockers++; + } + j++; + } + #pragma unroll_loop_end + + if (blockers > 0.0) { + return blockerDepthSum / blockers; + } + return -1.0; +} + + +float vogelFilter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius, float angle) { + float texelSize = 1.0 / float(textureSize(shadowMap, 0).x); + float shadow = 0.0f; + int j = 0; + vec2 vogelSample = vec2(0.0); + vec2 offset = vec2(0.0); + #pragma unroll_loop_start + for (int i = 0; i < ${r}; i++) { + vogelSample = vogelDiskSample(j, ${r}, angle) * texelSize; + offset = vogelSample * (1.0 + filterRadius * float(${t})); + shadow += step( zReceiver, unpackRGBAToDepth( texture2D( shadowMap, uv + offset ) ) ); + j++; + } + #pragma unroll_loop_end + return shadow * 1.0 / ${r}.0; +} + +float PCSS (sampler2D shadowMap, vec4 coords) { + vec2 uv = coords.xy; + float zReceiver = coords.z; // Assumed to be eye-space z in this code + float angle = highPassRandRGB(gl_FragCoord.xy).r * PI2; + float avgBlockerDepth = findBlocker(shadowMap, uv, zReceiver, angle); + if (avgBlockerDepth == -1.0) { + return 1.0; + } + float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth); + return vogelFilter(shadowMap, uv, zReceiver, 1.25 * penumbraRatio, angle); +}`)({size:r,samples:t,focus:e})).replace("#if defined( SHADOWMAP_TYPE_PCF )","\nreturn PCSS(shadowMap, shadowCoord);\n#if defined( SHADOWMAP_TYPE_PCF )"),T(n,i,s),()=>{P.ShaderChunk.shadowmap_pars_fragment=o,T(n,i,s)}},[e,r,t]),null}var F=e.i(90072);e.i(47167);var z=e.i(78140);let E="/models/3d_scene_final.glb",O="/draco/",B=[/WheelStock_FR_RB1c_Tire_1k_0$/i,/WheelStock_FR_RB1c_Tire_1k_0\.001$/i,/WheelStock_RL_RB1c_Tire/i,/WheelStock_RR_RB1c_Tire/i],L=/^LCT300007/i,D=/road|floor|slab|driveway|apron|grass|ground|pad|curb/i,W=/asphalt|concrete|lane|apron|curb|pavement|tarmac|grass/i,G=/tree|foliage|atlas|bush|hedge|shrub/i,q=/tree|leaf|leaves|bark|foliage|shrub|grass/i,U=/carton|cube|crate|package_box|barrel|pallet|bench/i,$=/cardboard|pallet/i,H=/street_light|streetlight|lamp/i,Z=/street_light/i,Q=/atlas|background_tree/i,Y=/background_tree_atlas/i;function K({truckRef:e,wheelRefs:t,tier:r="desktop",...n}){let{scene:i}=(0,z.useGLTF)(E,O);return(0,N.useLayoutEffect)(()=>{let n=[null,null,null,null],s=null;if(i.traverse(e=>{if(!e.isMesh)return;let t=e.name||"";/WheelStock_(FR|RL|RR)_RB1c_Tire/i.test(t)&&(s=e,B.forEach((r,i)=>{!n[i]&&r.test(t)&&(n[i]=e)}))}),n.forEach((e,r)=>{let n=e?.parent?.parent??null;n&&t?.[r]&&(t[r].current=n)}),e){let t=s;for(;t&&t.parent&&t.parent!==i;)t=t.parent;e.current=t??null}i.traverse(e=>{if(!e.isMesh)return;let t=e.name||"",n=(Array.isArray(e.material)?e.material[0]?.name:e.material?.name)||"",i=L.test(t),s=D.test(t)||W.test(n);e.castShadow=i,e.receiveShadow=i||s,i&&(e.frustumCulled=!1);let o=!1;"mobile"===r?o=G.test(t)||q.test(n)||U.test(t)||$.test(n)||H.test(t)||Z.test(n):"tablet"===r&&(o=Q.test(t)||Y.test(n)),e.visible=!o})},[i,e,t,r]),(0,R.jsx)("primitive",{object:i,...n,dispose:null})}z.useGLTF.preload(E,O);let J=(0,e.i(68834).create)(e=>({scrollProgress:0,activeSection:0,truckProgress:0,cameraTarget:[19.727,4.397,-31.08],lenis:null,setScrollProgress:t=>e({scrollProgress:t}),setActiveSection:t=>e({activeSection:t}),setTruckProgress:t=>e({truckProgress:t}),setCameraTarget:t=>e({cameraTarget:t}),setLenis:t=>e({lenis:t})})),X=[new F.Vector3(15.5,.45,-26.5),new F.Vector3(13.399,.324,-24.742),new F.Vector3(11.211,.178,-22.973),new F.Vector3(8.823,.111,-20.949),new F.Vector3(6.447,.059,-19.06),new F.Vector3(3.786,.072,-17.002),new F.Vector3(.732,.124,-14.955),new F.Vector3(-2.156,.124,-12.903),new F.Vector3(-4.417,.124,-10.929),new F.Vector3(-5.896,.124,-8.052),new F.Vector3(-5.985,.124,-5.497),new F.Vector3(-4.362,.124,-3.25),new F.Vector3(-1.448,.124,-1.234),new F.Vector3(2.539,.124,.986),new F.Vector3(6.686,.124,3.379),new F.Vector3(8.213,.124,6.14),new F.Vector3(7.976,.124,9.176),new F.Vector3(6.424,.124,12.428),new F.Vector3(3.883,.124,15.769),new F.Vector3(1.241,.124,19.056)],ee=new F.CatmullRomCurve3(X);function et(e){return e<.14?0:e<.38?.5*(e-.14)/.24:e<.5?.5:e<.76?.5+.5*(e-.5)/.26:1}let er={firstMileWhole:{position:new F.Vector3(38,15,-10),target:new F.Vector3(24.377,4,-39.303)},firstMileFront:{position:new F.Vector3(7,3,-19),target:new F.Vector3(15.5,1.5,-26.5)},midMile:{position:new F.Vector3(-7,7.5,8),target:new F.Vector3(-19.146,2.5,-9)},lastMileClose:{position:new F.Vector3(-3.5,4,15),target:new F.Vector3(8,2,20)},lastMileZoomedOut:{position:new F.Vector3(-10.4,5.2,12),target:new F.Vector3(8,2,20)},analytics:{position:new F.Vector3(-13.5,5,31),target:new F.Vector3(-7.7,3.5,25.4)}},en=new F.Vector3,ei=new F.Vector3,es=new F.Vector3(0,1,0),eo=new F.Vector3,ea=new F.Vector3,el=new F.Vector3,ec=e=>e*e*(3-2*e);function eu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ed(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rtypeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ep(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}new F.Vector2,new F.Vector2;function em(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var eh=function e(t,r,n){var i=this;em(this,e),eu(this,"dot2",function(e,t){return i.x*e+i.y*t}),eu(this,"dot3",function(e,t,r){return i.x*e+i.y*t+i.z*r}),this.x=t,this.y=r,this.z=n},eg=[new eh(1,1,0),new eh(-1,1,0),new eh(1,-1,0),new eh(-1,-1,0),new eh(1,0,1),new eh(-1,0,1),new eh(1,0,-1),new eh(-1,0,-1),new eh(0,1,1),new eh(0,-1,1),new eh(0,1,-1),new eh(0,-1,-1)],ev=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],ey=Array(512),ex=Array(512),ew=0;(ew=Math.floor(ew))<256&&(ew|=ew<<8);for(var eb,e_=0;e_<256;e_++)eb=1&e_?ev[e_]^255&ew:ev[e_]^ew>>8&255,ey[e_]=ey[e_+256]=eb,ex[e_]=ex[e_+256]=eg[eb%12];function ej(e){var t=function(e){if("number"==typeof e)e=Math.abs(e);else if("string"==typeof e){var t=e;e=0;for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:.25,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.01,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1/0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:eM,a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:.001,l="velocity_"+t;if(void 0===e.__damp&&(e.__damp={}),void 0===e.__damp[l]&&(e.__damp[l]=0),Math.abs(e[t]-r)<=a)return e[t]=r,!1;var c=2/(n=Math.max(1e-4,n)),u=o(c*i),d=e[t]-r,p=r,f=s*n;d=Math.min(Math.max(d,-f),f),r=e[t]-d;var m=(e.__damp[l]+c*d)*i;e.__damp[l]=(e.__damp[l]-c*m)*u;var h=r+(d+m)*u;return p-e[t]>0==h>p&&(h=p,e.__damp[l]=(h-p)/i),e[t]=h,!0}var eR=new F.Vector3,eN=new F.Quaternion,ek=new F.Quaternion,eV=new F.Matrix4,eA=new F.Vector3;function eP(e,t,r,n,i,s,o,a){var l,c,u,d;return eS(e,t,e[t]+(u=(l=r-e[t])-Math.floor(l/(c=2*Math.PI))*c,(d=Math.max(0,Math.min(c,u)))>Math.PI&&(d-=2*Math.PI),d),n,i,s,o,a)}var eC=new F.Vector2,eT=new F.Vector3;function eI(e,t,r,o,a,l,c){return"number"==typeof t?eT.setScalar(t):Array.isArray(t)?eT.set(t[0],t[1],t[2]):eT.copy(t),n=eS(e,"x",eT.x,r,o,a,l,c),i=eS(e,"y",eT.y,r,o,a,l,c),s=eS(e,"z",eT.z,r,o,a,l,c),n||i||s}var eF=new F.Vector4,ez=new F.Euler,eE=new F.Color,eO=new F.Quaternion,eB=new F.Vector4,eL=new F.Vector4,eD=new F.Vector4;function eW(e,t,r,n,i,s,o){Array.isArray(t)?eO.set(t[0],t[1],t[2],t[3]):eO.copy(t);var a=e.dot(eO)>0?1:-1;return eO.x*=a,eO.y*=a,eO.z*=a,eO.w*=a,g=eS(e,"x",eO.x,r,n,i,s,o),v=eS(e,"y",eO.y,r,n,i,s,o),y=eS(e,"z",eO.z,r,n,i,s,o),x=eS(e,"w",eO.w,r,n,i,s,o),eB.set(e.x,e.y,e.z,e.w).normalize(),eL.set(e.__damp.velocity_x,e.__damp.velocity_y,e.__damp.velocity_z,e.__damp.velocity_w),eD.copy(eB).multiplyScalar(eL.dot(eB)/eB.dot(eB)),e.__damp.velocity_x-=eD.x,e.__damp.velocity_y-=eD.y,e.__damp.velocity_z-=eD.z,e.__damp.velocity_w-=eD.w,e.set(eB.x,eB.y,eB.z,eB.w),g||v||y||x}var eG=new F.Spherical,eq=new F.Matrix4,eU=new F.Vector3,e$=new F.Quaternion,eH=new F.Vector3,eZ=Object.freeze({__proto__:null,rsqw:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.01,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1/(2*Math.PI);return r/Math.atan(1/t)*Math.atan(Math.sin(2*Math.PI*e*n)/t)},exp:eM,linear:function(e){return e},sine:{in:function(e){return 1-Math.cos(e*Math.PI/2)},out:function(e){return Math.sin(e*Math.PI/2)},inOut:function(e){return-(Math.cos(Math.PI*e)-1)/2}},cubic:{in:function(e){return e*e*e},out:function(e){return 1-Math.pow(1-e,3)},inOut:function(e){return e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2}},quint:{in:function(e){return e*e*e*e*e},out:function(e){return 1-Math.pow(1-e,5)},inOut:function(e){return e<.5?16*e*e*e*e*e:1-Math.pow(-2*e+2,5)/2}},circ:{in:function(e){return 1-Math.sqrt(1-Math.pow(e,2))},out:function(e){return Math.sqrt(1-Math.pow(e-1,2))},inOut:function(e){return e<.5?(1-Math.sqrt(1-Math.pow(2*e,2)))/2:(Math.sqrt(1-Math.pow(-2*e+2,2))+1)/2}},quart:{in:function(e){return e*e*e*e},out:function(e){return 1- --e*e*e*e},inOut:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e}},expo:{in:function(e){return 0===e?0:Math.pow(2,10*e-10)},out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},inOut:function(e){return 0===e?0:1===e?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2}},damp:eS,dampLookAt:function(e,t,r,n,i,s,o){"number"==typeof t?eR.setScalar(t):Array.isArray(t)?eR.set(t[0],t[1],t[2]):eR.copy(t);var a=e.parent;(e.updateWorldMatrix(!0,!1),eA.setFromMatrixPosition(e.matrixWorld),e&&e.isCamera||e&&e.isLight)?eV.lookAt(eA,eR,e.up):eV.lookAt(eR,eA,e.up),eW(e.quaternion,ek.setFromRotationMatrix(eV),r,n,i,s,o),a&&(eV.extractRotation(a.matrixWorld),eN.setFromRotationMatrix(eV),eW(e.quaternion,ek.copy(e.quaternion).premultiply(eN.invert()),r,n,i,s,o))},dampAngle:eP,damp2:function(e,n,i,s,o,a,l){return"number"==typeof n?eC.setScalar(n):Array.isArray(n)?eC.set(n[0],n[1]):eC.copy(n),t=eS(e,"x",eC.x,i,s,o,a,l),r=eS(e,"y",eC.y,i,s,o,a,l),t||r},damp3:eI,damp4:function(e,t,r,n,i,s,u){return"number"==typeof t?eF.setScalar(t):Array.isArray(t)?eF.set(t[0],t[1],t[2],t[3]):eF.copy(t),o=eS(e,"x",eF.x,r,n,i,s,u),a=eS(e,"y",eF.y,r,n,i,s,u),l=eS(e,"z",eF.z,r,n,i,s,u),c=eS(e,"w",eF.w,r,n,i,s,u),o||a||l||c},dampE:function(e,t,r,n,i,s,o){return Array.isArray(t)?ez.set(t[0],t[1],t[2],t[3]):ez.copy(t),u=eP(e,"x",ez.x,r,n,i,s,o),d=eP(e,"y",ez.y,r,n,i,s,o),p=eP(e,"z",ez.z,r,n,i,s,o),u||d||p},dampC:function(e,t,r,n,i,s,o){return t instanceof F.Color?eE.copy(t):Array.isArray(t)?eE.setRGB(t[0],t[1],t[2]):eE.set(t),f=eS(e,"r",eE.r,r,n,i,s,o),m=eS(e,"g",eE.g,r,n,i,s,o),h=eS(e,"b",eE.b,r,n,i,s,o),f||m||h},dampQ:eW,dampS:function(e,t,r,n,i,s,o){return Array.isArray(t)?eG.set(t[0],t[1],t[2]):eG.copy(t),w=eS(e,"radius",eG.radius,r,n,i,s,o),b=eP(e,"phi",eG.phi,r,n,i,s,o),_=eP(e,"theta",eG.theta,r,n,i,s,o),w||b||_},dampM:function(e,t,r,n,i,s,o){return void 0===e.__damp&&(e.__damp={position:new F.Vector3,rotation:new F.Quaternion,scale:new F.Vector3},e.decompose(e.__damp.position,e.__damp.rotation,e.__damp.scale)),Array.isArray(t)?eq.set.apply(eq,ef(t)):eq.copy(t),eq.decompose(eU,e$,eH),j=eI(e.__damp.position,eU,r,n,i,s,o),M=eW(e.__damp.rotation,e$,r,n,i,s,o),S=eI(e.__damp.scale,eH,r,n,i,s,o),e.compose(e.__damp.position,e.__damp.rotation,e.__damp.scale),j||M||S}});function eQ(){let e=(0,N.useRef)(new F.Vector3(19.7,4.4,-31.08)),t=(0,N.useRef)(new F.Vector3).current,r=(0,N.useRef)(new F.Vector3).current;return(0,V.useFrame)((n,i)=>{let{camera:s}=n;!function(e,t,r){let n=et(e);if(ee.getPoint(n,en),ee.getTangent(n,ei).normalize(),eo.crossVectors(ei,es).normalize(),ea.copy(en).addScaledVector(ei,7.2).addScaledVector(es,3.2).addScaledVector(eo,-3),el.copy(en).addScaledVector(ei,7.2).addScaledVector(es,3.2).addScaledVector(eo,3),e<.04)t.copy(er.firstMileWhole.position),r.copy(er.firstMileWhole.target);else if(e<.14){let n=ec((e-.04)/.1);t.lerpVectors(er.firstMileWhole.position,er.firstMileFront.position,n),r.lerpVectors(er.firstMileWhole.target,er.firstMileFront.target,n)}else if(e<.18){let n=ec((e-.14)/.04);t.lerpVectors(er.firstMileFront.position,ea,n),r.lerpVectors(er.firstMileFront.target,en,n)}else if(e<.34)t.copy(ea),r.copy(en);else if(e<.38){let n=ec((e-.34)/.04);t.lerpVectors(ea,er.midMile.position,n),r.lerpVectors(en,er.midMile.target,n)}else if(e<.5)t.copy(er.midMile.position),r.copy(er.midMile.target);else if(e<.54){let n=ec((e-.5)/.04);t.lerpVectors(er.midMile.position,el,n),r.lerpVectors(er.midMile.target,en,n)}else if(e<.72)t.copy(el),r.copy(en);else if(e<.76){let n=ec((e-.72)/.04);t.lerpVectors(el,er.lastMileClose.position,n),r.lerpVectors(en,er.lastMileClose.target,n)}else if(e<.92)if(e<.8)t.copy(er.lastMileClose.position),r.copy(er.lastMileClose.target);else if(e<.84){let n=ec((e-.8)/.04);t.lerpVectors(er.lastMileClose.position,er.lastMileZoomedOut.position,n),r.lerpVectors(er.lastMileClose.target,er.lastMileZoomedOut.target,n)}else t.copy(er.lastMileZoomedOut.position),r.copy(er.lastMileZoomedOut.target);else if(e<.96){let n=ec((e-.92)/.04);t.lerpVectors(er.lastMileZoomedOut.position,er.analytics.position,n),r.lerpVectors(er.lastMileZoomedOut.target,er.analytics.target,n)}else t.copy(er.analytics.position),r.copy(er.analytics.target)}(J.getState().scrollProgress,t,r);let o=Number.isFinite(i)&&i>0?Math.min(i,.1):1/60;eZ.damp3(s.position,t,.35,o),eZ.damp3(e.current,r,.25,o),Number.isFinite(s.position.x)||s.position.copy(t),Number.isFinite(e.current.x)||e.current.copy(r),s.lookAt(e.current);let a=n.size.width/n.size.height,l=a<1?Math.min(75,45/Math.sqrt(a)):45;s.fov!==l&&(s.fov=l,s.updateProjectionMatrix())}),null}function eY({truckRef:e,wheelRefs:t}){let r=(0,N.useRef)(!1),n=(0,N.useRef)(0),i=(0,N.useRef)(0),s=(0,N.useRef)(!1),o=(0,N.useRef)(0),a=(0,N.useRef)(0),l=(0,N.useRef)(0);return(0,V.useFrame)((c,u)=>{var d;let p;if(!e.current)return;let f=Number.isFinite(u)&&u>0?Math.min(u,.1):1/60,m=J.getState().scrollProgress,h=et(m),g=m-i.current;g<-1e-4?s.current=!0:g>1e-4&&(s.current=!1),i.current=m;let v=e.current.children[0];if(v&&e.current.children.length>1&&([...e.current.children].slice(1).forEach(e=>{v.attach(e)}),v.rotation.set(0,-Math.PI/2,0),e.current.traverse(e=>{e.isMesh&&(e.frustumCulled=!1,e.castShadow=!0,e.receiveShadow=!0)})),!r.current){let t;n.current=h,n.current_velocity=0,l.current=h,i.current=m,s.current=!1,o.current=0,o.current_velocity=0;let a=ee.getPoint(n.current);if(n.current>=.99){let e=ee.getTangent(1),r=ee.getPoint(1);t=new F.Vector3().copy(r).addScaledVector(e,1)}else{let e=Math.min(n.current+.01,1);t=ee.getPoint(e)}e.current.position.copy(a),e.current.position.distanceToSquared(t)>1e-4&&e.current.lookAt(t),r.current=!0}eZ.damp(n,"current",h,.3,f),!Number.isFinite(n.current)&&(n.current=h,n.__damp&&(n.__damp={})),n.current=F.MathUtils.clamp(n.current,0,1);let y=ee.getPoint(n.current);if(n.current>=.99){let e=ee.getTangent(1),t=ee.getPoint(1);p=new F.Vector3().copy(t).addScaledVector(e,1)}else{let e=Math.min(n.current+.01,1);p=ee.getPoint(e)}e.current.position.copy(y),e.current.position.distanceToSquared(p)>1e-4&&e.current.lookAt(p);let x=0;n.current>.05&&n.current<.95&&s.current&&(x=Math.PI),eZ.damp(o,"current",x,.2,f),!Number.isFinite(o.current)&&(o.current=x,o.current_velocity=0,o.__damp&&(o.__damp={})),e.current.rotateY(o.current);let w=Math.abs(n.current-l.current);l.current=n.current,n.current>.001&&n.current<.999&&(a.current+=250*w),d=a.current,t&&0!==t.length&&t.forEach((e,t)=>{e.current&&(e.current.rotation.y=d*(t%2==0?1:-1))}),e.current.children&&e.current.children[0]&&(e.current.children[0].position.y=.003*Math.sin(45*c.clock.getElapsedTime()))}),null}let eK=[{pos:[0,4.2,-4.56],target:[0,0,-4.56]},{pos:[9.113,4.2,.944],target:[9.113,0,.944]},{pos:[-10.158,4.2,-9.874],target:[-10.158,0,-9.874]},{pos:[3.513,4.2,9.195],target:[3.513,0,9.195]},{pos:[3.96,4.2,-21.17],target:[3.96,0,-21.17]},{pos:[12.25,4.2,-16.7],target:[12.25,0,-16.7]},{pos:[3.052,4.2,-12.335],target:[3.052,0,-12.335]},{pos:[-2.03,4.2,-16.89],target:[-2.03,0,-16.89]},{pos:[-27.151,3.98,-9],target:[-27.151,0,-9]}],eJ=new F.Color("#333333"),eX=new F.Color("#ffdf6d"),e0=new F.Color("#000000"),e1=new F.Color("#ffdf6d");function e2({pos:e,targetPos:t}){let r=(0,N.useRef)(),n=(0,N.useRef)(),i=(0,N.useRef)();return(0,N.useEffect)(()=>{r.current&&n.current&&(r.current.target=n.current,r.current.target.updateMatrixWorld())},[]),(0,V.useFrame)(()=>{r.current&&(r.current.intensity=0),i.current&&(i.current.material.color.lerpColors(eJ,eX,0),i.current.material.emissive.lerpColors(e0,e1,0))}),(0,R.jsxs)("group",{children:[(0,R.jsx)("spotLight",{ref:r,position:e,intensity:0,distance:12,angle:Math.PI/4.5,penumbra:.6,decay:1.2,color:"#ffdf6d",castShadow:!1}),(0,R.jsxs)("mesh",{ref:i,position:e,children:[(0,R.jsx)("sphereGeometry",{args:[.16,16,16]}),(0,R.jsx)("meshStandardMaterial",{color:"#333333",emissive:"#000000",emissiveIntensity:3.5,roughness:.1})]}),(0,R.jsx)("object3D",{ref:n,position:t})]})}let e3=N.default.memo(function(){return(0,R.jsx)("group",{children:eK.map((e,t)=>(0,R.jsx)(e2,{pos:e.pos,targetPos:e.target},t))})}),e5=new F.Color("#f5f5f7"),e4=new F.Color,e9=new F.Vector3,e6={desktop:{shadows:!0,softShadows:!0,environment:!0,streetLights:!0,dpr:[1,1.5],antialias:!0,shadowMap:2048},tablet:{shadows:!0,softShadows:!1,environment:!0,streetLights:!1,dpr:[1,1.5],antialias:!1,shadowMap:1024},mobile:{shadows:!1,softShadows:!1,environment:!1,streetLights:!1,dpr:[1,1],antialias:!1,shadowMap:512}},e7=N.default.memo(function({truckRef:e,shadows:t,shadowMap:r}){let n=(0,N.useRef)(),i=(0,N.useRef)();return(0,N.useEffect)(()=>{n.current&&i.current&&(n.current.target=i.current)},[]),(0,V.useFrame)(t=>{n.current&&i.current&&e.current&&(e.current.getWorldPosition(e9),i.current.position.copy(e9),i.current.updateMatrixWorld(),n.current.position.set(e9.x+10,e9.y+20,e9.z+10)),t.scene&&(t.scene.background=e4.copy(e5),t.scene.environmentIntensity=1)}),(0,R.jsxs)("group",{children:[(0,R.jsx)("ambientLight",{intensity:.45}),(0,R.jsx)("directionalLight",{ref:n,castShadow:t,position:[10,20,10],intensity:1.5,"shadow-mapSize-width":r,"shadow-mapSize-height":r,"shadow-camera-far":100,"shadow-camera-left":-35,"shadow-camera-right":35,"shadow-camera-top":35,"shadow-camera-bottom":-35,"shadow-bias":-1e-4}),(0,R.jsx)("object3D",{ref:i})]})});function e8({onReady:e}){return(0,N.useEffect)(()=>{let t=0,r=0;return t=requestAnimationFrame(()=>{r=requestAnimationFrame(()=>e?.())}),()=>{cancelAnimationFrame(t),cancelAnimationFrame(r)}},[e]),null}let te=N.default.memo(function({dashboardRefs:e,wheelRefs:t,truckRef:r,tier:n="desktop",onReady:i}){let s=e6[n]??e6.desktop;return(0,R.jsx)("div",{style:{width:"100%",height:"100%",position:"absolute",top:0,left:0},children:(0,R.jsxs)(k.Canvas,{shadows:s.shadows,dpr:s.dpr,camera:{position:[32,12,-18],fov:45},gl:{antialias:s.antialias,powerPreference:"high-performance"},children:[(0,R.jsx)("color",{attach:"background",args:["#f5f5f7"]}),s.softShadows&&(0,R.jsx)(I,{size:10,samples:12,focus:1}),(0,R.jsx)(e7,{truckRef:r,shadows:s.shadows,shadowMap:s.shadowMap}),s.streetLights&&(0,R.jsx)(e3,{}),s.environment?(0,R.jsx)(N.Suspense,{fallback:null,children:(0,R.jsx)(A.Environment,{preset:"city"})}):(0,R.jsx)("hemisphereLight",{args:["#ffffff","#9aa0a6",.9]}),(0,R.jsxs)(N.Suspense,{fallback:null,children:[(0,R.jsx)(K,{dashboardRefs:e,truckRef:r,wheelRefs:t,tier:n}),(0,R.jsx)(e8,{onReady:i})]}),(0,R.jsx)(eY,{truckRef:r,wheelRefs:t}),(0,R.jsx)(eQ,{})]})})});var tt=e.i(89970),tr=e.i(83495);let tn=(e,t,r)=>Math.min(Math.max(e,t),r),ti=e=>{if("u"{e?e.scrollTo(t,{duration:1.5}):window.scrollTo({top:t,behavior:"smooth"})};tt.default.registerPlugin(tr.ScrollTrigger);let to={desktop:600,tablet:550,mobile:500};function ta({dashboardRefs:e,onPinState:t,tier:r="desktop",ready:n=!1}){let i=J(e=>e.setScrollProgress),s=J(e=>e.setActiveSection),o=(0,N.useRef)(null),a=(0,N.useRef)(0),l=(0,N.useRef)("before"),c=(0,N.useRef)(null);return(0,N.useEffect)(()=>{let r=o.current;if(!r)return;let n=r=>{i(r);let n=r<=2e-4?"before":r>=.9998?"after":"pinned";n!==l.current&&(l.current=n,t?.(n));let o=0;if(r>=.92?o=3:r>=.5?o=2:r>=.12&&(o=1),o!==a.current&&(a.current=o,s(o)),e){var c,u,d;c=e.bars||[],u=e.pieQuarters||[],d=r>=.92?(r-.92)/.08:0,c.forEach((e,t)=>{if(e.current){let r=tn((d-.08*t)/.5,0,1);e.current.scale.y=r}}),u.forEach((e,t)=>{e.current&&(e.current.rotation.y=-.709+d*Math.PI*2*(2+.5*t))})}},u=tr.ScrollTrigger.create({trigger:r,start:"top top",end:"bottom bottom",scrub:2.5,invalidateOnRefresh:!0,onUpdate:e=>n(e.progress),onRefresh:e=>n(e.progress)});c.current=u;let d=requestAnimationFrame(()=>tr.ScrollTrigger.refresh()),p=0,f=new ResizeObserver(()=>{cancelAnimationFrame(p),p=requestAnimationFrame(()=>tr.ScrollTrigger.refresh())});f.observe(document.documentElement);let m=!1;return document.fonts?.ready&&document.fonts.ready.then(()=>{m||tr.ScrollTrigger.refresh()}),()=>{cancelAnimationFrame(d),cancelAnimationFrame(p),f.disconnect(),m=!0,u.kill(),c.current=null}},[i,s,e,t]),(0,N.useEffect)(()=>{n&&tr.ScrollTrigger.refresh()},[n]),(0,R.jsx)("div",{ref:o,id:"scroll-trigger-trigger",style:{position:"relative",width:"100%",height:`${to[r]??600}vh`,pointerEvents:"none",zIndex:0}})}function tl(){let e=J(e=>e.activeSection),t=J(e=>e.lenis);return(0,R.jsx)("div",{className:"side-navigation",id:"main-navbar",children:[{label:"First Mile",index:0},{label:"Mid Mile",index:1},{label:"Last Mile",index:2},{label:"Analytics",index:3}].map(r=>(0,R.jsxs)("button",{onClick:()=>{ts(t,ti([0,.38,.76,.92][r.index]))},className:`side-nav-item ${e===r.index?"active":""}`,children:[(0,R.jsx)("span",{className:"side-nav-label",children:r.label}),(0,R.jsx)("span",{className:"side-nav-dot"})]},r.index))})}let tc=[{id:"first-mile",title:"First Mile Warehouse",subtitle:"Consolidation & Prep",description:"Incoming shipments are securely loaded, checked, and queued for transfer in our high-capacity fulfillment centers.",progressStart:0,progressEnd:.25},{id:"mid-mile",title:"Mid Mile Hub",subtitle:"Sorting & Direct Dispatch",description:"Consolidated goods travel between primary distribution nodes. Heavy logistics lanes sorting thousands of parcels per hour.",progressStart:.25,progressEnd:.5},{id:"last-mile",title:"Last Mile Delivery",subtitle:"Doorstep Courier Services",description:"Local courier fleets take over for the final leg — MileTruth™ AI sequences the fastest doorstep routes and keeps every package tracked through to a confirmed delivery.",progressStart:.5,progressEnd:.75},{id:"analytics",title:"Fulfillment Analytics",subtitle:"Real-Time Operational Insights",description:"A fully centralized dashboard monitoring transit times, fleet coordinates, carbon footprint, and delivery success rates.",progressStart:.75,progressEnd:1}];function tu({children:e,active:t,id:r,className:n=""}){let i=(0,N.useRef)(null);return(0,N.useEffect)(()=>{let e=i.current;if(!e)return;let n=e.querySelectorAll(".section-badge, .section-title, .section-subtitle, .section-description, .section-metrics, .section-supporting, .section-close-btn"),s="promise-section"===r;t?(tt.default.killTweensOf([e,n]),tt.default.to(e,{xPercent:s?-50:0,yPercent:s?-50:0,y:0,scale:1,opacity:1,duration:.85,ease:"power4.out"}),tt.default.fromTo(n,{y:15,opacity:0},{y:0,opacity:1,duration:.6,stagger:.08,ease:"power3.out",delay:.1})):(tt.default.killTweensOf([e,n]),tt.default.to(e,{xPercent:s?-50:0,yPercent:s?-50:0,y:s?18:20,scale:.96,opacity:0,duration:.5,ease:"power3.inOut"}),tt.default.to(n,{y:10,opacity:0,duration:.35,ease:"power2.in"}))},[t,r]),(0,R.jsx)("div",{ref:i,id:r,className:`section-panel ${t?"active":""} ${n}`,style:{opacity:0,transform:"promise-section"===r?"translate(-50%, -50%) translateY(18px) scale(0.96)":"translateY(20px) scale(0.96)"},children:e})}function td({active:e}){let t=tc[0];return(0,R.jsxs)(tu,{active:e,id:"first-mile-section",children:[(0,R.jsx)("div",{className:"section-badge",children:"Stage 01"}),(0,R.jsx)("h2",{className:"section-title",children:t.title}),(0,R.jsx)("h3",{className:"section-subtitle",children:t.subtitle}),(0,R.jsx)("p",{className:"section-description",children:t.description}),(0,R.jsxs)("div",{className:"section-metrics",children:[(0,R.jsxs)("div",{className:"metric-item",children:[(0,R.jsx)("span",{className:"metric-value",children:"14,250"}),(0,R.jsx)("span",{className:"metric-label",children:"Parcels Processed"})]}),(0,R.jsxs)("div",{className:"metric-item",children:[(0,R.jsx)("span",{className:"metric-value",children:"99.98%"}),(0,R.jsx)("span",{className:"metric-label",children:"Sorting Accuracy"})]})]})]})}function tp({active:e}){let t=tc[1],r=J(e=>e.lenis);return(0,R.jsxs)(tu,{active:e,id:"mid-mile-section",children:[(0,R.jsx)("div",{className:"section-badge",children:"Stage 02"}),(0,R.jsx)("h2",{className:"section-title",children:t.title}),(0,R.jsx)("h3",{className:"section-subtitle",children:t.subtitle}),(0,R.jsx)("p",{className:"section-description",children:t.description}),(0,R.jsxs)("div",{className:"section-metrics mm-info-strip",children:[(0,R.jsxs)("div",{className:"mm-info-row",children:[(0,R.jsx)("span",{className:"mm-info-icon","aria-hidden":"true",children:(0,R.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,R.jsx)("rect",{x:"1",y:"3",width:"15",height:"13"}),(0,R.jsx)("polygon",{points:"16 8 20 8 23 11 23 16 16 16 16 8"}),(0,R.jsx)("circle",{cx:"5.5",cy:"18.5",r:"2.5"}),(0,R.jsx)("circle",{cx:"18.5",cy:"18.5",r:"2.5"})]})}),(0,R.jsxs)("div",{className:"mm-info-content",children:[(0,R.jsx)("h4",{className:"mm-info-title",children:"Vehicles In Transit"}),(0,R.jsx)("p",{className:"mm-info-text",children:"A live view of active vehicles moving shipments between regional distribution hubs."})]})]}),(0,R.jsxs)("div",{className:"mm-info-row",children:[(0,R.jsx)("span",{className:"mm-info-icon","aria-hidden":"true",children:(0,R.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,R.jsx)("line",{x1:"16.5",y1:"9.4",x2:"7.5",y2:"4.21"}),(0,R.jsx)("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"}),(0,R.jsx)("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"}),(0,R.jsx)("line",{x1:"12",y1:"22.08",x2:"12",y2:"12"})]})}),(0,R.jsxs)("div",{className:"mm-info-content",children:[(0,R.jsx)("h4",{className:"mm-info-title",children:"Packages In Transit"}),(0,R.jsx)("p",{className:"mm-info-text",children:"Real-time visibility into parcels currently moving through the mid-mile network."})]})]})]}),(0,R.jsxs)("button",{className:"section-close-btn",onClick:()=>{ts(r,ti(.575))},children:["Continue Journey",(0,R.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:"6px"},children:[(0,R.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,R.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]})}function tf({active:e}){let t=tc[2],r=J(e=>e.lenis);return(0,R.jsxs)(tu,{active:e,id:"last-mile-section",children:[(0,R.jsx)("div",{className:"section-badge",children:"Stage 03"}),(0,R.jsx)("h2",{className:"section-title",children:t.title}),(0,R.jsx)("h3",{className:"section-subtitle",children:t.subtitle}),(0,R.jsx)("p",{className:"section-description",children:t.description}),(0,R.jsxs)("div",{className:"section-metrics",children:[(0,R.jsxs)("div",{className:"metric-item",children:[(0,R.jsx)("span",{className:"metric-value",children:"99.4%"}),(0,R.jsx)("span",{className:"metric-label",children:"On-Time Delivery"})]}),(0,R.jsxs)("div",{className:"metric-item",children:[(0,R.jsx)("span",{className:"metric-value",children:"12.5 min"}),(0,R.jsx)("span",{className:"metric-label",children:"Avg. Doorstep Time"})]})]}),(0,R.jsxs)("div",{className:"section-supporting",children:[(0,R.jsx)("span",{className:"supporting-dot"}),(0,R.jsxs)("div",{className:"supporting-text",children:[(0,R.jsx)("span",{className:"supporting-value",children:"Real-Time visibility"}),(0,R.jsx)("span",{className:"supporting-label",children:"Live GPS · Active now"})]})]}),(0,R.jsxs)("button",{className:"section-close-btn",onClick:()=>{ts(r,ti(.92))},children:["Continue",(0,R.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:"6px"},children:[(0,R.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,R.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]})}function tm({active:e}){return(0,R.jsxs)(tu,{active:e,id:"promise-section",children:[(0,R.jsx)("div",{className:"section-badge",children:"The Doormile Promise"}),(0,R.jsxs)("h2",{className:"section-title promise-title",children:["One Connected System.",(0,R.jsx)("br",{}),"One Promise Kept."]}),(0,R.jsx)("span",{className:"promise-divider","aria-hidden":!0}),(0,R.jsx)("p",{className:"section-description promise-desc",children:"Stop managing three separate logistics services. Doormile unifies first, mid and last mile into a single intelligent delivery system powered by MileTruth™ AI."})]})}var th=e.i(92599);function tg(){let e=J(e=>e.scrollProgress<.14),t=J(e=>e.scrollProgress>=.38&&e.scrollProgress<.5),r=J(e=>e.scrollProgress>=.78&&e.scrollProgress<.875),n=J(e=>e.scrollProgress>=.9);return(0,R.jsxs)("div",{className:"sections-overlay-container",children:[(0,R.jsx)(td,{active:e}),(0,R.jsx)(tp,{active:t}),(0,R.jsx)(tf,{active:r}),(0,R.jsx)(tm,{active:n})]})}function tv({hidden:e}){return(0,R.jsxs)("div",{className:"dm-hiw-3d-loader","aria-hidden":e,style:{position:"absolute",inset:0,zIndex:50,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"18px",background:"linear-gradient(180deg, #f5f5f7 0%, #e9edf2 100%)",opacity:+!e,pointerEvents:e?"none":"auto",transition:"opacity 0.6s ease"},children:[(0,R.jsx)("span",{style:{width:30,height:30,borderRadius:"50%",border:"3px solid rgba(192,18,39,0.18)",borderTopColor:"#c01227",animation:"dm-hiw-spin 0.8s linear infinite"}}),(0,R.jsx)("span",{style:{fontWeight:600,letterSpacing:"0.01em",color:"#1f1f1f",fontSize:"0.95rem"},children:"Loading Doormile Experience…"}),(0,R.jsx)("style",{children:"@keyframes dm-hiw-spin{to{transform:rotate(360deg)}}"})]})}function ty(){return(0,R.jsxs)("section",{className:"dm-hiw-3d-fallback",style:{position:"relative",minHeight:"70vh",display:"flex",alignItems:"flex-end",background:"linear-gradient(180deg, #eef1f5 0%, #dfe5ec 55%, #cfd7e0 100%)",overflow:"hidden"},children:[(0,R.jsx)("img",{src:"/images/home2-banner-1.webp",alt:"Doormile delivery journey — first mile to last mile",loading:"lazy",decoding:"async",onError:e=>{e.currentTarget.style.display="none"},style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover"}}),(0,R.jsx)("div",{style:{position:"relative",padding:"2rem clamp(1rem, 5vw, 4rem)",maxWidth:720},children:(0,R.jsx)("p",{style:{fontWeight:700,fontSize:"clamp(1.25rem, 3vw, 2rem)",lineHeight:1.2,margin:0},children:"From first mile to last mile, every delivery tracked."})})]})}tt.default.registerPlugin(tr.ScrollTrigger),e.s(["default",0,function(){let e=J(e=>e.setLenis),t=function(){let[e,t]=(0,N.useState)(null);return(0,N.useEffect)(()=>{let e,r,n,i,s,o,a;t((r=window.matchMedia("(prefers-reduced-motion: reduce)").matches,n=window.matchMedia("(pointer: coarse)").matches||navigator.maxTouchPoints>0,i=window.innerWidth,s="number"==typeof navigator.deviceMemory?navigator.deviceMemory:8,o=navigator.hardwareConcurrency||8,a=function(){if("u"=1024?"desktop":i>=768&&i<=1366?"tablet":n&&i<768||i<768?"mobile":"tablet",(s<=2||o<=2)&&"mobile"!==e&&(e="mobile"),{tier:e,isTouch:n,reducedMotion:r,fallback:r||!a||s<=1,lowMemory:s<=4}))},[]),e}(),r=(0,N.useRef)(null),n=(0,N.useRef)(null),[i,s]=(0,N.useState)("before"),[o,a]=(0,N.useState)(!1),[l,c]=(0,N.useState)(!1),u=(0,N.useCallback)(()=>c(!0),[]),d=t?.tier??"desktop",p=t?.fallback??!1,f=t?.isTouch??!1,m=null!=t&&!p;(0,N.useEffect)(()=>{if(!m)return;let e=r.current;if(!e)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(a(!0),t.disconnect())},{rootMargin:"200% 0px"});return t.observe(e),()=>t.disconnect()},[m]),(0,N.useEffect)(()=>{let t;if(!m||f)return;let r=new th.default({duration:1.2,lerp:.08,syncTouch:!1});e(r),r.on("scroll",tr.ScrollTrigger.update);let n=e=>{r.raf(e),t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),tr.ScrollTrigger.refresh(),()=>{cancelAnimationFrame(t),r.destroy(),e(null)}},[m,f,e]),(0,N.useEffect)(()=>{if(!o)return;let e=n.current;if(!e)return;let t=null,r=r=>{let n=r>=.92;n!==t&&(t=n,e.style.opacity=n?"0.85":"1")};return r(J.getState().scrollProgress),J.subscribe(e=>r(e.scrollProgress))},[o]);let h=(0,N.useRef)(null),g=N.default.useMemo(()=>[{current:null},{current:null},{current:null},{current:null}],[]),v=N.default.useMemo(()=>({bars:[],floorBars:[],pieQuarters:[]}),[]);return null==t?(0,R.jsx)("div",{ref:r,className:"dm-hiw-3d",style:{minHeight:"100vh"},"aria-hidden":!0}):p?(0,R.jsx)(ty,{}):(0,R.jsxs)("div",{ref:r,className:`dm-hiw-3d is-${i}`,children:[(0,R.jsxs)("div",{className:"dm-hiw-3d-stage",children:[(0,R.jsx)("div",{ref:n,className:"canvas-wrapper",style:{transition:"opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1)"},children:o&&(0,R.jsx)(te,{truckRef:h,wheelRefs:g,dashboardRefs:v,tier:d,onReady:u})}),o&&(0,R.jsx)(tv,{hidden:l}),(0,R.jsx)(tl,{}),(0,R.jsx)(tg,{})]}),(0,R.jsx)(ta,{dashboardRefs:v,onPinState:s,tier:d,ready:l})]})}],41626)},88493,e=>{e.n(e.i(41626))}]); \ No newline at end of file diff --git a/build/.next/static/chunks/04xui0pxt.et1.js b/build/.next/static/chunks/04xui0pxt.et1.js new file mode 100644 index 0000000..ba8e2d7 --- /dev/null +++ b/build/.next/static/chunks/04xui0pxt.et1.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89970,83495,t=>{"use strict";function e(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var n,i,s,a,o,u,l,c,f,h,p,d,_,g,m,v,y,x,b,T,w,k,M,O,C,E,S={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},A={duration:.5,overwrite:!1,delay:0},P=2*Math.PI,D=P/4,R=0,z=Math.sqrt,F=Math.cos,I=Math.sin,B=function(t){return"string"==typeof t},Y=function(t){return"function"==typeof t},L=function(t){return"number"==typeof t},N=function(t){return void 0===t},X=function(t){return"object"==typeof t},U=function(t){return!1!==t},q=function(){return"u">typeof window},H=function(t){return Y(t)||B(t)},W="function"==typeof ArrayBuffer&&ArrayBuffer.isView||function(){},V=Array.isArray,j=/random\([^)]+\)/g,G=/,\s*/g,Q=/(?:-?\.?\d|\.)+/gi,Z=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,$=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,K=/[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,J=/[+-]=-?[.\d]+/,tt=/[^,'"\[\]\s]+/gi,te=/^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,tr={},tn={},ti=function(t){return(tn=tz(t,tr))&&rM},ts=function(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")},ta=function(t,e){return!e&&console.warn(t)},to=function(t,e){return t&&(tr[t]=e)&&tn&&(tn[t]=e)||tr},tu=function(){return 0},tl={suppressEvents:!0,isStart:!0,kill:!1},tc={suppressEvents:!0,kill:!1},tf={suppressEvents:!0},th={},tp=[],td={},t_={},tg={},tm=30,tv=[],ty="",tx=function(t){var e,r,n=t[0];if(X(n)||Y(n)||(t=[t]),!(e=(n._gsap||{}).harness)){for(r=tv.length;r--&&!tv[r].targetTest(n););e=tv[r]}for(r=t.length;r--;)t[r]&&(t[r]._gsap||(t[r]._gsap=new eX(t[r],e)))||t.splice(r,1);return t},tb=function(t){return t._gsap||tx(ei(t))[0]._gsap},tT=function(t,e,r){return(r=t[e])&&Y(r)?t[e]():N(r)&&t.getAttribute&&t.getAttribute(e)||r},tw=function(t,e){return(t=t.split(",")).forEach(e)||t},tk=function(t){return Math.round(1e5*t)/1e5||0},tM=function(t){return Math.round(1e7*t)/1e7||0},tO=function(t,e){var r=e.charAt(0),n=parseFloat(e.substr(2));return t=parseFloat(t),"+"===r?t+n:"-"===r?t-n:"*"===r?t*n:t/n},tC=function(t,e){for(var r=e.length,n=0;0>t.indexOf(e[n])&&++ns;)a=a._prev;return a?(e._next=a._next,a._next=e):(e._next=t[r],t[r]=e),e._next?e._next._prev=e:t[n]=e,e._prev=a,e.parent=e._dp=t,e},tN=function(t,e,r,n){void 0===r&&(r="_first"),void 0===n&&(n="_last");var i=e._prev,s=e._next;i?i._next=s:t[r]===e&&(t[r]=s),s?s._prev=i:t[n]===e&&(t[n]=i),e._next=e._prev=e.parent=null},tX=function(t,e){t.parent&&(!e||t.parent.autoRemoveChildren)&&t.parent.remove&&t.parent.remove(t),t._act=0},tU=function(t,e){if(t&&(!e||e._end>t._dur||e._start<0))for(var r=t;r;)r._dirty=1,r=r.parent;return t},tq=function(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t},tH=function(t,e,r,n){return t._startAt&&(y?t._startAt.revert(tc):t.vars.immediateRender&&!t.vars.autoRevert||t._startAt.render(e,!0,n))},tW=function(t){return t._repeat?tV(t._tTime,t=t.duration()+t._rDelay)*t:0},tV=function(t,e){var r=Math.floor(t=tM(t/e));return t&&r===t?r-1:r},tj=function(t,e){return(t-e._start)*e._ts+(e._ts>=0?0:e._dirty?e.totalDuration():e._tDur)},tG=function(t){return t._end=tM(t._start+(t._tDur/Math.abs(t._ts||t._rts||1e-8)||0))},tQ=function(t,e){var r=t._dp;return r&&r.smoothChildTiming&&t._ts&&(t._start=tM(r._time-(t._ts>0?e/t._ts:-(((t._dirty?t.totalDuration():t._tDur)-e)/t._ts))),tG(t),r._dirty||tU(r,t)),t},tZ=function(t,e){var r;if((e._time||!e._dur&&e._initted||e._start1e-8)&&e.render(r,!0)),tU(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur=0&&r.totalTime(r._tTime),r=r._dp;t._zTime=-1e-8}},t$=function(t,e,r,n){return e.parent&&tX(e),e._start=tM((L(r)?r:r||t!==b?t4(t,r,e):t._time)+e._delay),e._end=tM(e._start+(e.totalDuration()/Math.abs(e.timeScale())||0)),tL(t,e,"_first","_last",t._sort?"_start":0),t1(e)||(t._recent=e),n||tZ(t,e),t._ts<0&&tQ(t,t._tTime),t},tK=function(t,e){return(tr.ScrollTrigger||ts("scrollTrigger",e))&&tr.ScrollTrigger.create(e,t)},tJ=function(t,e,r,n,i){return(e0(t,e,i),t._initted)?!r&&t._pt&&!y&&(t._dur&&!1!==t.vars.lazy||!t._dur&&t.vars.lazy)&&O!==eC.frame?(tp.push(t),t._lazy=[i,n],1):void 0:1},t0=function t(e){var r=e.parent;return r&&r._ts&&r._initted&&!r._lock&&(0>r.rawTime()||t(r))},t1=function(t){var e=t.data;return"isFromStart"===e||"isStart"===e},t2=function(t,e,r,n){var i,s,a,o=t.ratio,u=e<0||!e&&(!t._start&&t0(t)&&!(!t._initted&&t1(t))||(t._ts<0||t._dp._ts<0)&&!t1(t))?0:1,l=t._rDelay,c=0;if(l&&t._repeat&&(s=tV(c=et(0,t._tDur,e),l),t._yoyo&&1&s&&(u=1-u),s!==tV(t._tTime,l)&&(o=1-u,t.vars.repeatRefresh&&t._initted&&t.invalidate())),u!==o||y||n||1e-8===t._zTime||!e&&t._zTime){if(!t._initted&&tJ(t,e,n,r,c))return;for(a=t._zTime,t._zTime=e||1e-8*!!r,r||(r=e&&!a),t.ratio=u,t._from&&(u=1-u),t._time=0,t._tTime=c,i=t._pt;i;)i.r(u,i.d),i=i._next;e<0&&tH(t,e,r,!0),t._onUpdate&&!r&&e_(t,"onUpdate"),c&&t._repeat&&!r&&t.parent&&e_(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===u&&(u&&tX(t,1),r||y||(e_(t,u?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)},t5=function(t,e,r){var n;if(r>e)for(n=t._first;n&&n._start<=r;){if("isPause"===n.data&&n._start>e)return n;n=n._next}else for(n=t._last;n&&n._start>=r;){if("isPause"===n.data&&n._start0&&!n&&tQ(t,t._tTime=t._tDur*a),t.parent&&tG(t),r||tU(t.parent,t),t},t8=function(t){return t instanceof eq?tU(t):t3(t,t._dur)},t6={_start:0,endTime:tu,totalDuration:tu},t4=function t(e,r,n){var i,s,a,o=e.labels,u=e._recent||t6,l=e.duration()>=1e8?u.endTime(!1):e._dur;return B(r)&&(isNaN(r)||r in o)?(s=r.charAt(0),a="%"===r.substr(-1),i=r.indexOf("="),"<"===s||">"===s)?(i>=0&&(r=r.replace(/=/,"")),("<"===s?u._start:u.endTime(u._repeat>=0))+(parseFloat(r.substr(1))||0)*(a?(i<0?u:n).totalDuration()/100:1)):i<0?(r in o||(o[r]=l),o[r]):(s=parseFloat(r.charAt(i-1)+r.substr(i+1)),a&&n&&(s=s/100*(V(n)?n[0]:n).totalDuration()),i>1?t(e,r.substr(0,i-1),n)+s:l+s):null==r?l:+r},t9=function(t,e,r){var n,i,s=L(e[1]),a=(s?2:1)+(t<2?0:1),o=e[a];if(s&&(o.duration=e[1]),o.parent=r,t){for(n=o,i=r;i&&!("immediateRender"in n);)n=i.vars.defaults||{},i=U(i.vars.inherit)&&i.parent;o.immediateRender=U(n.immediateRender),t<2?o.runBackwards=1:o.startAt=e[a-1]}return new e4(e[0],o,e[a+1])},t7=function(t,e){return t||0===t?e(t):e},et=function(t,e,r){return re?e:r},ee=function(t,e){return B(t)&&(e=te.exec(t))?e[1]:""},er=[].slice,en=function(t,e){return t&&X(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&X(t[0]))&&!t.nodeType&&t!==T},ei=function(t,e,r){var n;return x&&!e&&x.selector?x.selector(t):B(t)&&!r&&(w||!eE())?er.call((e||k).querySelectorAll(t),0):V(t)?(void 0===n&&(n=[]),t.forEach(function(t){var e;return B(t)&&!r||en(t,1)?(e=n).push.apply(e,ei(t)):n.push(t)})||n):en(t)?er.call(t,0):t?[t]:[]},es=function(t){return t=ei(t)[0]||ta("Invalid scope")||{},function(e){var r=t.current||t.nativeElement||t;return ei(e,r.querySelectorAll?r:r===t?ta("Invalid scope")||k.createElement("div"):t)}},ea=function(t){return t.sort(function(){return .5-Math.random()})},eo=function(t){if(Y(t))return t;var e=X(t)?t:{each:t},r=eI(e.ease),n=e.from||0,i=parseFloat(e.base)||0,s={},a=n>0&&n<1,o=isNaN(n)||a,u=e.axis,l=n,c=n;return B(n)?l=c=({center:.5,edges:.5,end:1})[n]||0:!a&&o&&(l=n[0],c=n[1]),function(t,a,f){var h,p,d,_,g,m,v,y,x,b=(f||e).length,T=s[b];if(!T){if(!(x="auto"===e.grid?0:(e.grid||[1,1e8])[1])){for(v=-1e8;v<(v=f[x++].getBoundingClientRect().left)&&xv&&(v=g),gb?b-1:u?"y"===u?b/x:x:Math.max(x,b/x))||0)*("edges"===n?-1:1),T.b=b<0?i-b:i,T.u=ee(e.amount||e.each)||0,r=r&&b<0?eF(r):r}return b=(T[t]-T.min)/T.max||0,tM(T.b+(r?r(b):b)*T.v)+T.u}},eu=function(t){var e=Math.pow(10,((t+"").split(".")[1]||"").length);return function(r){var n=tM(Math.round(parseFloat(r)/t)*t*e);return(n-n%1)/e+(L(r)?0:ee(r))}},el=function(t,e){var r,n,i=V(t);return!i&&X(t)&&(r=i=t.radius||1e8,t.values?(n=!L((t=ei(t.values))[0]))&&(r*=r):t=eu(t.increment)),t7(e,i?Y(t)?function(e){return Math.abs((n=t(e))-e)<=r?n:e}:function(e){for(var i,s,a=parseFloat(n?e.x:e),o=parseFloat(n?e.y:0),u=1e8,l=0,c=t.length;c--;)(i=n?(i=t[c].x-a)*i+(s=t[c].y-o)*s:Math.abs(t[c]-a))(i=Math.abs(i))&&(s=n,o=i);return s},e_=function(t,e,r){var n,i,s,a=t.vars,o=a[e],u=x,l=t._ctx;if(o)return n=a[e+"Params"],i=a.callbackScope||t,r&&tp.length&&tE(),l&&(x=l),s=n?o.apply(i,n):o.call(i),x=u,s},eg=function(t){return tX(t),t.scrollTrigger&&t.scrollTrigger.kill(!!y),1>t.progress()&&e_(t,"onInterrupt"),t},em=[],ev=function(t){if(t)if(t=!t.name&&t.default||t,q()||t.headless){var e=t.name,r=Y(t),n=e&&!r&&t.init?function(){this._props=[]}:t,i={init:tu,render:ra,add:e$,kill:ru,modifier:ro,rawVars:0},s={targetTest:0,get:0,getSetter:rr,aliases:{},register:0};if(eE(),t!==n){if(t_[e])return;tR(n,tR(tI(t,i),s)),tz(n.prototype,tz(i,tI(t,s))),t_[n.prop=e]=n,t.targetTest&&(tv.push(n),th[e]=1),e=("css"===e?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}to(e,n),t.register&&t.register(rM,n,rf)}else em.push(t)},ey={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},ex=function(t,e,r){return(6*(t+=t<0?1:t>1?-1:0)<1?e+(r-e)*t*6:t<.5?r:3*t<2?e+(r-e)*(2/3-t)*6:e)*255+.5|0},eb=function(t,e,r){var n,i,s,a,o,u,l,c,f,h,p=t?L(t)?[t>>16,t>>8&255,255&t]:0:ey.black;if(!p){if(","===t.substr(-1)&&(t=t.substr(0,t.length-1)),ey[t])p=ey[t];else if("#"===t.charAt(0)){if(t.length<6&&(n=t.charAt(1),t="#"+n+n+(i=t.charAt(2))+i+(s=t.charAt(3))+s+(5===t.length?t.charAt(4)+t.charAt(4):"")),9===t.length)return[(p=parseInt(t.substr(1,6),16))>>16,p>>8&255,255&p,parseInt(t.substr(7),16)/255];p=[(t=parseInt(t.substr(1),16))>>16,t>>8&255,255&t]}else if("hsl"===t.substr(0,3))if(p=h=t.match(Q),e){if(~t.indexOf("="))return p=t.match(Z),r&&p.length<4&&(p[3]=1),p}else a=p[0]%360/360,o=p[1]/100,i=(u=p[2]/100)<=.5?u*(o+1):u+o-u*o,n=2*u-i,p.length>3&&(p[3]*=1),p[0]=ex(a+1/3,n,i),p[1]=ex(a,n,i),p[2]=ex(a-1/3,n,i);else p=t.match(Q)||ey.transparent;p=p.map(Number)}return e&&!h&&(n=p[0]/255,u=((l=Math.max(n,i=p[1]/255,s=p[2]/255))+(c=Math.min(n,i,s)))/2,l===c?a=o=0:(f=l-c,o=u>.5?f/(2-l-c):f/(l+c),a=(l===n?(i-s)/f+6*(ic||y<0)&&(h+=y-f),p+=y,((r=(m=p-h)-_)>0||x)&&(v=++a.frame,o=m-1e3*a.time,a.time=m/=1e3,_+=r+(r>=d?4:d-r),s=1),x||(n=i(t)),s)for(u=0;utypeof requestAnimationFrame&&requestAnimationFrame,n&&a.sleep(),i=s||function(t){return setTimeout(t,_-1e3*a.time+1|0)},E=1,m(2))},sleep:function(){(s?cancelAnimationFrame:clearTimeout)(n),E=0,i=tu},lagSmoothing:function(t,e){f=Math.min(e||33,c=t||1/0)},fps:function(t){d=1e3/(t||240),_=1e3*a.time+d},add:function(t,e,r){var n=e?function(e,r,i,s){t(e,r,i,s),a.remove(n)}:t;return a.remove(t),g[r?"unshift":"push"](n),eE(),n},remove:function(t,e){~(e=g.indexOf(t))&&g.splice(e,1)&&u>=e&&u--},_listeners:g}),eE=function(){return!E&&eC.wake()},eS={},eA=/^[\d.\-M][\d.\-,\s]/,eP=/["']/g,eD=function(t){for(var e,r,n,i={},s=t.substr(1,t.length-3).split(":"),a=s[0],o=1,u=s.length;o1&&r.config?r.config.apply(null,~t.indexOf("{")?[eD(e[1])]:eR(t).split(",").map(tP)):eS._CE&&eA.test(t)?eS._CE("",t):r},eF=function(t){return function(e){return 1-t(1-e)}},eI=function(t,e){return t&&(Y(t)?t:eS[t]||ez(t))||e},eB=function(t,e,r,n){void 0===r&&(r=function(t){return 1-e(1-t)}),void 0===n&&(n=function(t){return t<.5?e(2*t)/2:1-e((1-t)*2)/2});var i,s={easeIn:e,easeOut:r,easeInOut:n};return tw(t,function(t){for(var e in eS[t]=tr[t]=s,eS[i=t.toLowerCase()]=r,s)eS[i+("easeIn"===e?".in":"easeOut"===e?".out":".inOut")]=eS[t+"."+e]=s[e]}),s},eY=function(t){return function(e){return e<.5?(1-t(1-2*e))/2:.5+t((e-.5)*2)/2}},eL=function t(e,r,n){var i=r>=1?r:1,s=(n||(e?.3:.45))/(r<1?r:1),a=s/P*(Math.asin(1/i)||0),o=function(t){return 1===t?1:i*Math.pow(2,-10*t)*I((t-a)*s)+1},u="out"===e?o:"in"===e?function(t){return 1-o(1-t)}:eY(o);return s=P/s,u.config=function(r,n){return t(e,r,n)},u},eN=function t(e,r){void 0===r&&(r=1.70158);var n=function(t){return t?--t*t*((r+1)*t+r)+1:0},i="out"===e?n:"in"===e?function(t){return 1-n(1-t)}:eY(n);return i.config=function(r){return t(e,r)},i};tw("Linear,Quad,Cubic,Quart,Quint,Strong",function(t,e){var r=e<5?e+1:e;eB(t+",Power"+(r-1),e?function(t){return Math.pow(t,r)}:function(t){return t},function(t){return 1-Math.pow(1-t,r)},function(t){return t<.5?Math.pow(2*t,r)/2:1-Math.pow((1-t)*2,r)/2})}),eS.Linear.easeNone=eS.none=eS.Linear.easeIn,eB("Elastic",eL("in"),eL("out"),eL()),eW=2*(eH=1/2.75),eV=2.5*eH,eB("Bounce",function(t){return 1-ej(1-t)},ej=function(t){return t0?t+(t+this._rDelay)*this._repeat:t):this.totalDuration()&&this._dur},e.totalDuration=function(t){return arguments.length?(this._dirty=0,t3(this,this._repeat<0?t:(t-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},e.totalTime=function(t,e){if(eE(),!arguments.length)return this._tTime;var r=this._dp;if(r&&r.smoothChildTiming&&this._ts){for(tQ(this,t),!r._dp||r.parent||tZ(r,this);r&&r.parent;)r.parent._time!==r._start+(r._ts>=0?r._tTime/r._ts:-((r.totalDuration()-r._tTime)/r._ts))&&r.totalTime(r._tTime,!0),r=r.parent;!this.parent&&this._dp.autoRemoveChildren&&(this._ts>0&&t0||!this._tDur&&!t)&&t$(this._dp,this,this._start-this._delay)}return(this._tTime!==t||!this._dur&&!e||this._initted&&1e-8===Math.abs(this._zTime)||!this._initted&&this._dur&&t||!t&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=t),tA(this,t,e)),this},e.time=function(t,e){return arguments.length?this.totalTime(Math.min(this.totalDuration(),t+tW(this))%(this._dur+this._rDelay)||(t?this._dur:0),e):this._time},e.totalProgress=function(t,e){return arguments.length?this.totalTime(this.totalDuration()*t,e):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.rawTime()>=0&&this._initted?1:0},e.progress=function(t,e){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&!(1&this.iteration())?1-t:t)+tW(this),e):this.duration()?Math.min(1,this._time/this._dur):+(this.rawTime()>0)},e.iteration=function(t,e){var r=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(t-1)*r,e):this._repeat?tV(this._tTime,r)+1:1},e.timeScale=function(t,e){if(!arguments.length)return -1e-8===this._rts?0:this._rts;if(this._rts===t)return this;var r=this.parent&&this._ts?tj(this.parent._time,this):this._tTime;return this._rts=+t||0,this._ts=this._ps||-1e-8===t?0:this._rts,this.totalTime(et(-Math.abs(this._delay),this.totalDuration(),r),!1!==e),tG(this),tq(this)},e.paused=function(t){return arguments.length?(this._ps!==t&&(this._ps=t,t?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(eE(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,1===this.progress()&&1e-8!==Math.abs(this._zTime)&&(this._tTime-=1e-8)))),this):this._ps},e.startTime=function(t){if(arguments.length){this._start=tM(t);var e=this.parent||this._dp;return e&&(e._sort||!this.parent)&&t$(e,this,this._start-this._delay),this}return this._start},e.endTime=function(t){return this._start+(U(t)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},e.rawTime=function(t){var e=this.parent||this._dp;return e?t&&(!this._ts||this._repeat&&this._time&&1>this.totalProgress())?this._tTime%(this._dur+this._rDelay):this._ts?tj(e.rawTime(t),this):this._tTime:this._tTime},e.revert=function(t){void 0===t&&(t=tf);var e=y;return y=t,tS(this)&&(this.timeline&&this.timeline.revert(t),this.totalTime(-.01,t.suppressEvents)),"nested"!==this.data&&!1!==t.kill&&this.kill(),y=e,this},e.globalTime=function(t){for(var e=this,r=arguments.length?t:e.rawTime();e;)r=e._start+r/(Math.abs(e._ts)||1),e=e._dp;return!this.parent&&this._sat?this._sat.globalTime(t):r},e.repeat=function(t){return arguments.length?(this._repeat=t===1/0?-2:t,t8(this)):-2===this._repeat?1/0:this._repeat},e.repeatDelay=function(t){if(arguments.length){var e=this._time;return this._rDelay=t,t8(this),e?this.time(e):this}return this._rDelay},e.yoyo=function(t){return arguments.length?(this._yoyo=t,this):this._yoyo},e.seek=function(t,e){return this.totalTime(t4(this,t),U(e))},e.restart=function(t,e){return this.play().totalTime(t?-this._delay:0,U(e)),this._dur||(this._zTime=-1e-8),this},e.play=function(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},e.reverse=function(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},e.pause=function(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},e.resume=function(){return this.paused(!1)},e.reversed=function(t){return arguments.length?(!!t!==this.reversed()&&this.timeScale(-this._rts||(t?-1e-8:0)),this):this._rts<0},e.invalidate=function(){return this._initted=this._act=0,this._zTime=-1e-8,this},e.isActive=function(){var t,e=this.parent||this._dp,r=this._start;return!!(!e||this._ts&&this._initted&&e.isActive()&&(t=e.rawTime(!0))>=r&&t1?(e?(n[t]=e,r&&(n[t+"Params"]=r),"onUpdate"===t&&(this._onUpdate=e)):delete n[t],this):n[t]},e.then=function(t){var e=this,r=e._prom;return new Promise(function(n){var i=Y(t)?t:tD,s=function(){var t=e.then;e.then=null,r&&r(),Y(i)&&(i=i(e))&&(i.then||i===e)&&(e.then=t),n(i),e.then=t};e._initted&&1===e.totalProgress()&&e._ts>=0||!e._tTime&&e._ts<0?s():e._prom=s})},e.kill=function(){eg(this)},t}();tR(eU.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-1e-8,_prom:0,_ps:!1,_rts:1});var eq=function(t){function n(r,n){var i;return void 0===r&&(r={}),(i=t.call(this,r)||this).labels={},i.smoothChildTiming=!!r.smoothChildTiming,i.autoRemoveChildren=!!r.autoRemoveChildren,i._sort=U(r.sortChildren),b&&t$(r.parent||b,e(i),n),r.reversed&&i.reverse(),r.paused&&i.paused(!0),r.scrollTrigger&&tK(e(i),r.scrollTrigger),i}r(n,t);var i=n.prototype;return i.to=function(t,e,r){return t9(0,arguments,this),this},i.from=function(t,e,r){return t9(1,arguments,this),this},i.fromTo=function(t,e,r,n){return t9(2,arguments,this),this},i.set=function(t,e,r){return e.duration=0,e.parent=this,tB(e).repeatDelay||(e.repeat=0),e.immediateRender=!!e.immediateRender,new e4(t,e,t4(this,r),1),this},i.call=function(t,e,r){return t$(this,e4.delayedCall(0,t,e),r)},i.staggerTo=function(t,e,r,n,i,s,a){return r.duration=e,r.stagger=r.stagger||n,r.onComplete=s,r.onCompleteParams=a,r.parent=this,new e4(t,r,t4(this,i)),this},i.staggerFrom=function(t,e,r,n,i,s,a){return r.runBackwards=1,tB(r).immediateRender=U(r.immediateRender),this.staggerTo(t,e,r,n,i,s,a)},i.staggerFromTo=function(t,e,r,n,i,s,a,o){return n.startAt=r,tB(n).immediateRender=U(n.immediateRender),this.staggerTo(t,e,n,i,s,a,o)},i.render=function(t,e,r){var n,i,s,a,o,u,l,c,f,h,p,d,_=this._time,g=this._dirty?this.totalDuration():this._tDur,m=this._dur,v=t<=0?0:tM(t),x=this._zTime<0!=t<0&&(this._initted||!m);if(this!==b&&v>g&&t>=0&&(v=g),v!==this._tTime||r||x){if(_!==this._time&&m&&(v+=this._time-_,t+=this._time-_),n=v,f=this._start,u=!(c=this._ts),x&&(m||(_=this._zTime),(t||!e)&&(this._zTime=t)),this._repeat){if(p=this._yoyo,o=m+this._rDelay,this._repeat<-1&&t<0)return this.totalTime(100*o+t,e,r);if(n=tM(v%o),v===g?(a=this._repeat,n=m):((a=~~(h=tM(v/o)))&&a===h&&(n=m,a--),n>m&&(n=m)),h=tV(this._tTime,o),!_&&this._tTime&&h!==a&&this._tTime-h*o-this._dur<=0&&(h=a),p&&1&a&&(n=m-n,d=1),a!==h&&!this._lock){var T=p&&1&h,w=T===(p&&1&a);if(a=_&&t>=0)for(i=this._first;i;){if(s=i._next,(i._act||n>=i._start)&&i._ts&&l!==i){if(i.parent!==this)return this.render(t,e,r);if(i.render(i._ts>0?(n-i._start)*i._ts:(i._dirty?i.totalDuration():i._tDur)+(n-i._start)*i._ts,e,r),n!==this._time||!this._ts&&!u){l=0,s&&(v+=this._zTime=-1e-8);break}}i=s}else{i=this._last;for(var k=t<0?t:n;i;){if(s=i._prev,(i._act||k<=i._end)&&i._ts&&l!==i){if(i.parent!==this)return this.render(t,e,r);if(i.render(i._ts>0?(k-i._start)*i._ts:(i._dirty?i.totalDuration():i._tDur)+(k-i._start)*i._ts,e,r||y&&tS(i)),n!==this._time||!this._ts&&!u){l=0,s&&(v+=this._zTime=k?-1e-8:1e-8);break}}i=s}}if(l&&!e&&(this.pause(),l.render(n>=_?0:-1e-8)._zTime=n>=_?1:-1,this._ts))return this._start=f,tG(this),this.render(t,e,r);this._onUpdate&&!e&&e_(this,"onUpdate",!0),(v===g&&this._tTime>=this.totalDuration()||!v&&_)&&(f===this._start||Math.abs(c)!==Math.abs(this._ts))&&!this._lock&&((t||!m)&&(v===g&&this._ts>0||!v&&this._ts<0)&&tX(this,1),e||t<0&&!_||!v&&!_&&g||(e_(this,v===g&&t>=0?"onComplete":"onReverseComplete",!0),this._prom&&!(v0)&&this._prom()))}return this},i.add=function(t,e){var r=this;if(L(e)||(e=t4(this,e,t)),!(t instanceof eU)){if(V(t))return t.forEach(function(t){return r.add(t,e)}),this;if(B(t))return this.addLabel(t,e);if(!Y(t))return this;t=e4.delayedCall(0,t)}return this!==t?t$(this,t,e):this},i.getChildren=function(t,e,r,n){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===r&&(r=!0),void 0===n&&(n=-1e8);for(var i=[],s=this._first;s;)s._start>=n&&(s instanceof e4?e&&i.push(s):(r&&i.push(s),t&&i.push.apply(i,s.getChildren(!0,e,r)))),s=s._next;return i},i.getById=function(t){for(var e=this.getChildren(1,1,1),r=e.length;r--;)if(e[r].vars.id===t)return e[r]},i.remove=function(t){return B(t)?this.removeLabel(t):Y(t)?this.killTweensOf(t):(t.parent===this&&tN(this,t),t===this._recent&&(this._recent=this._last),tU(this))},i.totalTime=function(e,r){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=tM(eC.time-(this._ts>0?e/this._ts:-((this.totalDuration()-e)/this._ts)))),t.prototype.totalTime.call(this,e,r),this._forcing=0,this):this._tTime},i.addLabel=function(t,e){return this.labels[t]=t4(this,e),this},i.removeLabel=function(t){return delete this.labels[t],this},i.addPause=function(t,e,r){var n=e4.delayedCall(0,e||tu,r);return n.data="isPause",this._hasPause=1,t$(this,n,t4(this,t))},i.removePause=function(t){var e=this._first;for(t=t4(this,t);e;)e._start===t&&"isPause"===e.data&&tX(e),e=e._next},i.killTweensOf=function(t,e,r){for(var n=this.getTweensOf(t,r),i=n.length;i--;)eG!==n[i]&&n[i].kill(t,e);return this},i.getTweensOf=function(t,e){for(var r,n=[],i=ei(t),s=this._first,a=L(e);s;)s instanceof e4?tC(s._targets,i)&&(a?(!eG||s._initted&&s._ts)&&s.globalTime(0)<=e&&s.globalTime(s.totalDuration())>e:!e||s.isActive())&&n.push(s):(r=s.getTweensOf(i,e)).length&&n.push.apply(n,r),s=s._next;return n},i.tweenTo=function(t,e){e=e||{};var r,n=this,i=t4(n,t),s=e,a=s.startAt,o=s.onStart,u=s.onStartParams,l=s.immediateRender,c=e4.to(n,tR({ease:e.ease||"none",lazy:!1,immediateRender:!1,time:i,overwrite:"auto",duration:e.duration||Math.abs((i-(a&&"time"in a?a.time:n._time))/n.timeScale())||1e-8,onStart:function(){if(n.pause(),!r){var t=e.duration||Math.abs((i-(a&&"time"in a?a.time:n._time))/n.timeScale());c._dur!==t&&t3(c,t,0,1).render(c._time,!0,!0),r=1}o&&o.apply(c,u||[])}},e));return l?c.render(0):c},i.tweenFromTo=function(t,e,r){return this.tweenTo(e,tR({startAt:{time:t4(this,t)}},r))},i.recent=function(){return this._recent},i.nextLabel=function(t){return void 0===t&&(t=this._time),ed(this,t4(this,t))},i.previousLabel=function(t){return void 0===t&&(t=this._time),ed(this,t4(this,t),1)},i.currentLabel=function(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+1e-8)},i.shiftChildren=function(t,e,r){void 0===r&&(r=0);var n,i=this._first,s=this.labels;for(t=tM(t);i;)i._start>=r&&(i._start+=t,i._end+=t),i=i._next;if(e)for(n in s)s[n]>=r&&(s[n]+=t);return tU(this)},i.invalidate=function(e){var r=this._first;for(this._lock=0;r;)r.invalidate(e),r=r._next;return t.prototype.invalidate.call(this,e)},i.clear=function(t){void 0===t&&(t=!0);for(var e,r=this._first;r;)e=r._next,this.remove(r),r=e;return this._dp&&(this._time=this._tTime=this._pTime=0),t&&(this.labels={}),tU(this)},i.totalDuration=function(t){var e,r,n,i=0,s=this._last,a=1e8;if(arguments.length)return this.timeScale((this._repeat<0?this.duration():this.totalDuration())/(this.reversed()?-t:t));if(this._dirty){for(n=this.parent;s;)e=s._prev,s._dirty&&s.totalDuration(),(r=s._start)>a&&this._sort&&s._ts&&!this._lock?(this._lock=1,t$(this,s,r-s._delay,1)._lock=0):a=r,r<0&&s._ts&&(i-=r,(!n&&!this._dp||n&&n.smoothChildTiming)&&(this._start+=tM(r/this._ts),this._time-=r,this._tTime-=r),this.shiftChildren(-r,!1,-Infinity),a=0),s._end>i&&s._ts&&(i=s._end),s=e;t3(this,this===b&&this._time>i?this._time:i,1,1),this._dirty=0}return this._tDur},n.updateRoot=function(t){if(b._ts&&(tA(b,tj(t,b)),O=eC.frame),eC.frame>=tm){tm+=S.autoSleep||120;var e=b._first;if((!e||!e._ts)&&S.autoSleep&&eC._listeners.length<2){for(;e&&!e._ts;)e=e._next;e||eC.sleep()}}},n}(eU);tR(eq.prototype,{_lock:0,_hasPause:0,_forcing:0});var eH,eW,eV,ej,eG,eQ,eZ=function(t,e,r,n,i,s,a){var o,u,l,c,f,h,p,d,_=new rf(this._pt,t,e,0,1,rs,null,i),g=0,m=0;for(_.b=r,_.e=n,r+="",n+="",(p=~n.indexOf("random("))&&(n=eh(n)),s&&(s(d=[r,n],t,e),r=d[0],n=d[1]),u=r.match(K)||[];o=K.exec(n);)c=o[0],f=n.substring(g,o.index),l?l=(l+1)%5:"rgba("===f.substr(-5)&&(l=1),c!==u[m++]&&(h=parseFloat(u[m-1])||0,_._pt={_next:_._pt,p:f||1===m?f:",",s:h,c:"="===c.charAt(1)?tO(h,c)-h:parseFloat(c)-h,m:l&&l<4?Math.round:0},g=K.lastIndex);return _.c=g")}),a.duration();else{for(c in u={},w)"ease"===c||"easeEach"===c||e5(c,w[c],u,w.easeEach);for(c in u)for(o=0,A=u[c].sort(function(t,e){return t.t-e.t}),R=0;oh-1e-8&&!d?h:t<1e-8?0:t;if(p){if(_!==this._tTime||!t||r||!this._initted&&this._tTime||this._startAt&&this._zTime<0!==d||this._lazy){if(n=_,c=this.timeline,this._repeat){if(a=p+this._rDelay,this._repeat<-1&&d)return this.totalTime(100*a+t,e,r);if(n=tM(_%a),_===h?(s=this._repeat,n=p):(s=~~(o=tM(_/a)))&&s===o?(n=p,s--):n>p&&(n=p),(u=this._yoyo&&1&s)&&(n=p-n),o=tV(this._tTime,a),n===f&&!r&&this._initted&&s===o)return this._tTime=_,this;s!==o&&this.vars.repeatRefresh&&!u&&!this._lock&&n!==a&&this._initted&&(this._lock=r=1,this.render(tM(a*s),!0).invalidate()._lock=0)}if(!this._initted){if(tJ(this,d?t:n,r,e,_))return this._tTime=0,this;if(f!==this._time&&!(r&&this.vars.repeatRefresh&&s!==o))return this;if(p!==this._dur)return this.render(t,e,r)}if(this._rEase){var g=n0||!_&&this._ts<0)&&tX(this,1),!e&&!(d&&!f)&&(_||f||u)&&(e_(this,_===h?"onComplete":"onReverseComplete",!0),this._prom&&!(_0)&&this._prom()))}}else t2(this,t,e,r);return this},i.targets=function(){return this._targets},i.invalidate=function(e){return e&&this.vars.runBackwards||(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(e),t.prototype.invalidate.call(this,e)},i.resetTo=function(t,e,r,n,i){E||eC.wake(),this._ts||this.play();var s=Math.min(this._dur,(this._dp._time-this._start)*this._ts);return(this._initted||e0(this,s),e1(this,t,e,r,n,this._ease(s/this._dur),s,i))?this.resetTo(t,e,r,n,1):(tQ(this,0),this.parent||tL(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},i.kill=function(t,e){if(void 0===e&&(e="all"),!t&&(!e||"all"===e))return this._lazy=this._pt=0,this.parent?eg(this):this.scrollTrigger&&this.scrollTrigger.kill(!!y),this;if(this.timeline){var r=this.timeline.totalDuration();return this.timeline.killTweensOf(t,e,eG&&!0!==eG.vars.overwrite)._first||eg(this),this.parent&&r!==this.timeline.totalDuration()&&t3(this,this._dur*this.timeline._tDur/r,0,1),this}var n,i,s,a,o,u,l,c=this._targets,f=t?ei(t):c,h=this._ptLookup,p=this._pt;if((!e||"all"===e)&&tY(c,f))return"all"===e&&(this._pt=0),eg(this);for(n=this._op=this._op||[],"all"!==e&&(B(e)&&(o={},tw(e,function(t){return o[t]=1}),e=o),e=e2(c,e)),l=c.length;l--;)if(~f.indexOf(c[l]))for(o in i=h[l],"all"===e?(n[l]=e,a=i,s={}):(s=n[l]=n[l]||{},a=e),a)(u=i&&i[o])&&("kill"in u.d&&!0!==u.d.kill(o)||tN(this,u,"_pt"),delete i[o]),"all"!==s&&(s[o]=1);return this._initted&&!this._pt&&p&&eg(this),this},n.to=function(t,e){return new n(t,e,arguments[2])},n.from=function(t,e){return t9(1,arguments)},n.delayedCall=function(t,e,r,i){return new n(e,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:e,onReverseComplete:e,onCompleteParams:r,onReverseCompleteParams:r,callbackScope:i})},n.fromTo=function(t,e,r){return t9(2,arguments)},n.set=function(t,e){return e.duration=0,e.repeatDelay||(e.repeat=0),new n(t,e)},n.killTweensOf=function(t,e,r){return b.killTweensOf(t,e,r)},n}(eU);tR(e4.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),tw("staggerTo,staggerFrom,staggerFromTo",function(t){e4[t]=function(){var e=new eq,r=er.call(arguments,0);return r.splice("staggerFromTo"===t?5:4,0,0),e[t].apply(e,r)}});var e9=function(t,e,r){return t[e]=r},e7=function(t,e,r){return t[e](r)},rt=function(t,e,r,n){return t[e](n.fp,r)},re=function(t,e,r){return t.setAttribute(e,r)},rr=function(t,e){return Y(t[e])?e7:N(t[e])&&t.setAttribute?re:e9},rn=function(t,e){return e.set(e.t,e.p,Math.round((e.s+e.c*t)*1e6)/1e6,e)},ri=function(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},rs=function(t,e){var r=e._pt,n="";if(!t&&e.b)n=e.b;else if(1===t&&e.e)n=e.e;else{for(;r;)n=r.p+(r.m?r.m(r.s+r.c*t):Math.round((r.s+r.c*t)*1e4)/1e4)+n,r=r._next;n+=e.c}e.set(e.t,e.p,n,e)},ra=function(t,e){for(var r=e._pt;r;)r.r(t,r.d),r=r._next},ro=function(t,e,r,n){for(var i,s=this._pt;s;)i=s._next,s.p===n&&s.modifier(t,e,r),s=i},ru=function(t){for(var e,r,n=this._pt;n;)r=n._next,(n.p!==t||n.op)&&n.op!==t?n.dep||(e=1):tN(this,n,"_pt"),n=r;return!e},rl=function(t,e,r,n){n.mSet(t,e,n.m.call(n.tween,r,n.mt),n)},rc=function(t){for(var e,r,n,i,s=t._pt;s;){for(e=s._next,r=n;r&&r.pr>s.pr;)r=r._next;(s._prev=r?r._prev:i)?s._prev._next=s:n=s,(s._next=r)?r._prev=s:i=s,s=e}t._pt=n},rf=function(){function t(t,e,r,n,i,s,a,o,u){this.t=e,this.s=n,this.c=i,this.p=r,this.r=s||rn,this.d=a||this,this.set=o||e9,this.pr=u||0,this._next=t,t&&(t._prev=this)}return t.prototype.modifier=function(t,e,r){this.mSet=this.mSet||this.set,this.set=rl,this.m=t,this.mt=r,this.tween=e},t}();tw(ty+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger,easeReverse",function(t){return th[t]=1}),tr.TweenMax=tr.TweenLite=e4,tr.TimelineLite=tr.TimelineMax=eq,b=new eq({sortChildren:!1,defaults:A,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0}),S.stringFilter=eO;var rh=[],rp={},rd=[],r_=0,rg=0,rm=function(t){return(rp[t]||rd).map(function(t){return t()})},rv=function(){var t=Date.now(),e=[];t-r_>2&&(rm("matchMediaInit"),rh.forEach(function(t){var r,n,i,s,a=t.queries,o=t.conditions;for(n in a)(r=T.matchMedia(a[n]).matches)&&(i=1),r!==o[n]&&(o[n]=r,s=1);s&&(t.revert(),i&&e.push(t))}),rm("matchMediaRevert"),e.forEach(function(t){return t.onMatch(t,function(e){return t.add(null,e)})}),r_=t,rm("matchMedia"))},ry=function(){function t(t,e){this.selector=e&&es(e),this.data=[],this._r=[],this.isReverted=!1,this.id=rg++,t&&this.add(t)}var e=t.prototype;return e.add=function(t,e,r){Y(t)&&(r=e,e=t,t=Y);var n=this,i=function(){var t,i=x,s=n.selector;return i&&i!==n&&i.data.push(n),r&&(n.selector=es(r)),x=n,t=e.apply(n,arguments),Y(t)&&n._r.push(t),x=i,n.selector=s,n.isReverted=!1,t};return n.last=i,t===Y?i(n,function(t){return n.add(null,t)}):t?n[t]=i:i},e.ignore=function(t){var e=x;x=null,t(this),x=e},e.getTweens=function(){var e=[];return this.data.forEach(function(r){return r instanceof t?e.push.apply(e,r.getTweens()):r instanceof e4&&!(r.parent&&"nested"===r.parent.data)&&e.push(r)}),e},e.clear=function(){this._r.length=this.data.length=0},e.kill=function(t,e){var r=this;if(t){for(var n,i=r.getTweens(),s=r.data.length;s--;)"isFlip"===(n=r.data[s]).data&&(n.revert(),n.getChildren(!0,!0,!1).forEach(function(t){return i.splice(i.indexOf(t),1)}));for(i.map(function(t){return{g:t._dur||t._delay||t._sat&&!t._sat.vars.immediateRender?t.globalTime(0):-1/0,t:t}}).sort(function(t,e){return e.g-t.g||-1/0}).forEach(function(e){return e.t.revert(t)}),s=r.data.length;s--;)(n=r.data[s])instanceof eq?"nested"!==n.data&&(n.scrollTrigger&&n.scrollTrigger.revert(),n.kill()):n instanceof e4||!n.revert||n.revert(t);r._r.forEach(function(e){return e(t,r)}),r.isReverted=!0}else this.data.forEach(function(t){return t.kill&&t.kill()});if(this.clear(),e)for(var a=rh.length;a--;)rh[a].id===this.id&&rh.splice(a,1)},e.revert=function(t){this.kill(t||{})},t}(),rx=function(){function t(t){this.contexts=[],this.scope=t,x&&x.data.push(this)}var e=t.prototype;return e.add=function(t,e,r){X(t)||(t={matches:t});var n,i,s,a=new ry(0,r||this.scope),o=a.conditions={};for(i in x&&!a.selector&&(a.selector=x.selector),this.contexts.push(a),e=a.add("onMatch",e),a.queries=t,t)"all"===i?s=1:(n=T.matchMedia(t[i]))&&(0>rh.indexOf(a)&&rh.push(a),(o[i]=n.matches)&&(s=1),n.addListener?n.addListener(rv):n.addEventListener("change",rv));return s&&e(a,function(t){return a.add(null,t)}),this},e.revert=function(t){this.kill(t||{})},e.kill=function(t){this.contexts.forEach(function(e){return e.kill(t,!0)})},t}(),rb={registerPlugin:function(){for(var t=arguments.length,e=Array(t),r=0;r1){var n=t.map(function(t){return rM.quickSetter(t,e,r)}),i=n.length;return function(t){for(var e=i;e--;)n[e](t)}}t=t[0]||{};var s=t_[e],a=tb(t),o=a.harness&&(a.harness.aliases||{})[e]||e,u=s?function(e){var n=new s;C._pt=0,n.init(t,r?e+r:e,C,0,[t]),n.render(1,n),C._pt&&ra(1,C)}:a.set(t,o);return s?u:function(e){return u(t,o,r?e+r:e,a,1)}},quickTo:function(t,e,r){var n,i=rM.to(t,tR(((n={})[e]="+=0.1",n.paused=!0,n.stagger=0,n),r||{})),s=function(t,r,n){return i.resetTo(e,t,r,n)};return s.tween=i,s},isTweening:function(t){return b.getTweensOf(t,!0).length>0},defaults:function(t){return t&&t.ease&&(t.ease=eI(t.ease,A.ease)),tF(A,t||{})},config:function(t){return tF(S,t||{})},registerEffect:function(t){var e=t.name,r=t.effect,n=t.plugins,i=t.defaults,s=t.extendTimeline;(n||"").split(",").forEach(function(t){return t&&!t_[t]&&!tr[t]&&ta(e+" effect requires "+t+" plugin.")}),tg[e]=function(t,e,n){return r(ei(t),tR(e||{},i),n)},s&&(eq.prototype[e]=function(t,r,n){return this.add(tg[e](t,X(r)?r:(n=r)&&{},this),n)})},registerEase:function(t,e){eS[t]=eI(e)},parseEase:function(t,e){return arguments.length?eI(t,e):eS},getById:function(t){return b.getById(t)},exportRoot:function(t,e){void 0===t&&(t={});var r,n,i=new eq(t);for(i.smoothChildTiming=U(t.smoothChildTiming),b.remove(i),i._dp=0,i._time=i._tTime=b._time,r=b._first;r;)n=r._next,(e||!(!r._dur&&r instanceof e4&&r.vars.onComplete===r._targets[0]))&&t$(i,r,r._start-r._delay),r=n;return t$(b,i,0),i},context:function(t,e){return t?new ry(t,e):x},matchMedia:function(t){return new rx(t)},matchMediaRefresh:function(){return rh.forEach(function(t){var e,r,n=t.conditions;for(r in n)n[r]&&(n[r]=!1,e=1);e&&t.revert()})||rv()},addEventListener:function(t,e){var r=rp[t]||(rp[t]=[]);~r.indexOf(e)||r.push(e)},removeEventListener:function(t,e){var r=rp[t],n=r&&r.indexOf(e);n>=0&&r.splice(n,1)},utils:{wrap:function t(e,r,n){var i=r-e;return V(e)?ef(e,t(0,e.length),r):t7(n,function(t){return(i+(t-e)%i)%i+e})},wrapYoyo:function t(e,r,n){var i=r-e,s=2*i;return V(e)?ef(e,t(0,e.length-1),r):t7(n,function(t){return t=(s+(t-e)%s)%s||0,e+(t>i?s-t:t)})},distribute:eo,random:ec,snap:el,normalize:function(t,e,r){return ep(t,e,0,1,r)},getUnit:ee,clamp:function(t,e,r){return t7(r,function(r){return et(t,e,r)})},splitColor:eb,toArray:ei,selector:es,mapRange:ep,pipe:function(){for(var t=arguments.length,e=Array(t),r=0;r=0)return;a.svg&&(this.svgo=i.getAttribute("data-svg-origin"),this.props.push(r1,r,"")),e=r0}(s||r)&&this.props.push(e,r,s[e])},r5=function(t){t.translate&&(t.removeProperty("translate"),t.removeProperty("scale"),t.removeProperty("rotate"))},r3=function(){var t,e,r=this.props,n=this.target,i=n.style,s=n._gsap;for(t=0;t=0?r9[i]:"")+t},nt=function(){"u">typeof window&&window.document&&(rC=(rO=window.document).documentElement,rS=r6("div")||{style:{}},r6("div"),r1=(r0=r7(r0))+"Origin",rS.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",rD=!!r7("perspective"),rP=rM.core.reverting,rE=1)},ne=function(t){var e,r=t.ownerSVGElement,n=r6("svg",r&&r.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),i=t.cloneNode(!0);i.style.display="block",n.appendChild(i),rC.appendChild(n);try{e=i.getBBox()}catch(t){}return n.removeChild(i),rC.removeChild(n),e},nr=function(t,e){for(var r=e.length;r--;)if(t.hasAttribute(e[r]))return t.getAttribute(e[r])},nn=function(t){var e,r;try{e=t.getBBox()}catch(n){e=ne(t),r=1}return e&&(e.width||e.height)||r||(e=ne(t)),!e||e.width||e.x||e.y?e:{x:+nr(t,["x","cx","x1"])||0,y:+nr(t,["y","cy","y1"])||0,width:0,height:0}},ni=function(t){return!!(t.getCTM&&(!t.parentNode||t.ownerSVGElement)&&nn(t))},ns=function(t,e){if(e){var r,n=t.style;e in rR&&e!==r1&&(e=r0),n.removeProperty?(("ms"===(r=e.substr(0,2))||"webkit"===e.substr(0,6))&&(e="-"+e),n.removeProperty("--"===r?e:e.replace(rB,"-$1").toLowerCase())):n.removeAttribute(e)}},na=function(t,e,r,n,i,s){var a=new rf(t._pt,e,r,0,1,s?rj:rV);return t._pt=a,a.b=n,a.e=i,t._props.push(r),a},no={deg:1,rad:1,turn:1},nu={grid:1,flex:1},nl=function t(e,r,n,i){var s,a,o,u,l=parseFloat(n)||0,c=(n+"").trim().substr((l+"").length)||"px",f=rS.style,h=rY.test(r),p="svg"===e.tagName.toLowerCase(),d=(p?"client":"offset")+(h?"Width":"Height"),_="px"===i,g="%"===i;if(i===c||!l||no[i]||no[c])return l;if("px"===c||_||(l=t(e,r,n,"px")),u=e.getCTM&&ni(e),(g||"%"===c)&&(rR[r]||~r.indexOf("adius")))return s=u?e.getBBox()[h?"width":"height"]:e[d],tk(g?l/s*100:l/100*s);if(f[h?"width":"height"]=100+(_?c:i),a="rem"!==i&&~r.indexOf("adius")||"em"===i&&e.appendChild&&!p?e:e.parentNode,u&&(a=(e.ownerSVGElement||{}).parentNode),a&&a!==rO&&a.appendChild||(a=rO.body),(o=a._gsap)&&g&&o.width&&h&&o.time===eC.time&&!o.uncache)return tk(l/o.width*100);if(g&&("height"===r||"width"===r)){var m=e.style[r];e.style[r]=100+i,s=e[d],m?e.style[r]=m:ns(e,r)}else(g||"%"===c)&&!nu[r4(a,"display")]&&(f.position=r4(e,"position")),a===e&&(f.position="static"),a.appendChild(rS),s=rS[d],a.removeChild(rS),f.position="absolute";return h&&g&&((o=tb(a)).time=eC.time,o.width=a[d]),tk(_?s*l/100:s&&l?100/s*l:0)},nc=function(t,e,r,n){var i;return rE||nt(),e in rN&&"transform"!==e&&~(e=rN[e]).indexOf(",")&&(e=e.split(",")[0]),rR[e]&&"transform"!==e?(i=nT(t,n),i="transformOrigin"!==e?i[e]:i.svg?i.origin:nw(r4(t,r1))+" "+i.zOrigin+"px"):(!(i=t.style[e])||"auto"===i||n||~(i+"").indexOf("calc("))&&(i=n_[e]&&n_[e](t,e,r)||r4(t,e)||tT(t,e)||+("opacity"===e)),r&&!~(i+"").trim().indexOf(" ")?nl(t,e,i,r)+r:i},nf=function(t,e,r,n){if(!r||"none"===r){var i=r7(e,t,1),s=i&&r4(t,i,1);s&&s!==r?(e=i,r=s):"borderColor"===e&&(r=r4(t,"borderTopColor"))}var a,o,u,l,c,f,h,p,d,_,g,m=new rf(this._pt,t.style,e,0,1,rs),v=0,y=0;if(m.b=r,m.e=n,r+="","var(--"===(n+="").substring(0,6)&&(n=r4(t,n.substring(4,n.indexOf(")")))),"auto"===n&&(f=t.style[e],t.style[e]=n,n=r4(t,e)||n,f?t.style[e]=f:ns(t,e)),eO(a=[r,n]),r=a[0],n=a[1],u=r.match($)||[],(n.match($)||[]).length){for(;o=$.exec(n);)h=o[0],d=n.substring(v,o.index),c?c=(c+1)%5:("rgba("===d.substr(-5)||"hsla("===d.substr(-5))&&(c=1),h!==(f=u[y++]||"")&&(l=parseFloat(f)||0,g=f.substr((l+"").length),"="===h.charAt(1)&&(h=tO(l,h)+g),p=parseFloat(h),_=h.substr((p+"").length),v=$.lastIndex-_.length,_||(_=_||S.units[e]||g,v===n.length&&(n+=_,m.e+=_)),g!==_&&(l=nl(t,e,f,_)||0),m._pt={_next:m._pt,p:d||1===y?d:",",s:l,c:p-l,m:c&&c<4||"zIndex"===e?Math.round:0});m.c=v-1;)rR[r=o[i]]&&(n=1,r="transformOrigin"===r?r1:r0),ns(s,r);n&&(ns(s,r0),u&&(u.svg&&s.removeAttribute("transform"),a.scale=a.rotate=a.translate="none",nT(s,1),u.uncache=1,r5(a)))}},n_={clearProps:function(t,e,r,n,i){if("isFromStart"!==i.data){var s=t._pt=new rf(t._pt,e,r,0,0,nd);return s.u=n,s.pr=-10,s.tween=i,t._props.push(r),1}}},ng=[1,0,0,1,0,0],nm={},nv=function(t){return"matrix(1, 0, 0, 1, 0, 0)"===t||"none"===t||!t},ny=function(t){var e=r4(t,r0);return nv(e)?ng:e.substr(7).match(Z).map(tk)},nx=function(t,e){var r,n,i,s,a=t._gsap||tb(t),o=t.style,u=ny(t);return a.svg&&t.getAttribute("transform")?"1,0,0,1,0,0"===(u=[(i=t.transform.baseVal.consolidate().matrix).a,i.b,i.c,i.d,i.e,i.f]).join(",")?ng:u:(u!==ng||t.offsetParent||t===rC||a.svg||(i=o.display,o.display="block",(r=t.parentNode)&&(t.offsetParent||t.getBoundingClientRect().width)||(s=1,n=t.nextElementSibling,rC.appendChild(t)),u=ny(t),i?o.display=i:ns(t,"display"),s&&(n?r.insertBefore(t,n):r?r.appendChild(t):rC.removeChild(t))),e&&u.length>6?[u[0],u[1],u[4],u[5],u[12],u[13]]:u)},nb=function(t,e,r,n,i,s){var a,o,u,l,c=t._gsap,f=i||nx(t,!0),h=c.xOrigin||0,p=c.yOrigin||0,d=c.xOffset||0,_=c.yOffset||0,g=f[0],m=f[1],v=f[2],y=f[3],x=f[4],b=f[5],T=e.split(" "),w=parseFloat(T[0])||0,k=parseFloat(T[1])||0;r?f!==ng&&(o=g*y-m*v)&&(u=y/o*w+-v/o*k+(v*b-y*x)/o,l=-m/o*w+g/o*k-(g*b-m*x)/o,w=u,k=l):(w=(a=nn(t)).x+(~T[0].indexOf("%")?w/100*a.width:w),k=a.y+(~(T[1]||T[0]).indexOf("%")?k/100*a.height:k)),n||!1!==n&&c.smooth?(c.xOffset=d+((x=w-h)*g+(b=k-p)*v)-x,c.yOffset=_+(x*m+b*y)-b):c.xOffset=c.yOffset=0,c.xOrigin=w,c.yOrigin=k,c.smooth=!!n,c.origin=e,c.originIsAbsolute=!!r,t.style[r1]="0px 0px",s&&(na(s,c,"xOrigin",h,w),na(s,c,"yOrigin",p,k),na(s,c,"xOffset",d,c.xOffset),na(s,c,"yOffset",_,c.yOffset)),t.setAttribute("data-svg-origin",w+" "+k)},nT=function(t,e){var r=t._gsap||new eX(t);if("x"in r&&!e&&!r.uncache)return r;var n,i,s,a,o,u,l,c,f,h,p,d,_,g,m,v,y,x,b,T,w,k,M,O,C,E,A,P,D,R,z,F,I=t.style,B=r.scaleX<0,Y=getComputedStyle(t),L=r4(t,r1)||"0";return n=i=s=u=l=c=f=h=p=0,a=o=1,r.svg=!!(t.getCTM&&ni(t)),Y.translate&&(("none"!==Y.translate||"none"!==Y.scale||"none"!==Y.rotate)&&(I[r0]=("none"!==Y.translate?"translate3d("+(Y.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+("none"!==Y.rotate?"rotate("+Y.rotate+") ":"")+("none"!==Y.scale?"scale("+Y.scale.split(" ").join(",")+") ":"")+("none"!==Y[r0]?Y[r0]:"")),I.scale=I.rotate=I.translate="none"),g=nx(t,r.svg),r.svg&&(r.uncache?(C=t.getBBox(),L=r.xOrigin-C.x+"px "+(r.yOrigin-C.y)+"px",O=""):O=!e&&t.getAttribute("data-svg-origin"),nb(t,O||L,!!O||r.originIsAbsolute,!1!==r.smooth,g)),d=r.xOrigin||0,_=r.yOrigin||0,g!==ng&&(x=g[0],b=g[1],T=g[2],w=g[3],n=k=g[4],i=M=g[5],6===g.length?(a=Math.sqrt(x*x+b*b),o=Math.sqrt(w*w+T*T),u=x||b?rI(b,x)*rz:0,(f=T||w?rI(T,w)*rz+u:0)&&(o*=Math.abs(Math.cos(f*rF))),r.svg&&(n-=d-(d*x+_*T),i-=_-(d*b+_*w))):(F=g[6],R=g[7],A=g[8],P=g[9],D=g[10],z=g[11],n=g[12],i=g[13],s=g[14],l=(m=rI(F,D))*rz,m&&(O=k*(v=Math.cos(-m))+A*(y=Math.sin(-m)),C=M*v+P*y,E=F*v+D*y,A=-(k*y)+A*v,P=-(M*y)+P*v,D=-(F*y)+D*v,z=-(R*y)+z*v,k=O,M=C,F=E),c=(m=rI(-T,D))*rz,m&&(O=x*(v=Math.cos(-m))-A*(y=Math.sin(-m)),C=b*v-P*y,E=T*v-D*y,z=w*y+z*v,x=O,b=C,T=E),u=(m=rI(b,x))*rz,m&&(O=x*(v=Math.cos(m))+b*(y=Math.sin(m)),C=k*v+M*y,b=b*v-x*y,M=M*v-k*y,x=O,k=C),l&&Math.abs(l)+Math.abs(u)>359.9&&(l=u=0,c=180-c),a=tk(Math.sqrt(x*x+b*b+T*T)),o=tk(Math.sqrt(M*M+F*F)),f=Math.abs(m=rI(k,M))>2e-4?m*rz:0,p=z?1/(z<0?-z:z):0),r.svg&&(O=t.getAttribute("transform"),r.forceCSS=t.setAttribute("transform","")||!nv(r4(t,r0)),O&&t.setAttribute("transform",O))),Math.abs(f)>90&&270>Math.abs(f)&&(B?(a*=-1,f+=u<=0?180:-180,u+=u<=0?180:-180):(o*=-1,f+=f<=0?180:-180)),e=e||r.uncache,r.x=n-((r.xPercent=n&&(!e&&r.xPercent||(Math.round(t.offsetWidth/2)===Math.round(-n)?-50:0)))?t.offsetWidth*r.xPercent/100:0)+"px",r.y=i-((r.yPercent=i&&(!e&&r.yPercent||(Math.round(t.offsetHeight/2)===Math.round(-i)?-50:0)))?t.offsetHeight*r.yPercent/100:0)+"px",r.z=s+"px",r.scaleX=tk(a),r.scaleY=tk(o),r.rotation=tk(u)+"deg",r.rotationX=tk(l)+"deg",r.rotationY=tk(c)+"deg",r.skewX=f+"deg",r.skewY=h+"deg",r.transformPerspective=p+"px",(r.zOrigin=parseFloat(L.split(" ")[2])||!e&&r.zOrigin||0)&&(I[r1]=nw(L)),r.xOffset=r.yOffset=0,r.force3D=S.force3D,r.renderTransform=r.svg?nE:rD?nC:nM,r.uncache=0,r},nw=function(t){return(t=t.split(" "))[0]+" "+t[1]},nk=function(t,e,r){var n=ee(e);return tk(parseFloat(e)+parseFloat(nl(t,"x",r+"px",n)))+n},nM=function(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,nC(t,e)},nO="0deg",nC=function(t,e){var r=e||this,n=r.xPercent,i=r.yPercent,s=r.x,a=r.y,o=r.z,u=r.rotation,l=r.rotationY,c=r.rotationX,f=r.skewX,h=r.skewY,p=r.scaleX,d=r.scaleY,_=r.transformPerspective,g=r.force3D,m=r.target,v=r.zOrigin,y="",x="auto"===g&&t&&1!==t||!0===g;if(v&&(c!==nO||l!==nO)){var b,T=parseFloat(l)*rF,w=Math.sin(T),k=Math.cos(T);s=nk(m,s,-(w*(b=Math.cos(T=parseFloat(c)*rF))*v)),a=nk(m,a,-(-Math.sin(T)*v)),o=nk(m,o,-(k*b*v)+v)}"0px"!==_&&(y+="perspective("+_+") "),(n||i)&&(y+="translate("+n+"%, "+i+"%) "),(x||"0px"!==s||"0px"!==a||"0px"!==o)&&(y+="0px"!==o||x?"translate3d("+s+", "+a+", "+o+") ":"translate("+s+", "+a+") "),u!==nO&&(y+="rotate("+u+") "),l!==nO&&(y+="rotateY("+l+") "),c!==nO&&(y+="rotateX("+c+") "),(f!==nO||h!==nO)&&(y+="skew("+f+", "+h+") "),(1!==p||1!==d)&&(y+="scale("+p+", "+d+") "),m.style[r0]=y||"translate(0, 0)"},nE=function(t,e){var r,n,i,s,a,o=e||this,u=o.xPercent,l=o.yPercent,c=o.x,f=o.y,h=o.rotation,p=o.skewX,d=o.skewY,_=o.scaleX,g=o.scaleY,m=o.target,v=o.xOrigin,y=o.yOrigin,x=o.xOffset,b=o.yOffset,T=o.forceCSS,w=parseFloat(c),k=parseFloat(f);h=parseFloat(h),p=parseFloat(p),(d=parseFloat(d))&&(p+=d=parseFloat(d),h+=d),h||p?(h*=rF,p*=rF,r=Math.cos(h)*_,n=Math.sin(h)*_,i=-(Math.sin(h-p)*g),s=Math.cos(h-p)*g,p&&(d*=rF,i*=a=Math.sqrt(1+(a=Math.tan(p-d))*a),s*=a,d&&(r*=a=Math.sqrt(1+(a=Math.tan(d))*a),n*=a)),r=tk(r),n=tk(n),i=tk(i),s=tk(s)):(r=_,s=g,n=i=0),(w&&!~(c+"").indexOf("px")||k&&!~(f+"").indexOf("px"))&&(w=nl(m,"x",c,"px"),k=nl(m,"y",f,"px")),(v||y||x||b)&&(w=tk(w+v-(v*r+y*i)+x),k=tk(k+y-(v*n+y*s)+b)),(u||l)&&(w=tk(w+u/100*(a=m.getBBox()).width),k=tk(k+l/100*a.height)),a="matrix("+r+","+n+","+i+","+s+","+w+","+k+")",m.setAttribute("transform",a),T&&(m.style[r0]=a)},nS=function(t,e,r,n,i){var s,a,o=B(i),u=parseFloat(i)*(o&&~i.indexOf("rad")?rz:1)-n,l=n+u+"deg";return o&&("short"===(s=i.split("_")[1])&&(u%=360)!=u%180&&(u+=u<0?360:-360),"cw"===s&&u<0?u=(u+36e9)%360-360*~~(u/360):"ccw"===s&&u>0&&(u=(u-36e9)%360-360*~~(u/360))),t._pt=a=new rf(t._pt,e,r,n,u,rU),a.e=l,a.u="deg",t._props.push(r),a},nA=function(t,e){for(var r in e)t[r]=e[r];return t},nP=function(t,e,r){var n,i,s,a,o,u,l,c=nA({},r._gsap),f=r.style;for(i in c.svg?(s=r.getAttribute("transform"),r.setAttribute("transform",""),f[r0]=e,n=nT(r,1),ns(r,r0),r.setAttribute("transform",s)):(s=getComputedStyle(r)[r0],f[r0]=e,n=nT(r,1),f[r0]=s),rR)(s=c[i])!==(a=n[i])&&0>"perspective,force3D,transformOrigin,svgOrigin".indexOf(i)&&(o=ee(s)!==(l=ee(a))?nl(r,i,s,l):parseFloat(s),u=parseFloat(a),t._pt=new rf(t._pt,n,i,o,u-o,rX),t._pt.u=l||0,t._props.push(i));nA(n,c)};tw("padding,margin,Width,Radius",function(t,e){var r="Right",n="Bottom",i="Left",s=(e<3?["Top",r,n,i]:["Top"+i,"Top"+r,n+r,n+i]).map(function(r){return e<2?t+r:"border"+r+t});n_[e>1?"border"+t:t]=function(t,e,r,n,i){var a,o;if(arguments.length<4)return 5===(o=(a=s.map(function(e){return nc(t,e,r)})).join(" ")).split(a[0]).length?a[0]:o;a=(n+"").split(" "),o={},s.forEach(function(t,e){return o[t]=a[e]=a[e]||a[(e-1)/2|0]}),t.init(e,o,i)}});var nD={name:"css",register:nt,targetTest:function(t){return t.style&&t.nodeType},init:function(t,e,r,n,i){var s,a,o,u,l,c,f,h,p,d,_,g,m,v,y,x,b,T=this._props,w=t.style,k=r.vars.startAt;for(f in rE||nt(),this.styles=this.styles||r8(t),x=this.styles.props,this.tween=r,e)if("autoRound"!==f&&(a=e[f],!(t_[f]&&eJ(f,e,r,n,t,i)))){if(l=typeof a,c=n_[f],"function"===l&&(l=typeof(a=a.call(r,n,t,i))),"string"===l&&~a.indexOf("random(")&&(a=eh(a)),c)c(this,t,f,a,r)&&(y=1);else if("--"===f.substr(0,2))s=(getComputedStyle(t).getPropertyValue(f)+"").trim(),a+="",ek.lastIndex=0,!ek.test(s)&&(h=ee(s),(p=ee(a))?h!==p&&(s=nl(t,f,s,p)+p):h&&(a+=h)),this.add(w,"setProperty",s,a,n,i,0,0,f),T.push(f),x.push(f,0,w[f]);else if("undefined"!==l){if(k&&f in k?(B(s="function"==typeof k[f]?k[f].call(r,n,t,i):k[f])&&~s.indexOf("random(")&&(s=eh(s)),ee(s+"")||"auto"===s||(s+=S.units[f]||ee(nc(t,f))||""),"="===(s+"").charAt(1)&&(s=nc(t,f))):s=nc(t,f),u=parseFloat(s),(d="string"===l&&"="===a.charAt(1)&&a.substr(0,2))&&(a=a.substr(2)),o=parseFloat(a),f in rN&&("autoAlpha"===f&&(1===u&&"hidden"===nc(t,"visibility")&&o&&(u=0),x.push("visibility",0,w.visibility),na(this,w,"visibility",u?"inherit":"hidden",o?"inherit":"hidden",!o)),"scale"!==f&&"transform"!==f&&~(f=rN[f]).indexOf(",")&&(f=f.split(",")[0])),_=f in rR){if(this.styles.save(f),b=a,"string"===l&&"var(--"===a.substring(0,6)){if("calc("===(a=r4(t,a.substring(4,a.indexOf(")")))).substring(0,5)){var M=t.style.perspective;t.style.perspective=a,a=r4(t,"perspective"),M?t.style.perspective=M:ns(t,"perspective")}o=parseFloat(a)}if(g||((m=t._gsap).renderTransform&&!e.parseTransform||nT(t,e.parseTransform),v=!1!==e.smoothOrigin&&m.smooth,(g=this._pt=new rf(this._pt,w,r0,0,1,m.renderTransform,m,0,-1)).dep=1),"scale"===f)this._pt=new rf(this._pt,m,"scaleY",m.scaleY,(d?tO(m.scaleY,d+o):o)-m.scaleY||0,rX),this._pt.u=0,T.push("scaleY",f),f+="X";else if("transformOrigin"===f){x.push(r1,0,w[r1]),a=np(a),m.svg?nb(t,a,0,v,0,this):((p=parseFloat(a.split(" ")[2])||0)!==m.zOrigin&&na(this,m,"zOrigin",m.zOrigin,p),na(this,w,f,nw(s),nw(a)));continue}else if("svgOrigin"===f){nb(t,a,1,v,0,this);continue}else if(f in nm){nS(this,m,f,u,d?tO(u,d+a):a);continue}else if("smoothOrigin"===f){na(this,m,"smooth",m.smooth,a);continue}else if("force3D"===f){m[f]=a;continue}else if("transform"===f){nP(this,a,t);continue}}else f in w||(f=r7(f)||f);if(_||(o||0===o)&&(u||0===u)&&!rL.test(a)&&f in w)h=(s+"").substr((u+"").length),o||(o=0),p=ee(a)||(f in S.units?S.units[f]:h),h!==p&&(u=nl(t,f,s,p)),this._pt=new rf(this._pt,_?m:w,f,u,(d?tO(u,d+o):o)-u,!_&&("px"===p||"zIndex"===f)&&!1!==e.autoRound?rW:rX),this._pt.u=p||0,_&&b!==a?(this._pt.b=s,this._pt.e=b,this._pt.r=rH):h!==p&&"%"!==p&&(this._pt.b=s,this._pt.r=rq);else if(f in w)nf.call(this,t,f,s,d?d+a:a);else if(f in t)this.add(t,f,s||t[f],d?d+a:a,n,i);else if("parseTransform"!==f){ts(f,a);continue}_||(f in w?x.push(f,0,w[f]):"function"==typeof t[f]?x.push(f,2,t[f]()):x.push(f,1,s||t[f])),T.push(f)}}y&&rc(this)},render:function(t,e){if(e.tween._time||!rP())for(var r=e._pt;r;)r.r(t,r.d),r=r._next;else e.styles.revert()},get:nc,aliases:rN,getSetter:function(t,e,r){var n=rN[e];return n&&0>n.indexOf(",")&&(e=n),e in rR&&e!==r1&&(t._gsap.x||nc(t,"x"))?r&&rA===r?"scale"===e?r$:rZ:(rA=r||{},"scale"===e?rK:rJ):t.style&&!N(t.style[e])?rG:~e.indexOf("-")?rQ:rr(t,e)},core:{_removeProperty:ns,_getMatrix:nx}};rM.utils.checkPrefix=r7,rM.core.getStyleSaver=r8,nF=tw("x,y,z,scale,scaleX,scaleY,xPercent,yPercent,"+(nz="rotation,rotationX,rotationY,skewX,skewY")+",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective",function(t){rR[t]=1}),tw(nz,function(t){S.units[t]="deg",nm[t]=1}),rN[nF[13]]="x,y,z,scale,scaleX,scaleY,xPercent,yPercent,"+nz,tw("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY",function(t){var e=t.split(":");rN[e[1]]=nF[e[0]]}),tw("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(t){S.units[t]="px"}),rM.registerPlugin(nD);var nR=rM.registerPlugin(nD)||rM;nR.core.Tween,t.s(["default",0,nR],89970);var nz,nF,nI,nB,nY,nL,nN,nX,nU,nq,nH,nW,nV,nj,nG,nQ=function(){return nI||"u">typeof window&&(nI=window.gsap)&&nI.registerPlugin&&nI},nZ=1,n$=[],nK=[],nJ=[],n0=Date.now,n1=function(t,e){return e},n2=function(){var t=nH.core,e=t.bridge||{},r=t._scrollers,n=t._proxies;r.push.apply(r,nK),n.push.apply(n,nJ),nK=r,nJ=n,n1=function(t,r){return e[t](r)}},n5=function(t,e){return~nJ.indexOf(t)&&nJ[nJ.indexOf(t)+1][e]},n3=function(t){return!!~nW.indexOf(t)},n8=function(t,e,r,n,i){return t.addEventListener(e,r,{passive:!1!==n,capture:!!i})},n6=function(t,e,r,n){return t.removeEventListener(e,r,!!n)},n4="scrollLeft",n9="scrollTop",n7=function(){return nV&&nV.isPressed||nK.cache++},it=function(t,e){var r=function r(n){if(n||0===n){nZ&&(nY.history.scrollRestoration="manual");var i=nV&&nV.isPressed;t(n=r.v=Math.round(n)||(nV&&nV.iOS?1:0)),r.cacheID=nK.cache,i&&n1("ss",n)}else(e||nK.cache!==r.cacheID||n1("ref"))&&(r.cacheID=nK.cache,r.v=t());return r.v+r.offset};return r.offset=0,t&&r},ie={s:n4,p:"left",p2:"Left",os:"right",os2:"Right",d:"width",d2:"Width",a:"x",sc:it(function(t){return arguments.length?nY.scrollTo(t,ir.sc()):nY.pageXOffset||nL[n4]||nN[n4]||nX[n4]||0})},ir={s:n9,p:"top",p2:"Top",os:"bottom",os2:"Bottom",d:"height",d2:"Height",a:"y",op:ie,sc:it(function(t){return arguments.length?nY.scrollTo(ie.sc(),t):nY.pageYOffset||nL[n9]||nN[n9]||nX[n9]||0})},ii=function(t,e){return(e&&e._ctx&&e._ctx.selector||nI.utils.toArray)(t)[0]||("string"==typeof t&&!1!==nI.config().nullTargetWarn?console.warn("Element not found:",t):null)},is=function(t,e){for(var r=e.length;r--;)if(e[r]===t||e[r].contains(t))return!0;return!1},ia=function(t,e){var r=e.s,n=e.sc;n3(t)&&(t=nL.scrollingElement||nN);var i=nK.indexOf(t),s=n===ir.sc?1:2;~i||(i=nK.push(t)-1),nK[i+s]||n8(t,"scroll",n7);var a=nK[i+s],o=a||(nK[i+s]=it(n5(t,r),!0)||(n3(t)?n:it(function(e){return arguments.length?t[r]=e:t[r]})));return o.target=t,a||(o.smooth="smooth"===nI.getProperty(t,"scrollBehavior")),o},io=function(t,e,r){var n=t,i=t,s=n0(),a=s,o=e||50,u=Math.max(500,3*o),l=function(t,e){var u=n0();e||u-s>o?(i=n,n=t,a=s,s=u):r?n+=t:n=i+(t-i)/(u-a)*(s-a)};return{update:l,reset:function(){i=n=r?0:n,a=s=0},getVelocity:function(t){var e=a,o=i,c=n0();return(t||0===t)&&t!==n&&l(t),s===a||c-a>u?0:(n+(r?o:-o))/((r?c:s)-e)*1e3}}},iu=function(t,e){return e&&!t._gsapAllow&&!1!==t.cancelable&&t.preventDefault(),t.changedTouches?t.changedTouches[0]:t},il=function(t){var e=Math.max.apply(Math,t),r=Math.min.apply(Math,t);return Math.abs(e)>=Math.abs(r)?e:r},ic=function(){(nH=nI.core.globals().ScrollTrigger)&&nH.core&&n2()},ih=function(t){return nI=t||nQ(),!nB&&nI&&"u">typeof document&&document.body&&(nY=window,nN=(nL=document).documentElement,nX=nL.body,nW=[nY,nL,nN,nX],nI.utils.clamp,nG=nI.core.context||function(){},nq="onpointerenter"in nX?"pointer":"mouse",nU=ip.isTouch=nY.matchMedia&&nY.matchMedia("(hover: none), (pointer: coarse)").matches?1:2*("ontouchstart"in nY||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),nj=ip.eventTypes=("ontouchstart"in nN?"touchstart,touchmove,touchcancel,touchend":!("onpointerdown"in nN)?"mousedown,mousemove,mouseup,mouseup":"pointerdown,pointermove,pointercancel,pointerup").split(","),setTimeout(function(){return nZ=0},500),nB=1),nH||ic(),nB};ie.op=ir,nK.cache=0;var ip=function(){var t;function e(t){this.init(t)}return e.prototype.init=function(t){nB||ih(nI)||console.warn("Please gsap.registerPlugin(Observer)"),nH||ic();var e=t.tolerance,r=t.dragMinimum,n=t.type,i=t.target,s=t.lineHeight,a=t.debounce,o=t.preventDefault,u=t.onStop,l=t.onStopDelay,c=t.ignore,f=t.wheelSpeed,h=t.event,p=t.onDragStart,d=t.onDragEnd,_=t.onDrag,g=t.onPress,m=t.onRelease,v=t.onRight,y=t.onLeft,x=t.onUp,b=t.onDown,T=t.onChangeX,w=t.onChangeY,k=t.onChange,M=t.onToggleX,O=t.onToggleY,C=t.onHover,E=t.onHoverEnd,S=t.onMove,A=t.ignoreCheck,P=t.isNormalizer,D=t.onGestureStart,R=t.onGestureEnd,z=t.onWheel,F=t.onEnable,I=t.onDisable,B=t.onClick,Y=t.scrollSpeed,L=t.capture,N=t.allowClicks,X=t.lockAxis,U=t.onLockAxis;this.target=i=ii(i)||nN,this.vars=t,c&&(c=nI.utils.toArray(c)),e=e||1e-9,r=r||0,f=f||1,Y=Y||1,n=n||"wheel,touch,pointer",a=!1!==a,s||(s=parseFloat(nY.getComputedStyle(nX).lineHeight)||22);var q,H,W,V,j,G,Q,Z=this,$=0,K=0,J=t.passive||!o&&!1!==t.passive,tt=ia(i,ie),te=ia(i,ir),tr=tt(),tn=te(),ti=~n.indexOf("touch")&&!~n.indexOf("pointer")&&"pointerdown"===nj[0],ts=n3(i),ta=i.ownerDocument||nL,to=[0,0,0],tu=[0,0,0],tl=0,tc=function(){return tl=n0()},tf=function(t,e){return(Z.event=t)&&c&&is(t.target,c)||e&&ti&&"touch"!==t.pointerType||A&&A(t,e)},th=function(){var t=Z.deltaX=il(to),r=Z.deltaY=il(tu),n=Math.abs(t)>=e,i=Math.abs(r)>=e;k&&(n||i)&&k(Z,t,r,to,tu),n&&(v&&Z.deltaX>0&&v(Z),y&&Z.deltaX<0&&y(Z),T&&T(Z),M&&Z.deltaX<0!=$<0&&M(Z),$=Z.deltaX,to[0]=to[1]=to[2]=0),i&&(b&&Z.deltaY>0&&b(Z),x&&Z.deltaY<0&&x(Z),w&&w(Z),O&&Z.deltaY<0!=K<0&&O(Z),K=Z.deltaY,tu[0]=tu[1]=tu[2]=0),(V||W)&&(S&&S(Z),W&&(p&&1===W&&p(Z),_&&_(Z),W=0),V=!1),G&&(G=!1,1)&&U&&U(Z),j&&(z(Z),j=!1),q=0},tp=function(t,e,r){to[r]+=t,tu[r]+=e,Z._vx.update(t),Z._vy.update(e),a?q||(q=requestAnimationFrame(th)):th()},td=function(t,e){X&&!Q&&(Z.axis=Q=Math.abs(t)>Math.abs(e)?"x":"y",G=!0),"y"!==Q&&(to[2]+=t,Z._vx.update(t,!0)),"x"!==Q&&(tu[2]+=e,Z._vy.update(e,!0)),a?q||(q=requestAnimationFrame(th)):th()},t_=function(t){if(!tf(t,1)){var e=(t=iu(t,o)).clientX,n=t.clientY,i=e-Z.x,s=n-Z.y,a=Z.isDragging;Z.x=e,Z.y=n,(a||(i||s)&&(Math.abs(Z.startX-e)>=r||Math.abs(Z.startY-n)>=r))&&(W||(W=a?2:1),a||(Z.isDragging=!0),td(i,s))}},tg=Z.onPress=function(t){tf(t,1)||t&&t.button||(Z.axis=Q=null,H.pause(),Z.isPressed=!0,t=iu(t),$=K=0,Z.startX=Z.x=t.clientX,Z.startY=Z.y=t.clientY,Z._vx.reset(),Z._vy.reset(),n8(P?i:ta,nj[1],t_,J,!0),Z.deltaX=Z.deltaY=0,g&&g(Z))},tm=Z.onRelease=function(t){if(!tf(t,1)){n6(P?i:ta,nj[1],t_,!0);var e=!isNaN(Z.y-Z.startY),r=Z.isDragging,n=r&&(Math.abs(Z.x-Z.startX)>3||Math.abs(Z.y-Z.startY)>3),s=iu(t);!n&&e&&(Z._vx.reset(),Z._vy.reset(),o&&N&&nI.delayedCall(.08,function(){if(n0()-tl>300&&!t.defaultPrevented){if(t.target.click)t.target.click();else if(ta.createEvent){var e=ta.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,nY,1,s.screenX,s.screenY,s.clientX,s.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(e)}}})),Z.isDragging=Z.isGesturing=Z.isPressed=!1,u&&r&&!P&&H.restart(!0),W&&th(),d&&r&&d(Z),m&&m(Z,n)}},tv=function(t){return t.touches&&t.touches.length>1&&(Z.isGesturing=!0)&&D(t,Z.isDragging)},ty=function(){return Z.isGesturing=!1,R(Z)},tx=function(t){if(!tf(t)){var e=tt(),r=te();tp((e-tr)*Y,(r-tn)*Y,1),tr=e,tn=r,u&&H.restart(!0)}},tb=function(t){if(!tf(t)){t=iu(t,o),z&&(j=!0);var e=(1===t.deltaMode?s:2===t.deltaMode?nY.innerHeight:1)*f;tp(t.deltaX*e,t.deltaY*e,0),u&&!P&&H.restart(!0)}},tT=function(t){if(!tf(t)){var e=t.clientX,r=t.clientY,n=e-Z.x,i=r-Z.y;Z.x=e,Z.y=r,V=!0,u&&H.restart(!0),(n||i)&&td(n,i)}},tw=function(t){Z.event=t,C(Z)},tk=function(t){Z.event=t,E(Z)},tM=function(t){return tf(t)||iu(t,o)&&B(Z)};H=Z._dc=nI.delayedCall(l||.25,function(){Z._vx.reset(),Z._vy.reset(),H.pause(),u&&u(Z)}).pause(),Z.deltaX=Z.deltaY=0,Z._vx=io(0,50,!0),Z._vy=io(0,50,!0),Z.scrollX=tt,Z.scrollY=te,Z.isDragging=Z.isGesturing=Z.isPressed=!1,nG(this),Z.enable=function(t){return!Z.isEnabled&&(n8(ts?ta:i,"scroll",n7),n.indexOf("scroll")>=0&&n8(ts?ta:i,"scroll",tx,J,L),n.indexOf("wheel")>=0&&n8(i,"wheel",tb,J,L),(n.indexOf("touch")>=0&&nU||n.indexOf("pointer")>=0)&&(n8(i,nj[0],tg,J,L),n8(ta,nj[2],tm),n8(ta,nj[3],tm),N&&n8(i,"click",tc,!0,!0),B&&n8(i,"click",tM),D&&n8(ta,"gesturestart",tv),R&&n8(ta,"gestureend",ty),C&&n8(i,nq+"enter",tw),E&&n8(i,nq+"leave",tk),S&&n8(i,nq+"move",tT)),Z.isEnabled=!0,Z.isDragging=Z.isGesturing=Z.isPressed=V=W=!1,Z._vx.reset(),Z._vy.reset(),tr=tt(),tn=te(),t&&t.type&&tg(t),F&&F(Z)),Z},Z.disable=function(){Z.isEnabled&&(n$.filter(function(t){return t!==Z&&n3(t.target)}).length||n6(ts?ta:i,"scroll",n7),Z.isPressed&&(Z._vx.reset(),Z._vy.reset(),n6(P?i:ta,nj[1],t_,!0)),n6(ts?ta:i,"scroll",tx,L),n6(i,"wheel",tb,L),n6(i,nj[0],tg,L),n6(ta,nj[2],tm),n6(ta,nj[3],tm),n6(i,"click",tc,!0),n6(i,"click",tM),n6(ta,"gesturestart",tv),n6(ta,"gestureend",ty),n6(i,nq+"enter",tw),n6(i,nq+"leave",tk),n6(i,nq+"move",tT),Z.isEnabled=Z.isPressed=Z.isDragging=!1,I&&I(Z))},Z.kill=Z.revert=function(){Z.disable();var t=n$.indexOf(Z);t>=0&&n$.splice(t,1),nV===Z&&(nV=0)},n$.push(Z),P&&n3(i)&&(nV=Z),Z.enable(h)},t=[{key:"velocityX",get:function(){return this._vx.getVelocity()}},{key:"velocityY",get:function(){return this._vy.getVelocity()}}],function(t,e){for(var r=0;r-1);return r["_"+e+"Clamp"]=n,n?t.substr(6,t.length-7):t},i3=function(t,e){return e&&(!so(t)||"clamp("!==t.substr(0,6))?"clamp("+t+")":t},i8=function(){return iC=1},i6=function(){return iC=0},i4=function(t){return t},i9=function(t){return Math.round(1e5*t)/1e5||0},i7=function(){return"u">typeof window},st=function(){return id||i7()&&(id=window.gsap)&&id.registerPlugin&&id},se=function(t){return!!~ix.indexOf(t)},sr=function(t){return("Height"===t?iH:ig["inner"+t])||iv["client"+t]||iy["client"+t]},sn=function(t){return n5(t,"getBoundingClientRect")||(se(t)?function(){return ac.width=ig.innerWidth,ac.height=iH,ac}:function(){return sS(t)})},si=function(t,e,r){var n=r.d,i=r.d2,s=r.a;return(s=n5(t,"getBoundingClientRect"))?function(){return s()[n]}:function(){return(e?sr(i):t["client"+i])||0}},ss=function(t,e){var r=e.s,n=e.d2,i=e.d,s=e.a;return Math.max(0,(s=n5(t,r="scroll"+n))?s()-sn(t)()[i]:se(t)?(iv[r]||iy[r])-sr(n):t[r]-t["offset"+n])},sa=function(t,e){for(var r=0;r0){for(t-=i,s=0;s=t)return r[s];return r[s-1]}for(s=r.length,t+=i;s--;)if(r[s]<=t)return r[s];return r[0]}:function(r,n,i){void 0===i&&(i=.001);var s=e(r);return!n||Math.abs(s-r)r&&(n*=e/100),t=t.substr(0,r-1)),t=n+(t in sL?sL[t]*e:~t.indexOf("%")?parseFloat(t)*e/100:parseFloat(t)||0)}return t},sX=function(t,e,r,n,i,s,a,o){var u=i.startColor,l=i.endColor,c=i.fontSize,f=i.indent,h=i.fontWeight,p=im.createElement("div"),d=se(r)||"fixed"===n5(r,"pinType"),_=-1!==t.indexOf("scroller"),g=d?iy:"IFRAME"===r.tagName?r.contentDocument.body:r,m=-1!==t.indexOf("start"),v=m?u:l,y="border-color:"+v+";font-size:"+c+";color:"+v+";font-weight:"+h+";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;";return y+="position:"+((_||o)&&d?"fixed;":"absolute;"),(_||o||!d)&&(y+=(n===ir?s_:sg)+":"+(s+parseFloat(f))+"px;"),a&&(y+="box-sizing:border-box;text-align:left;width:"+a.offsetWidth+"px;"),p._isStart=m,p.setAttribute("class","gsap-marker-"+t+(e?" marker-"+e:"")),p.style.cssText=y,p.innerText=e||0===e?t+"-"+e:t,g.children[0]?g.insertBefore(p,g.children[0]):g.appendChild(p),p._offset=p["offset"+n.op.d2],sU(p,0,n,m),p},sU=function(t,e,r,n){var i={display:"block"},s=r[n?"os2":"p2"],a=r[n?"p2":"os2"];t._isFlipped=n,i[r.a+"Percent"]=n?-100:0,i[r.a]=n?"1px":0,i["border"+s+sk]=1,i["border"+a+sk]=0,i[r.p]=e+"px",id.set(t,i)},sq=[],sH={},sW=function(){return iJ()-i1>34&&(iG||(iG=requestAnimationFrame(ae)))},sV=function(){iI&&iI.isPressed&&!(iI.startX>iy.clientWidth)||(nK.cache++,iI?iG||(iG=requestAnimationFrame(ae)):ae(),i1||sK("scrollStart"),i1=iJ())},sj=function(){iL=ig.innerWidth,iY=ig.innerHeight},sG=function(t){nK.cache++,(!0===t||!iO&&!iF&&!im.fullscreenElement&&!im.webkitFullscreenElement&&(!iB||iL!==ig.innerWidth||Math.abs(ig.innerHeight-iY)>.25*ig.innerHeight))&&ib.restart(!0)},sQ={},sZ=[],s$=function t(){return sF(am,"scrollEnd",t)||s9(!0)},sK=function(t){return sQ[t]&&sQ[t].map(function(t){return t()})||sZ},sJ=[],s0=function(t){for(var e=0;ee,n=t._startClamp&&t.start>=e;(r||n)&&t.setPositions(n?e-1:t.start,r?Math.max(n?e:t.start+1,e):t.end,!0)}),s4(!1),iV=0,r.forEach(function(t){return t&&t.render&&t.render(-1)}),nK.forEach(function(t){su(t)&&(t.smooth&&requestAnimationFrame(function(){return t.target.style.scrollBehavior="smooth"}),t.rec&&t(t.rec))}),s5(iU,1),ib.pause(),s3++,iQ=2,ae(2),sq.forEach(function(t){return su(t.vars.onRefresh)&&t.vars.onRefresh(t)}),iQ=am.isRefreshing=!1,sK("refresh")},s7=0,at=1,ae=function(t){if(2===t||!iQ&&!iW){am.isUpdating=!0,i$&&i$.update(0);var e=sq.length,r=iJ(),n=r-i0>=50,i=e&&sq[0].scroll();if(at=s7>i?-1:1,iQ||(s7=i),n&&(i1&&!iC&&r-i1>200&&(i1=0,sK("scrollEnd")),ik=i0,i0=r),at<0){for(iS=e;iS-- >0;)sq[iS]&&sq[iS].update(0,n);at=1}else for(iS=0;iS20),r-=r-x}if(p&&(o[p]=t||-.001,t<0&&(t=0)),s){var w=t+r,k=s._isStart;d="scroll"+n.d2,sU(s,w,n,k&&w>20||!k&&(c?Math.max(iy[d],iv[d]):s.parentNode[d])<=w+1),c&&(u=sS(a),c&&(s.style[n.op.p]=u[n.op.p]-n.op.m-s._offset+"px"))}return h&&g&&(d=sS(g),h.seek(f),_=sS(g),h._caScrollDist=d[n.p]-_[n.p],t=t/h._caScrollDist*f),h&&h.seek(m),h?t:Math.round(t)},ah=/(webkit|moz|length|cssText|inset)/i,ap=function(t,e,r,n){if(t.parentNode!==e){var i,s,a=t.style;if(e===iy){for(i in t._stOrig=a.cssText,s=sO(t))+i||ah.test(i)||!s[i]||"string"!=typeof a[i]||"0"===i||(a[i]=s[i]);a.top=r,a.left=n}else a.cssText=t._stOrig;id.core.getCache(t).uncache=1,e.appendChild(t)}},ad=function(t,e,r){var n=e,i=n;return function(e){var s=Math.round(t());return s!==n&&s!==i&&Math.abs(s-n)>3&&Math.abs(s-i)>3&&(e=s,r&&r()),i=n,n=Math.round(e)}},a_=function(t,e,r){var n={};n[e.p]="+="+r,id.set(t,n)},ag=function(t,e){var r=ia(t,e),n="_scroll"+e.p2,i=function e(i,s,a,o,u){var l=e.tween,c=s.onComplete,f={};a=a||r();var h=ad(r,a,function(){l.kill(),e.tween=0});return u=o&&u||0,o=o||i-a,l&&l.kill(),s[n]=i,s.inherit=!1,s.modifiers=f,f[n]=function(){return h(a+o*l.ratio+u*l.ratio*l.ratio)},s.onUpdate=function(){nK.cache++,e.tween&&ae()},s.onComplete=function(){e.tween=0,c&&c.call(l)},l=e.tween=id.to(t,s)};return t[n]=r,r.wheelHandler=function(){return i.tween&&i.tween.kill()&&(i.tween=0)},sz(t,"wheel",r.wheelHandler),am.isTouch&&sz(t,"touchmove",r.wheelHandler),i},am=function(){function t(e,r){i_||t.register(id)||console.warn("Please gsap.registerPlugin(ScrollTrigger)"),iX(this),this.init(e,r)}return t.prototype.init=function(e,r){if(this.progress=this.start=0,this.vars&&this.kill(!0,!0),!i2){this.update=this.refresh=this.kill=i4;return}var n,i,s,a,o,u,l,c,f,h,p,d,_,g,m,v,y,x,b,T,w,k,M,O,C,E,S,A,P,D,R,z,F,I,B,Y,L,N,X,U,q,H=e=sE(so(e)||sl(e)||e.nodeType?{trigger:e}:e,sY),W=H.onUpdate,V=H.toggleClass,j=H.id,G=H.onToggle,Q=H.onRefresh,Z=H.scrub,$=H.trigger,K=H.pin,J=H.pinSpacing,tt=H.invalidateOnRefresh,te=H.anticipatePin,tr=H.onScrubComplete,tn=H.onSnapComplete,ti=H.once,ts=H.snap,ta=H.pinReparent,to=H.pinSpacer,tu=H.containerAnimation,tl=H.fastScrollEnd,tc=H.preventOverlaps,tf=e.horizontal||e.containerAnimation&&!1!==e.horizontal?ie:ir,th=!Z&&0!==Z,tp=ii(e.scroller||ig),td=id.core.getCache(tp),t_=se(tp),tg=("pinType"in e?e.pinType:n5(tp,"pinType")||t_&&"fixed")==="fixed",tm=[e.onEnter,e.onLeave,e.onEnterBack,e.onLeaveBack],tv=th&&e.toggleActions.split(" "),ty="markers"in e?e.markers:sY.markers,tx=t_?0:parseFloat(sO(tp)["border"+tf.p2+sk])||0,tb=this,tT=e.onRefreshInit&&function(){return e.onRefreshInit(tb)},tw=si(tp,t_,tf),tk=!t_||~nJ.indexOf(tp)?sn(tp):function(){return ac},tM=0,tO=0,tC=0,tE=ia(tp,tf);if(tb._startClamp=tb._endClamp=!1,tb._dir=tf,te*=45,tb.scroller=tp,tb.scroll=tu?tu.time.bind(tu):tE,u=tE(),tb.vars=e,r=r||e.animation,"refreshPriority"in e&&(iR=1,-9999===e.refreshPriority&&(i$=tb)),td.tweenScroll=td.tweenScroll||{top:ag(tp,ir),left:ag(tp,ie)},tb.tweenTo=s=td.tweenScroll[tf.p],tb.scrubDuration=function(t){(B=sl(t)&&t)?I?I.duration(t):I=id.to(r,{ease:"expo",totalProgress:"+=0",inherit:!1,duration:B,paused:!0,onComplete:function(){return tr&&tr(tb)}}):(I&&I.progress(1).kill(),I=0)},r&&(r.vars.lazy=!1,r._initted&&!tb.isReverted||!1!==r.vars.immediateRender&&!1!==e.immediateRender&&r.duration()&&r.render(0,!0,!0),tb.animation=r.pause(),r.scrollTrigger=tb,tb.scrubDuration(Z),z=0,j||(j=r.vars.id)),ts&&((!sc(ts)||ts.push)&&(ts={snapTo:ts}),"scrollBehavior"in iy.style&&id.set(t_?[iy,iv]:tp,{scrollBehavior:"auto"}),nK.forEach(function(t){return su(t)&&t.target===(t_?im.scrollingElement||iv:tp)&&(t.smooth=!1)}),o=su(ts.snapTo)?ts.snapTo:"labels"===ts.snapTo?(n=r,function(t){return id.utils.snap(sP(n),t)}):"labelsDirectional"===ts.snapTo?(i=r,function(t,e){return sD(sP(i))(t,e.direction)}):!1!==ts.directional?function(t,e){return sD(ts.snapTo)(t,iJ()-tO<500?0:e.direction)}:id.utils.snap(ts.snapTo),Y=sc(Y=ts.duration||{min:.1,max:2})?iw(Y.min,Y.max):iw(Y,Y),L=id.delayedCall(ts.delay||B/2||.1,function(){var t=tE(),e=iJ()-tO<500,n=s.tween;if((e||10>Math.abs(tb.getVelocity()))&&!n&&!iC&&tM!==t){var i,a,u=(t-c)/v,l=r&&!th?r.totalProgress():u,h=e?0:(l-F)/(iJ()-ik)*1e3||0,p=id.utils.clamp(-u,1-u,sp(h/2)*h/.185),d=u+(!1===ts.inertia?0:p),_=ts,g=_.onStart,m=_.onInterrupt,y=_.onComplete;if(sl(i=o(d,tb))||(i=d),a=Math.max(0,Math.round(c+i*v)),t<=f&&t>=c&&a!==t){if(n&&!n._initted&&n.data<=sp(a-t))return;!1===ts.inertia&&(p=i-u),s(a,{duration:Y(sp(.185*Math.max(sp(d-l),sp(i-l))/h/.05||0)),ease:ts.ease||"power3",data:sp(a-t),onInterrupt:function(){return L.restart(!0)&&m&&sh(tb,m)},onComplete:function(){tb.update(),tM=tE(),r&&!th&&(I?I.resetTo("totalProgress",i,r._tTime/r._tDur):r.progress(i)),z=F=r&&!th?r.totalProgress():tb.progress,tn&&tn(tb),y&&sh(tb,y)}},t,p*v,a-t-p*v),g&&sh(tb,g,s.tween)}}else tb.isActive&&tM!==t&&L.restart(!0)}).pause()),j&&(sH[j]=tb),(q=($=tb.trigger=ii($||!0!==K&&K))&&$._gsap&&$._gsap.stRevert)&&(q=q(tb)),K=!0===K?$:ii(K),so(V)&&(V={targets:$,className:V}),K&&(!1===J||J===sw||(J=(!!J||!K.parentNode||!K.parentNode.style||"flex"!==sO(K.parentNode).display)&&sT),tb.pin=K,(a=id.core.getCache(K)).spacer?y=a.pinState:(to&&((to=ii(to))&&!to.nodeType&&(to=to.current||to.nativeElement),a.spacerIsNative=!!to,to&&(a.spacerState=au(to))),a.spacer=T=to||im.createElement("div"),T.classList.add("pin-spacer"),j&&T.classList.add("pin-spacer-"+j),a.pinState=y=au(K)),!1!==e.force3D&&id.set(K,{force3D:!0}),tb.spacer=T=a.spacer,E=(R=sO(K))[J+tf.os2],k=id.getProperty(K),M=id.quickSetter(K,tf.a,"px"),as(K,T,R),b=au(K)),ty){g=sc(ty)?sE(ty,sB):sB,d=sX("scroller-start",j,tp,tf,g,0),_=sX("scroller-end",j,tp,tf,g,0,d),w=d["offset"+tf.op.d2];var tS=ii(n5(tp,"content")||tp);h=this.markerStart=sX("start",j,tS,tf,g,w,0,tu),p=this.markerEnd=sX("end",j,tS,tf,g,w,0,tu),tu&&(U=id.quickSetter([h,p],tf.a,"px")),tg||nJ.length&&!0===n5(tp,"fixedMarkers")||(sC(t_?iy:tp),id.set([d,_],{force3D:!0}),A=id.quickSetter(d,tf.a,"px"),D=id.quickSetter(_,tf.a,"px"))}if(tu){var tA=tu.vars.onUpdate,tP=tu.vars.onUpdateParams;tu.eventCallback("onUpdate",function(){tb.update(0,0,1),tA&&tA.apply(tu,tP||[])})}if(tb.previous=function(){return sq[sq.indexOf(tb)-1]},tb.next=function(){return sq[sq.indexOf(tb)+1]},tb.revert=function(t,e){if(!e)return tb.kill(!0);var n=!1!==t||!tb.enabled,i=iO;n!==tb.isReverted&&(n&&(N=Math.max(tE(),tb.scroll.rec||0),tC=tb.progress,X=r&&r.progress()),h&&[h,p,d,_].forEach(function(t){return t.style.display=n?"none":"block"}),n&&(iO=tb,tb.update(n)),!K||ta&&tb.isActive||(n?ai(K,T,y):as(K,T,sO(K),S)),n||tb.update(n),iO=i,tb.isReverted=n)},tb.refresh=function(n,i,a,o){if(!iO&&tb.enabled||i){if(K&&n&&i1)return void sz(t,"scrollEnd",s$);!iQ&&tT&&tT(tb),iO=tb,s.tween&&!a&&(s.tween.kill(),s.tween=0),I&&I.pause(),tt&&r&&(r.revert({kill:!1}).invalidate(),r.getChildren?r.getChildren(!0,!0,!1).forEach(function(t){return t.vars.immediateRender&&t.render(0,!0,!0)}):r.vars.immediateRender&&r.render(0,!0,!0)),tb.isReverted||tb.revert(!0,!0),tb._subPinOffset=!1;var g,w,M,E,A,D,R,z,F,B,Y,U,q,H=tw(),W=tk(),V=tu?tu.duration():ss(tp,tf),j=v<=.01||!v,G=0,Z=o||0,te=sc(a)?a.end:e.end,tr=e.endTrigger||$,tn=sc(a)?a.start:e.start||(0!==e.start&&$?K?"0 0":"0 100%":0),ti=tb.pinnedContainer=e.pinnedContainer&&ii(e.pinnedContainer,tb),ts=$&&Math.max(0,sq.indexOf(tb))||0,to=ts;for(ty&&sc(a)&&(U=id.getProperty(d,tf.p),q=id.getProperty(_,tf.p));to-- >0;)(D=sq[to]).end||D.refresh(0,1)||(iO=tb),(R=D.pin)&&(R===$||R===K||R===ti)&&!D.isReverted&&(B||(B=[]),B.unshift(D),D.revert(!0,!0)),D!==sq[to]&&(ts--,to--);for(su(tn)&&(tn=tn(tb)),c=af(tn=i5(tn,"start",tb),$,H,tf,tE(),h,d,tb,W,tx,tg,V,tu,tb._startClamp&&"_startClamp")||(K?-.001:0),su(te)&&(te=te(tb)),so(te)&&!te.indexOf("+=")&&(~te.indexOf(" ")?te=(so(tn)?tn.split(" ")[0]:"")+te:(G=sN(te.substr(2),H),te=so(tn)?tn:(tu?id.utils.mapRange(0,tu.duration(),tu.scrollTrigger.start,tu.scrollTrigger.end,c):c)+G,tr=$)),te=i5(te,"end",tb),f=Math.max(c,af(te||(tr?"100% 0":V),tr,H,tf,tE()+G,p,_,tb,W,tx,tg,V,tu,tb._endClamp&&"_endClamp"))||-.001,G=0,to=ts;to--;)(R=(D=sq[to]||{}).pin)&&D.start-D._pinPush<=c&&!tu&&D.end>0&&(g=D.end-(tb._startClamp?Math.max(0,D.start):D.start),(R===$&&D.start-D._pinPush=ss(tp,tf)))g=sO(K),E=tf===ir,M=tE(),O=parseFloat(k(tf.a))+Z,!V&&f>1&&(Y={style:Y=(t_?im.scrollingElement||iv:tp).style,value:Y["overflow"+tf.a.toUpperCase()]},t_&&"scroll"!==sO(iy)["overflow"+tf.a.toUpperCase()]&&(Y.style["overflow"+tf.a.toUpperCase()]="scroll")),as(K,T,g),b=au(K),w=sS(K,!0),z=tg&&ia(tp,E?ie:ir)(),J?((S=[J+tf.os2,v+Z+"px"]).t=T,(to=J===sT?sA(K,tf)+v+Z:0)&&(S.push(tf.d,to+"px"),"auto"!==T.style.flexBasis&&(T.style.flexBasis=to+"px")),ao(S),ti&&sq.forEach(function(t){t.pin===ti&&!1!==t.vars.pinSpacing&&(t._subPinOffset=!0)}),tg&&tE(N)):(to=sA(K,tf))&&"auto"!==T.style.flexBasis&&(T.style.flexBasis=to+"px"),tg&&((A={top:w.top+(E?M-c:z)+"px",left:w.left+(E?z:M-c)+"px",boxSizing:"border-box",position:"fixed"})[sm]=A["max"+sk]=Math.ceil(w.width)+"px",A[sv]=A["max"+sM]=Math.ceil(w.height)+"px",A[sw]=A[sw+"Top"]=A[sw+sy]=A[sw+sb]=A[sw+sx]="0",A[sT]=g[sT],A[sT+"Top"]=g[sT+"Top"],A[sT+sy]=g[sT+sy],A[sT+sb]=g[sT+sb],A[sT+sx]=g[sT+sx],x=al(y,A,ta),iQ&&tE(0)),r?(F=r._initted,iz(1),r.render(r.duration(),!0,!0),C=k(tf.a)-O+v+Z,P=Math.abs(v-C)>1,tg&&P&&x.splice(x.length-2,2),r.render(0,!0,!0),F||r.invalidate(!0),r.parent||r.totalTime(r.totalTime()),iz(0)):C=v,Y&&(Y.value?Y.style["overflow"+tf.a.toUpperCase()]=Y.value:Y.style.removeProperty("overflow-"+tf.a));else if($&&tE()&&!tu)for(w=$.parentNode;w&&w!==iy;)w._pinOffset&&(c-=w._pinOffset,f-=w._pinOffset),w=w.parentNode;B&&B.forEach(function(t){return t.revert(!1,!0)}),tb.start=c,tb.end=f,u=l=iQ?N:tE(),tu||iQ||(u0?sq.slice(0,e).reverse():sq.slice(e+1);return(so(t)?r.filter(function(e){return e.vars.preventOverlaps===t}):r).filter(function(t){return tb.direction>0?t.end<=c:t.start>=f})},tb.update=function(t,e,n){if(!tu||n||t){var i,a,o,h,p,_,g,m=!0===iQ?N:tb.scroll(),y=t?0:(m-c)/v,w=y<0?0:y>1?1:y||0,k=tb.progress;if(e&&(l=u,u=tu?tE():m,ts&&(F=z,z=r&&!th?r.totalProgress():w)),te&&K&&!iO&&!iK&&i1&&(!w&&cm+(m-l)/(iJ()-ik)*te&&(w=.9999)),w!==k&&tb.enabled){if(h=(p=(i=tb.isActive=!!w&&w<1)!=(!!k&&k<1))||!!w!=!!k,tb.direction=w>k?1:-1,tb.progress=w,h&&!iO&&(a=w&&!k?0:1===w?1:1===k?2:3,th&&(o=!p&&"none"!==tv[a+1]&&tv[a+1]||tv[a],g=r&&("complete"===o||"reset"===o||o in r))),tc&&(p||g)&&(g||Z||!r)&&(su(tc)?tc(tb):tb.getTrailing(tc).forEach(function(t){return t.endAnimation()})),!th&&(!I||iO||iK?r&&r.totalProgress(w,!!(iO&&(tO||t))):(I._dp._time-I._start!==I._time&&I.render(I._dp._time-I._start),I.resetTo?I.resetTo("totalProgress",w,r._tTime/r._tDur):(I.vars.totalProgress=w,I.invalidate().restart()))),K)if(t&&J&&(T.style[J+tf.os2]=E),tg){if(h){if(_=!t&&w>k&&f+1>m&&m+1>=ss(tp,tf),ta)if(!t&&(i||_)){var S=sS(K,!0),R=m-c;ap(K,iy,S.top+(tf===ir?R:0)+"px",S.left+(tf===ir?0:R)+"px")}else ap(K,T);ao(i||_?x:b),P&&w<1&&i||M(O+(1!==w||_?0:C))}}else M(i9(O+C*w));!ts||s.tween||iO||iK||L.restart(!0),V&&(p||ti&&w&&(w<1||!ij))&&iT(V.targets).forEach(function(t){return t.classList[i||ti?"add":"remove"](V.className)}),!W||th||t||W(tb),h&&!iO?(th&&(g&&("complete"===o?r.pause().totalProgress(1):"reset"===o?r.restart(!0).pause():"restart"===o?r.restart(!0):r[o]()),W&&W(tb)),(p||!ij)&&(G&&p&&sh(tb,G),tm[a]&&sh(tb,tm[a]),ti&&(1===w?tb.kill(!1,1):tm[a]=0),!p&&tm[a=1===w?1:3]&&sh(tb,tm[a])),tl&&!i&&Math.abs(tb.getVelocity())>(sl(tl)?tl:2500)&&(sf(tb.callbackAnimation),I?I.progress(1):sf(r,"reverse"===o?1:!w,1))):th&&W&&!iO&&W(tb)}if(D){var B=tu?m/tu.duration()*(tu._caScrollDist||0):m;A(B+ +!!d._isFlipped),D(B)}U&&U(-m/tu.duration()*(tu._caScrollDist||0))}},tb.enable=function(e,r){tb.enabled||(tb.enabled=!0,sz(tp,"resize",sG),t_||sz(tp,"scroll",sV),tT&&sz(t,"refreshInit",tT),!1!==e&&(tb.progress=tC=0,u=l=tM=tE()),!1!==r&&tb.refresh())},tb.getTween=function(t){return t&&s?s.tween:I},tb.setPositions=function(t,e,r,n){if(tu){var i=tu.scrollTrigger,s=tu.duration(),a=i.end-i.start;t=i.start+a*t/s,e=i.start+a*e/s}tb.refresh(!1,!1,{start:i3(t,r&&!!tb._startClamp),end:i3(e,r&&!!tb._endClamp)},n),tb.update()},tb.adjustPinSpacing=function(t){if(S&&t){var e=S.indexOf(tf.d)+1;S[e]=parseFloat(S[e])+t+"px",S[1]=parseFloat(S[1])+t+"px",ao(S)}},tb.disable=function(e,r){if(!1!==e&&tb.revert(!0,!0),tb.enabled&&(tb.enabled=tb.isActive=!1,r||I&&I.pause(),N=0,a&&(a.uncache=1),tT&&sF(t,"refreshInit",tT),L&&(L.pause(),s.tween&&s.tween.kill()&&(s.tween=0)),!t_)){for(var n=sq.length;n--;)if(sq[n].scroller===tp&&sq[n]!==tb)return;sF(tp,"resize",sG),t_||sF(tp,"scroll",sV)}},tb.kill=function(t,n){tb.disable(t,n),I&&!n&&I.kill(),j&&delete sH[j];var i=sq.indexOf(tb);i>=0&&sq.splice(i,1),i===iS&&at>0&&iS--,i=0,sq.forEach(function(t){return t.scroller===tb.scroller&&(i=1)}),i||iQ||(tb.scroll.rec=0),r&&(r.scrollTrigger=null,t&&r.revert({kill:!1}),n||r.kill()),h&&[h,p,d,_].forEach(function(t){return t.parentNode&&t.parentNode.removeChild(t)}),i$===tb&&(i$=0),K&&(a&&(a.uncache=1),i=0,sq.forEach(function(t){return t.pin===K&&i++}),i||(a.spacer=0)),e.onKill&&e.onKill(tb)},sq.push(tb),tb.enable(!1,!1),q&&q(tb),r&&r.add&&!v){var tD=tb.update;tb.update=function(){tb.update=tD,nK.cache++,c||f||tb.refresh()},id.delayedCall(.01,tb.update),v=.01,c=f=0}else tb.refresh();K&&s8()},t.register=function(e){return i_||(id=e||st(),i7()&&window.document&&t.enable(),i_=i2),i_},t.defaults=function(t){if(t)for(var e in t)sY[e]=t[e];return sY},t.disable=function(t,e){i2=0,sq.forEach(function(r){return r[e?"kill":"disable"](t)}),sF(ig,"wheel",sV),sF(im,"scroll",sV),clearInterval(iM),sF(im,"touchcancel",i4),sF(iy,"touchstart",i4),sR(sF,im,"pointerdown,touchstart,mousedown",i8),sR(sF,im,"pointerup,touchend,mouseup",i6),ib.kill(),sa(sF);for(var r=0;r0&&n.left+i0&&n.top+i=0&&sJ.splice(e,5),sJ.push(t,t.style.cssText,t.getBBox&&t.getAttribute("transform"),id.core.getCache(t),iX())}}):sJ},am.revert=function(t,e){return s2(!t,e)},am.create=function(t,e){return new am(t,e)},am.refresh=function(t){return t?sG(!0):(i_||am.register())&&s9(!0)},am.update=function(t){return++nK.cache&&ae(2*(!0===t))},am.clearScrollMemory=s5,am.maxScroll=function(t,e){return ss(t,e?ie:ir)},am.getScrollFunc=function(t,e){return ia(ii(t),e?ie:ir)},am.getById=function(t){return sH[t]},am.getAll=function(){return sq.filter(function(t){return"ScrollSmoother"!==t.vars.id})},am.isScrolling=function(){return!!i1},am.snapDirectional=sD,am.addEventListener=function(t,e){var r=sQ[t]||(sQ[t]=[]);~r.indexOf(e)||r.push(e)},am.removeEventListener=function(t,e){var r=sQ[t],n=r&&r.indexOf(e);n>=0&&r.splice(n,1)},am.batch=function(t,e){var r,n=[],i={},s=e.interval||.016,a=e.batchMax||1e9,o=function(t,e){var r=[],n=[],i=id.delayedCall(s,function(){e(r,n),r=[],n=[]}).pause();return function(t){r.length||i.restart(!0),r.push(t.trigger),n.push(t),a<=r.length&&i.progress(1)}};for(r in e)i[r]="on"===r.substr(0,2)&&su(e[r])&&"onRefreshInit"!==r?o(r,e[r]):e[r];return su(a)&&(a=a(),sz(am,"refresh",function(){return a=e.batchMax()})),iT(t).forEach(function(t){var e={};for(r in i)e[r]=i[r];e.trigger=t,n.push(am.create(e))}),n};var av,ay=function(t,e,r,n){return e>n?t(n):e<0&&t(0),r>n?(n-e)/(r-e):r<0?e/(e-r):1},ax=function t(e,r){!0===r?e.style.removeProperty("touch-action"):e.style.touchAction=!0===r?"auto":r?"pan-"+r+(ip.isTouch?" pinch-zoom":""):"none",e===iv&&t(iy,r)},ab={auto:1,scroll:1},aT=function(t){var e,r=t.event,n=t.target,i=t.axis,s=(r.changedTouches?r.changedTouches[0]:r).target,a=s._gsap||id.core.getCache(s),o=iJ();if(!a._isScrollT||o-a._isScrollT>2e3){for(;s&&s!==iy&&(s.scrollHeight<=s.clientHeight&&s.scrollWidth<=s.clientWidth||!(ab[(e=sO(s)).overflowY]||ab[e.overflowX]));)s=s.parentNode;a._isScroll=s&&s!==n&&!se(s)&&(ab[(e=sO(s)).overflowY]||ab[e.overflowX]),a._isScrollT=o}(a._isScroll||"x"===i)&&(r.stopPropagation(),r._gsapAllow=!0)},aw=function(t,e,r,n){return ip.create({target:t,capture:!0,debounce:!1,lockAxis:!0,type:e,onWheel:n=n&&aT,onPress:n,onDrag:n,onScroll:n,onEnable:function(){return r&&sz(im,ip.eventTypes[0],aM,!1,!0)},onDisable:function(){return sF(im,ip.eventTypes[0],aM,!0)}})},ak=/(input|label|select|textarea)/i,aM=function(t){var e=ak.test(t.target.tagName);(e||av)&&(t._gsapAllow=!0,av=e)},aO=function(t){sc(t)||(t={}),t.preventDefault=t.isNormalizer=t.allowClicks=!0,t.type||(t.type="wheel,touch"),t.debounce=!!t.debounce,t.id=t.id||"normalizer";var e,r,n,i,s,a,o,u,l=t,c=l.normalizeScrollX,f=l.momentum,h=l.allowNestedScroll,p=l.onRelease,d=ii(t.target)||iv,_=id.core.globals().ScrollSmoother,g=_&&_.get(),m=iN&&(t.content&&ii(t.content)||g&&!1!==t.content&&!g.smooth()&&g.content()),v=ia(d,ir),y=ia(d,ie),x=1,b=(ip.isTouch&&ig.visualViewport?ig.visualViewport.scale*ig.visualViewport.width:ig.outerWidth)/ig.innerWidth,T=0,w=su(f)?function(){return f(e)}:function(){return f||2.8},k=aw(d,t.type,!0,h),M=function(){return i=!1},O=i4,C=i4,E=function(){r=ss(d,ir),C=iw(+!!iN,r),c&&(O=iw(0,ss(d,ie))),n=s3},S=function(){m._gsap.y=i9(parseFloat(m._gsap.y)+v.offset)+"px",m.style.transform="matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, "+parseFloat(m._gsap.y)+", 0, 1)",v.offset=v.cacheID=0},A=function(){if(i){requestAnimationFrame(M);var t=i9(e.deltaY/2),r=C(v.v-t);if(m&&r!==v.v+v.offset){v.offset=r-v.v;var n=i9((parseFloat(m&&m._gsap.y)||0)-v.offset);m.style.transform="matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, "+n+", 0, 1)",m._gsap.y=n+"px",v.cacheID=nK.cache,ae()}return!0}v.offset&&S(),i=!0},P=function(){E(),s.isActive()&&s.vars.scrollY>r&&(v()>r?s.progress(1)&&v(r):s.resetTo("scrollY",r))};return m&&id.set(m,{y:"+=0"}),t.ignoreCheck=function(t){return iN&&"touchmove"===t.type&&A(t)||x>1.05&&"touchstart"!==t.type||e.isGesturing||t.touches&&t.touches.length>1},t.onPress=function(){i=!1;var t=x;x=i9((ig.visualViewport&&ig.visualViewport.scale||1)/b),s.pause(),t!==x&&ax(d,x>1.01||!c&&"x"),a=y(),o=v(),E(),n=s3},t.onRelease=t.onGestureStart=function(t,e){if(v.offset&&S(),e){nK.cache++;var n,i,a=w();c&&(i=(n=y())+-(.05*a*t.velocityX)/.227,a*=ay(y,n,i,ss(d,ie)),s.vars.scrollX=O(i)),i=(n=v())+-(.05*a*t.velocityY)/.227,a*=ay(v,n,i,ss(d,ir)),s.vars.scrollY=C(i),s.invalidate().duration(a).play(.01),(iN&&s.vars.scrollY>=r||n>=r-1)&&id.to({},{onUpdate:P,duration:a})}else u.restart(!0);p&&p(t)},t.onWheel=function(){s._ts&&s.pause(),iJ()-T>1e3&&(n=0,T=iJ())},t.onChange=function(t,e,r,i,s){if(s3!==n&&E(),e&&c&&y(O(i[2]===e?a+(t.startX-t.x):y()+e-i[1])),r){v.offset&&S();var u=s[2]===r,l=u?o+t.startY-t.y:v()+r-s[1],f=C(l);u&&l!==f&&(o+=f-l),v(f)}(r||e)&&ae()},t.onEnable=function(){ax(d,!c&&"x"),am.addEventListener("refresh",P),sz(ig,"resize",P),v.smooth&&(v.target.style.scrollBehavior="auto",v.smooth=y.smooth=!1),k.enable()},t.onDisable=function(){ax(d,!0),sF(ig,"resize",P),am.removeEventListener("refresh",P),k.kill()},t.lockAxis=!1!==t.lockAxis,(e=new ip(t)).iOS=iN,iN&&!v()&&v(1),iN&&id.ticker.add(i4),u=e._dc,s=id.to(e,{ease:"power4",paused:!0,inherit:!1,scrollX:c?"+=0.1":"+=0",scrollY:"+=0.1",modifiers:{scrollY:ad(v,v(),function(){return s.pause()})},onUpdate:ae,onComplete:u.vars.onComplete}),e};am.sort=function(t){if(su(t))return sq.sort(t);var e=ig.pageYOffset||0;return am.getAll().forEach(function(t){return t._sortY=t.trigger?e+t.trigger.getBoundingClientRect().top:t.start+ig.innerHeight}),sq.sort(t||function(t,e){return -1e6*(t.vars.refreshPriority||0)+(t.vars.containerAnimation?1e6:t._sortY)-((e.vars.containerAnimation?1e6:e._sortY)+-1e6*(e.vars.refreshPriority||0))})},am.observe=function(t){return new ip(t)},am.normalizeScroll=function(t){if(void 0===t)return iI;if(!0===t&&iI)return iI.enable();if(!1===t){iI&&iI.kill(),iI=t;return}var e=t instanceof ip?t:aO(t);return iI&&iI.target===e.target&&iI.kill(),se(e.target)&&(iI=e),e},am.core={_getVelocityProp:io,_inputObserver:aw,_scrollers:nK,_proxies:nJ,bridge:{ss:function(){i1||sK("scrollStart"),i1=iJ()},ref:function(){return iO}}},st()&&id.registerPlugin(am),t.s(["ScrollTrigger",0,am],83495)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/06~35roaehny..js b/build/.next/static/chunks/06~35roaehny..js new file mode 100644 index 0000000..488cae1 --- /dev/null +++ b/build/.next/static/chunks/06~35roaehny..js @@ -0,0 +1,1069 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36202,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(89970),n=e.i(2018);e.s(["default",0,function(){let[e,a]=(0,r.useState)(0),o=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=setInterval(()=>{a(e=>+(0===e))},7e3);return()=>clearInterval(e)},[]),(0,r.useEffect)(()=>{if(!o.current)return;let e=o.current.querySelector(".owl-item.active");if(!e)return;let t=e.querySelector(".heading-content"),r=e.querySelector(".text-content"),n=e.querySelector(".wings-hero-actions"),a=[t,r,n].filter(Boolean);if(a.length){if(i.default.killTweensOf(a),window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return void i.default.set(a,{y:0,opacity:1,scale:1});t&&i.default.fromTo(t,{y:55,opacity:0,scale:.95},{y:0,opacity:1,scale:1,duration:1.1,ease:"power4.out"}),r&&i.default.fromTo(r,{y:30,opacity:0},{y:0,opacity:1,duration:.95,ease:"power3.out",delay:.25}),n&&i.default.fromTo(n,{y:24,opacity:0},{y:0,opacity:1,duration:.85,ease:"power3.out",delay:.38})}},[e]);let s=e=>{a(e)},l=()=>{a(e=>+(0===e))};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("link",{rel:"preload",as:"image",href:"/images/wings-heroslider4.png"}),(0,t.jsx)("link",{rel:"preload",as:"image",href:"/images/wings-heroslide2.png"}),(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .wings-hero-bg.elementor-repeater-item-3264830, + .wings-hero-bg.elementor-repeater-item-6867061 { + background-image: linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.06)), url('/images/wings-heroslider4.png') !important; + background-position: center !important; + background-repeat: no-repeat !important; + background-size: cover !important; + } + + .wings-hero-bg.elementor-repeater-item-6867061 { + background-image: linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.06)), url('/images/wings-heroslide2.png') !important; + } + + #doormile-wings, + #doormile-wings .content, + #doormile-wings .content-inner, + #doormile-wings .elementor { + max-width: 100vw !important; + overflow-x: hidden !important; + } + + .wings-hero-page, + .wings-hero-page .elementor-widget-container, + .wings-hero-page .logico-content-slider-widget, + .wings-hero-page .content-slider-wrapper, + .wings-hero-page .content-slider-container, + .wings-hero-page .content-slider, + .wings-hero-page .owl-stage-outer, + .wings-hero-page .owl-stage, + .wings-hero-page .owl-item, + .wings-hero-page .slider-item, + .wings-hero-page .slide-content, + .wings-hero-page .slide-content-inner { + max-width: 100% !important; + box-sizing: border-box !important; + } + + .wings-hero-page .slide-content { + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + align-items: center !important; + text-align: center !important; + width: 100% !important; + height: 100% !important; + padding: 0 !important; + box-sizing: border-box !important; + } + + .wings-hero-page .slide-content-inner { + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + align-items: center !important; + text-align: center !important; + width: 100% !important; + max-width: 1000px !important; + margin: 0 auto !important; + box-sizing: border-box !important; + } + + .wings-hero-page .content-slider-item-heading, + .wings-hero-page .content-slider-item-heading .heading-content { + text-align: center !important; + display: block !important; + width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 15px !important; + padding-right: 15px !important; + white-space: normal !important; + overflow-wrap: break-word !important; + } + + .wings-hero-page .content-slider-item-heading { + font-size: clamp(30px, 5.5vw, 80px) !important; + line-height: 1.05 !important; + } + + .wings-hero-page .content-slider-item-text { + display: flex !important; + justify-content: center !important; + width: 100% !important; + margin-top: 23px !important; + } + + .wings-hero-page .text-content { + text-align: center !important; + max-width: 680px !important; + width: 100% !important; + margin: 0 auto !important; + padding-left: 15px !important; + padding-right: 15px !important; + box-sizing: border-box !important; + white-space: normal !important; + overflow-wrap: break-word !important; + } + + .wings-hero-page .content-slider-item-text p { + font-size: clamp(16px, 1.35vw, 23px) !important; + line-height: 1.65 !important; + white-space: normal !important; + overflow-wrap: break-word !important; + } + + .wings-hero-actions { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: 16px; + margin-top: 30px; + position: relative; + z-index: 5; + opacity: 1; + visibility: visible; + } + + .wings-hero-actions .logico-alter-button { + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + opacity: 1; + visibility: visible; + } + + .wings-mobile-break { + display: none; + } + + .wings-hero-page a.wings-hero-primary, + .wings-hero-page a.wings-hero-secondary { + --logico-button-text-color: #ffffff; + --logico-button-border-color: rgba(255, 255, 255, 0.72); + --logico-button-background-color: rgba(255, 255, 255, 0); + --logico-button-text-hover: #ffffff; + --logico-button-border-hover: #c01227; + --logico-button-background-hover: #c01227; + --logico-button-icon-hover: #ffffff; + } + + .wings-hero-page a.wings-hero-primary { + --logico-button-border-color: #c01227; + --logico-button-background-color: #c01227; + } + + .wings-hero-page a.wings-hero-primary:hover, + .wings-hero-page a.wings-hero-secondary:hover { + color: #ffffff !important; + } + + @media (min-width: 1025px) { + .wings-hero-page.elementor-element-741f56c { + padding: 20px !important; + } + + .wings-hero-page .owl-carousel.owl-theme .content-item { + height: 800px !important; + min-height: 800px !important; + border-radius: 24px !important; + overflow: hidden !important; + } + } + + @media (max-width: 1024px) { + .wings-hero-page.elementor-element-741f56c { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + --padding-top: 0px !important; + --padding-block-start: 0px !important; + padding: 0 10px 10px 10px !important; + overflow: hidden !important; + border-radius: 25px !important; + } + + .wings-hero-page .owl-stage-outer { + height: 600px !important; + } + + .wings-hero-page .owl-carousel.owl-theme .content-item { + width: 100% !important; + min-height: 600px !important; + height: 600px !important; + border-radius: 25px !important; + overflow: hidden !important; + } + + .wings-hero-page .slide-content { + min-height: 600px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + } + + @media (max-width: 767px) { + .wings-hero-page.elementor-element-741f56c { + width: 100vw !important; + --padding-top: 0px !important; + --padding-block-start: 0px !important; + padding: 0 10px 10px 10px !important; + border-radius: 22px !important; + } + + .wings-hero-page .slide-content, + .wings-hero-page .slide-content-inner { + width: calc(100vw - 20px) !important; + max-width: calc(100vw - 20px) !important; + } + + .wings-hero-page .slide-content-inner { + margin-left: 0 !important; + margin-right: auto !important; + } + + .wings-hero-page .owl-stage-outer { + height: 520px !important; + } + + .wings-hero-page .owl-carousel.owl-theme .content-item, + .wings-hero-page .slide-content { + min-height: 520px !important; + height: 520px !important; + border-radius: 22px !important; + } + + .wings-hero-page .slide-content-inner { + width: 100% !important; + max-width: 100% !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + + .wings-hero-page .content-slider-item-heading { + max-width: 100% !important; + font-size: clamp(20px, 7vw, 32px) !important; + line-height: 1.12 !important; + } + + .wings-hero-page .content-slider-item-text p { + font-size: 14px !important; + line-height: 1.58 !important; + } + + .wings-hero-page .content-slider-item-text, + .wings-hero-page .text-content { + max-width: min(280px, calc(100vw - 70px)) !important; + width: min(280px, calc(100vw - 70px)) !important; + } + + .wings-hero-actions { + flex-direction: column; + gap: 10px; + margin-top: 18px; + } + + .wings-hero-actions .logico-alter-button { + min-width: 0 !important; + width: 190px !important; + padding: 0.78em 3.7em 0.78em 1.35em !important; + min-height: 42px !important; + font-size: 12px !important; + } + + .wings-mobile-break { + display: block; + } + + .wings-hero-page .slider-footer { + text-align: right !important; + margin-bottom: 24px !important; + } + + .wings-hero-page .slider-footer .slider-pagination { + justify-content: flex-end !important; + margin-left: 22px !important; + margin-right: 22px !important; + } + + .wings-hero-page .owl-dots, + .wings-hero-page .owl-nav { + display: none !important; + } + } + `}}),(0,t.jsx)("div",{className:"wings-hero-page elementor-element elementor-element-741f56c e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"741f56c","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-6c7cbcb elementor-widget elementor-widget-logico_content_slider","data-id":"6c7cbcb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_content_slider.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-content-slider-widget",children:(0,t.jsx)("div",{className:"content-slider-wrapper",children:(0,t.jsx)("div",{className:"content-slider-container",children:(0,t.jsxs)("div",{className:"content-slider owl-carousel owl-theme nav-view-vertical nav-h-position-right nav-v-position-bottom owl-loaded owl-drag",ref:o,children:[(0,t.jsx)("div",{className:"owl-stage-outer",style:{position:"relative",overflow:"hidden",height:"800px"},children:(0,t.jsxs)("div",{className:"owl-stage",style:{position:"relative",width:"100%",height:"100%"},children:[(0,t.jsx)("div",{className:`owl-item ${0===e?"active":""}`,style:{position:"relative",width:"100%",opacity:+(0===e),visibility:0===e?"visible":"hidden",transition:"opacity 0.8s ease-in-out, visibility 0.8s ease-in-out",zIndex:0===e?2:1},children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-3264830 slide-style-standard wings-hero-bg",children:(0,t.jsx)("div",{className:"slide-content",children:(0,t.jsxs)("div",{className:"slide-content-inner",children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",children:(0,t.jsxs)("span",{className:"heading-content",children:["Where Quick Commerce",(0,t.jsx)("br",{}),(0,t.jsx)(n.ShimmerText,{className:"font-extrabold",children:"Meets Quick Logistics"})]})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",children:(0,t.jsx)("div",{className:"text-content",children:(0,t.jsx)("p",{children:"MileTruth™ AI forecasts demand, protects promises, and coordinates every handoff from runway to doorstep."})})})]})})})}),(0,t.jsx)("div",{className:`owl-item ${1===e?"active":""}`,style:{position:"absolute",top:0,left:0,width:"100%",opacity:+(1===e),visibility:1===e?"visible":"hidden",transition:"opacity 0.8s ease-in-out, visibility 0.8s ease-in-out",zIndex:1===e?2:1},children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-6867061 slide-style-standard wings-hero-bg",children:(0,t.jsx)("div",{className:"slide-content",children:(0,t.jsxs)("div",{className:"slide-content-inner",children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",children:(0,t.jsxs)("span",{className:"heading-content",children:["Doormile Wings",(0,t.jsx)("br",{}),(0,t.jsx)(n.ShimmerText,{className:"font-extrabold",children:"Same-Day Air"}),(0,t.jsx)("br",{className:"wings-mobile-break"})," ",(0,t.jsx)(n.ShimmerText,{className:"font-extrabold",children:"Logistics"})]})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",children:(0,t.jsx)("div",{className:"text-content",children:(0,t.jsx)("p",{children:"Linking India's major regional capitals with AI-powered air movement and zero-emission EV last-mile delivery."})})})]})})})})]})}),(0,t.jsxs)("div",{className:"owl-nav",children:[(0,t.jsx)("button",{type:"button",className:"owl-next",onClick:l,"aria-label":"Next",style:{cursor:"pointer",border:"none",outline:"none"}}),(0,t.jsx)("button",{type:"button",className:"owl-prev",onClick:l,"aria-label":"Previous",style:{cursor:"pointer",border:"none",outline:"none"}})]}),(0,t.jsx)("div",{className:"slider-footer slider-footer-position-after slider-footer-width-full slider-footer-view-inside",children:(0,t.jsx)("div",{className:"slider-footer-content",children:(0,t.jsxs)("div",{className:"slider-pagination",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"10px"},children:[(0,t.jsxs)("div",{className:"slider-progress-wrapper",style:{marginRight:"35px",display:"flex",flexDirection:"column",alignItems:"flex-start"},children:[(0,t.jsxs)("div",{style:{fontSize:"16px",fontWeight:600,color:"#FFFFFF",marginBottom:"4px"},children:[(0,t.jsx)("span",{className:"slider-progress-current",children:0===e?"01":"02"})," / ",(0,t.jsx)("span",{className:"slider-progress-all",style:{opacity:.6},children:"02"})]}),(0,t.jsx)("div",{style:{width:"80px",height:"2px",background:"rgba(255, 255, 255, 0.2)",position:"relative",borderRadius:"1px",overflow:"hidden"},children:(0,t.jsx)("div",{style:{position:"absolute",left:0===e?"0":"50%",width:"50%",height:"100%",background:"#c01227",transition:"left 0.3s ease"}})})]}),(0,t.jsxs)("div",{className:"owl-dots owl-dots-6c7cbcb",style:{display:"none"},children:[(0,t.jsx)("button",{type:"button",role:"button",className:`owl-dot ${0===e?"active":""}`,onClick:()=>s(0),children:(0,t.jsx)("span",{})}),(0,t.jsx)("button",{type:"button",role:"button",className:`owl-dot ${1===e?"active":""}`,onClick:()=>s(1),children:(0,t.jsx)("span",{})})]})]})})})]})})})})})})})]})}])},63061,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(89970),n=e.i(83495),a=/[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig,o=/(?:(-)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig,s=/[\+\-]?\d*\.?\d+e[\+\-]?\d+/ig,l=/(^[#\.][a-z]|[a-y][a-z])/i,d=Math.PI/180,c=180/Math.PI,p=Math.sin,h=Math.cos,g=Math.abs,m=Math.sqrt,u=Math.atan2,f=function(e){return"string"==typeof e},w=function(e){return"number"==typeof e},x={},b={},y=function(e){return Math.round((e+1e8)%1*1e5)/1e5||(e<0?0:1)},v=function(e){return Math.round(1e5*e)/1e5||0},j=function(e){return Math.round(1e10*e)/1e10||0},k=function(e){return e.closed=.001>Math.abs(e[0]-e[e.length-2])&&.001>Math.abs(e[1]-e[e.length-1])},N=function(e,t,r,i){var n=e[t],a=1===i?6:R(n,r,i);if((a||!i)&&a+r+2t){for(;--n&&e[n]>t;);n<0&&(n=0)}else for(;e[++n] element or an SVG path data string")}var z=function(e,t){var r,i=document.createElementNS("http://www.w3.org/2000/svg","path"),n=[].slice.call(e.attributes),a=n.length;for(t=","+t+",";--a>-1;)r=n[a].nodeName.toLowerCase(),0>t.indexOf(","+r+",")&&i.setAttributeNS(null,r,n[a].nodeValue);return i},P={rect:"rx,ry,x,y,width,height",circle:"r,cx,cy",ellipse:"rx,ry,cx,cy",line:"x1,x2,y1,y2"},T=function(e,t){for(var r=t?t.split(","):[],i={},n=r.length;--n>-1;)i[r[n]]=+e.getAttribute(r[n])||0;return i};function A(e,t,r){var i,n=e[t],a=e[t+2],o=e[t+4];return n+=(a-n)*r,a+=(o-a)*r,n+=(a-n)*r,i=a+(o+(e[t+6]-o)*r-a)*r-n,n=e[t+1],a=e[t+3],o=e[t+5],n+=(a-n)*r,a+=(o-a)*r,n+=(a-n)*r,v(u(a+(o+(e[t+7]-o)*r-a)*r-n,i)*c)}function I(e,t,r){var i=Math.max(0,~~(g((r=void 0===r?1:j(r)||0)-(t=j(t)||0))-1e-8)),n=function(e){for(var t=[],r=0;rr&&(t=1-t,r=1-r,L(n),n.totalLength=0),t<0||r<0){var a=Math.abs(~~Math.min(t,r))+1;t+=a,r+=a}n.totalLength||W(n);var o,s,l,d,c,p,h,m,u=r>1,f=H(n,t,x,!0),w=H(n,r,b),y=w.segment,v=f.segment,k=w.segIndex,_=f.segIndex,S=w.i,z=f.i,P=_===k,T=S===z&&P;if(u||i){for(o=k<_||P&&SMath.abs(1-(r-t))?k=_-1:!w.t&&k?k--:N(n,k,S,w.t)&&o&&_++,1===f.t&&(_=(_+1)%n.length),c=[],h=1+(p=n.length)*i,m=_,h+=(p-_+k)%p,d=0;dk)&&n.splice(d,1);else y.angle=A(y,S+l,0),S+=l,f=y[S],w=y[S+1],y.length=y.totalLength=0,y.totalPoints=n.totalPoints=8,y.push(f,w,f,w,f,w,f,w);return n.totalLength=0,n}function W(e,t){var r,i,n;for(n=r=i=0;ng(n)&&.01>g(d)&&g(o)+g(p)<.01)e.length>8&&(e.splice(i,6),i-=6,k-=6);else for(r=1;r<=v;r++)f=1-(w=j*r),s=l-(l=(w*w*n+3*f*(w*a+f*o))*w),(b=m((h=u-(u=(w*w*d+3*f*(w*c+f*p))*w))*h+s*s))=1)return 0;var i=e[t],n=e[t+1],a=e[t+2],o=e[t+3],s=e[t+4],l=e[t+5],d=e[t+6],c=e[t+7],p=i+(a-i)*r,h=a+(s-a)*r,g=n+(o-n)*r,m=o+(l-o)*r,u=p+(h-p)*r,f=g+(m-g)*r,w=s+(d-s)*r,x=l+(c-l)*r;return h+=(w-h)*r,m+=(x-m)*r,e.splice(t+2,4,v(p),v(g),v(u),v(f),v(u+(h-u)*r),v(f+(m-f)*r),v(h),v(m),v(w),v(x)),e.samples&&e.samples.splice(t/6*e.resolution|0,0,0,0,0,0,0,0),6}function H(e,t,r,i){r=r||{},e.totalLength||W(e),(t<0||t>1)&&(t=y(t));var n,a,o,s,l,d,c,p=0,h=e[0];if(t)if(1===t)c=1,p=e.length-1,d=(h=e[p]).length-8;else{if(e.length>1){for(o=e.totalLength*t,l=d=0;(l+=e[d++].totalLength)1)&&(t=y(t)),g.lookup||W(e),e.length>1){for(o=e.totalLength*t,l=d=0;(l+=e[d++].totalLength)=1?1-1e-9:c||1e-9):g.angle||0),m}function O(e,t,r,i,n,a,o){for(var s,l,d,c,p,h=e.length;--h>-1;)for(d=0,l=(s=e[h]).length;d-1e-4?0:t}).match(a)||[],_=[],L=0,M=0,C=2/3,S=N.length,z=0,P="ERROR: malformed path: "+e,T=function(e,t,r,i){w=(r-e)/3,x=(i-t)/3,c.push(e+w,t+x,r-w,i-x,r,i)};if(!e||!isNaN(N[0])||isNaN(N[1]))return console.log(P),_;for(t=0;t.5||g(M-n)>.5)&&(T(L,M,i,n),"L"===o&&(t+=2)),L=i,M=n;else if("A"===o){if(v=N[t+4],j=N[t+5],w=N[t+6],x=N[t+7],r=7,v.length>1&&(v.length<3?(x=w,w=j,r--):(x=j,w=v.substr(2),r-=2),j=v.charAt(1),v=v.charAt(0)),b=function(e,t,r,i,n,a,o,s,l){if(e!==s||t!==l){r=g(r),i=g(i);var c=n%360*d,u=h(c),f=p(c),w=Math.PI,x=2*w,b=(e-s)/2,y=(t-l)/2,v=u*b+f*y,j=-f*b+u*y,k=v*v,N=j*j,_=k/(r*r)+N/(i*i);_>1&&(r=m(_)*r,i=m(_)*i);var L=r*r,M=i*i,C=(L*M-L*N-M*k)/(L*N+M*k);C<0&&(C=0);var S=(a===o?-1:1)*m(C),z=r*j/i*S,P=-(i*v/r*S),T=(e+s)/2+(u*z-f*P),A=(t+l)/2+(f*z+u*P),I=(v-z)/r,W=(j-P)/i,R=(-v-z)/r,H=(-j-P)/i,B=I*I+W*W,O=(W<0?-1:1)*Math.acos(I/m(B)),E=(I*H-W*R<0?-1:1)*Math.acos((I*R+W*H)/m(B*(R*R+H*H)));isNaN(E)&&(E=w),!o&&E>0?E-=x:o&&E<0&&(E+=x),O%=x;var D,G=Math.ceil(g(E%=x)/(x/4)),F=[],$=E/G,V=4/3*p($/2)/(1+h($/2)),Y=u*r,q=f*r,X=-(f*i),Z=u*i;for(D=0;Dg(e[0]-e[2])&&1e-4>g(e[1]-e[3])&&(e=e.slice(2));var r,i,n,a,o,s,l,d,c,p,h,u,f,w,x,b=e.length-2,y=+e[0],j=+e[1],k=+e[2],N=+e[3],_=[y,j,y,j],L=k-y,M=N-j,C=e.nonSmooth||[],S=.001>Math.abs(e[b]-y)&&.001>Math.abs(e[b+1]-j);if(!b)return[y,j,y,j,y,j,y,j];for(S&&(e.push(k,N),k=y,N=j,y=e[b-2],j=e[b-1],e.unshift(y,j),b+=4,C=[0,0].concat(C)),t=t||0===t?+t:1,n=2;n1?eo(i):i.getItem(0).matrix:Z).a*n.x+i.c*n.y,o=i.b*n.x+i.d*n.y):(i=new ec,a=o=0),t&&"g"===e.tagName.toLowerCase()&&(a=o=0),(d||!e.getBoundingClientRect().width?l:p).appendChild(r),r.setAttribute("transform","matrix("+i.a+","+i.b+","+i.c+","+i.d+","+(i.e+a)+","+(i.f+o)+")");else{if(a=o=0,K)for(i=e.offsetParent,n=e;n&&(n=n.parentNode)&&n!==i&&n.parentNode;)($.getComputedStyle(n)[Q]+"").length>4&&(a=n.offsetLeft,o=n.offsetTop,n=0);if("absolute"!==(s=$.getComputedStyle(e)).position&&"fixed"!==s.position)for(i=e.offsetParent;p&&p!==i;)a+=p.scrollLeft||0,o+=p.scrollTop||0,p=p.parentNode;(n=r.style).top=e.offsetTop-o+"px",n.left=e.offsetLeft-a+"px",n[Q]=s[Q],n[J]=s[J],n.position="fixed"===s.position?"fixed":"absolute",h.appendChild(r)}return r},ed=function(e,t,r,i,n,a,o){return e.a=t,e.b=r,e.c=i,e.d=n,e.e=a,e.f=o,e},ec=function(){function e(e,t,r,i,n,a){void 0===e&&(e=1),void 0===t&&(t=0),void 0===r&&(r=0),void 0===i&&(i=1),void 0===n&&(n=0),void 0===a&&(a=0),ed(this,e,t,r,i,n,a)}var t=e.prototype;return t.inverse=function(){var e=this.a,t=this.b,r=this.c,i=this.d,n=this.e,a=this.f,o=e*i-t*r||1e-10;return ed(this,i/o,-t/o,-r/o,e/o,(r*a-i*n)/o,-(e*a-t*n)/o)},t.multiply=function(e){var t=this.a,r=this.b,i=this.c,n=this.d,a=this.e,o=this.f,s=e.a,l=e.c,d=e.b,c=e.d,p=e.e,h=e.f;return ed(this,s*t+d*i,s*r+d*n,l*t+c*i,l*r+c*n,a+p*t+h*i,o+p*r+h*n)},t.clone=function(){return new e(this.a,this.b,this.c,this.d,this.e,this.f)},t.equals=function(e){var t=this.a,r=this.b,i=this.c,n=this.d,a=this.e,o=this.f;return t===e.a&&r===e.b&&i===e.c&&n===e.d&&a===e.e&&o===e.f},t.apply=function(e,t){void 0===t&&(t={});var r=e.x,i=e.y,n=this.a,a=this.b,o=this.c,s=this.d,l=this.e,d=this.f;return t.x=r*n+i*o+l||0,t.y=r*a+i*s+d||0,t},e}();function ep(e,t,r,i){if(!e||!e.parentNode||(F||ee(e)).documentElement===e)return new ec;var n=et(e),a=en(e)?er:ei,o=el(e,r),s=a[0].getBoundingClientRect(),l=a[1].getBoundingClientRect(),d=a[2].getBoundingClientRect(),c=o.parentNode,p=!i&&function e(t){return"fixed"===$.getComputedStyle(t).position||((t=t.parentNode)&&1===t.nodeType?e(t):void 0)}(e),h=new ec((l.left-s.left)/100,(l.top-s.top)/100,(d.left-s.left)/100,(d.top-s.top)/100,s.left+(p?0:$.pageXOffset||F.scrollLeft||V.scrollLeft||Y.scrollLeft||0),s.top+(p?0:$.pageYOffset||F.scrollTop||V.scrollTop||Y.scrollTop||0));if(c.removeChild(o),n)for(s=n.length;s--;)(l=n[s]).scaleX=l.scaleY=0,l.renderTransform(1,l);return t?h.inverse():h}var eh,eg,em,eu,ef,ew,ex="x,translateX,left,marginLeft,xPercent".split(","),eb="y,translateY,top,marginTop,yPercent".split(","),ey=Math.PI/180,ev=function(e,t,r,i){for(var n=t.length,a=2===i?0:i,o=0;ol.indexOf(",")?l:r,c=e._pt=new eg(e._pt,t,d,0,0,e_,0,o.set(t,d,e));c.u=em(o.get(t,d,a))||0,c.path=i,c.pp=n,e._props.push(d)},eP={version:"3.15.0",name:"motionPath",register:function(e,t,r){em=(eh=e).utils.getUnit,eu=eh.utils.toArray,ef=eh.core.getStyleSaver,ew=eh.core.reverting||function(){},eg=r},init:function(e,t,r){if(!eh)return console.warn("Please gsap.registerPlugin(MotionPathPlugin)"),!1;"object"==typeof t&&!t.style&&t.path||(t={path:t});var i,n,a,o,s=[],l=t,d=l.path,c=l.autoRotate,p=l.unitX,h=l.unitY,g=l.x,m=l.y,u=d[0],f=(i=t.start,n="end"in t?t.end:1,function(e){return i||1!==n?I(e,i,n):e});if(this.rawPaths=s,this.target=e,this.tween=r,this.styles=ef&&ef(e,"transform"),(this.rotate=c||0===c)&&(this.rOffset=parseFloat(c)||0,this.radians=!!t.useRadians,this.rProp=t.rotation||"rotation",this.rSet=e._gsap.set(e,this.rProp,this),this.ru=em(e._gsap.get(e,this.rProp))||0),!Array.isArray(d)||"closed"in d||"number"==typeof u)W(a=f(eS(S(t.path),e,t)),t.resolution),s.push(a),ez(this,e,t.x||"x",a,"x",t.unitX||"px"),ez(this,e,t.y||"y",a,"y",t.unitY||"px");else{for(o in u)!g&&~ex.indexOf(o)?g=o:!m&&~eb.indexOf(o)&&(m=o);for(o in g&&m?s.push(eN(this,ev(ev([],d,g,0),d,m,1),e,g,m,f,t,p||em(d[0][g]),h||em(d[0][m]))):g=m=0,u)o!==g&&o!==m&&s.push(eN(this,ev([],d,o,2),e,o,0,f,t,em(d[0][o])))}r.vars.immediateRender&&this.render(r.progress(),this)},render:function(e,t){var r=t.rawPaths,i=r.length,n=t._pt;if(t.tween._time||!ew()){for(e>1?e=1:e<0&&(e=0);i--;)B(r[i],e,!i&&t.rotate,r[i]);for(;n;)n.set(n.t,n.p,n.path[n.pp]+n.u,n.d,e),n=n._next;t.rotate&&t.rSet(t.target,t.rProp,r[0].angle*(t.radians?ey:1)+t.rOffset+t.ru,t,e)}else t.styles.revert()},getLength:function(e){return W(S(e)).totalLength},sliceRawPath:I,getRawPath:S,pointsToSegment:D,stringToRawPath:E,rawPathToString:G,transformRawPath:O,getGlobalMatrix:ep,getPositionOnPath:B,cacheRawPathMeasurements:W,convertToPath:function(e,t){return eu(e).map(function(e){var r,i,n,a,s,l,d,c,p,h,g,m,u,f,w,x,b,y,v,j,k,N,_,L;return r=!1!==t,"path"!==(L=e.tagName.toLowerCase())&&e.getBBox?(d=z(e,"x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points"),_=T(e,P[L]),"rect"===L?(s=_.rx,l=_.ry||s,n=_.x,a=_.y,g=_.width-2*s,m=_.height-2*l,s||l?(u=n+.44771525016900005*s,x=(w=(f=n+s)+g)+.552284749831*s,b=w+s,y=a+.44771525016900005*l,k=(j=(v=a+l)+m)+.552284749831*l,N=j+l,i="M"+b+","+v+" V"+j+" C"+[b,k,x,N,w,N,w-(w-f)/3,N,f+(w-f)/3,N,f,N,u,N,n,k,n,j,n,j-(j-v)/3,n,v+(j-v)/3,n,v,n,y,u,a,f,a,f+(w-f)/3,a,w-(w-f)/3,a,w,a,x,a,b,y,b,v].join(",")+"z"):i="M"+(n+g)+","+a+" v"+m+" h"+-g+" v"+-m+" h"+g+"z"):"circle"===L||"ellipse"===L?("circle"===L?p=.552284749831*(s=l=_.r):(s=_.rx,p=.552284749831*(l=_.ry)),n=_.cx,a=_.cy,c=.552284749831*s,i="M"+(n+s)+","+a+" C"+[n+s,a+p,n+c,a+l,n,a+l,n-c,a+l,n-s,a+p,n-s,a,n-s,a-p,n-c,a-l,n,a-l,n+c,a-l,n+s,a-p,n+s,a].join(",")+"z"):"line"===L?i="M"+_.x1+","+_.y1+" L"+_.x2+","+_.y2:("polyline"===L||"polygon"===L)&&(i="M"+(n=(h=(e.getAttribute("points")+"").match(o)||[]).shift())+","+(a=h.shift())+" L"+h.join(","),"polygon"===L&&(i+=","+n+","+a+"z")),d.setAttribute("d",G(d._gsRawPath=E(i))),r&&e.parentNode&&(e.parentNode.insertBefore(d,e),e.parentNode.removeChild(e)),d):e})},convertCoordinates:function(e,t,r){var i=ep(t,!0,!0).multiply(ep(e));return r?i.apply(r):i},getAlignMatrix:eC,getRelativePosition:function(e,t,r,i){var n=eC(e,t,r,i);return{x:n.e,y:n.f}},arrayToRawPath:function(e,t){var r=ev(ev([],e,(t=t||{}).x||"x",0),e,t.y||"y",1);return t.relative&&ek(r),["cubic"===t.type?r:D(r,t.curviness)]}};(eh||"u">typeof window&&(eh=window.gsap)&&eh.registerPlugin&&eh)&&eh.registerPlugin(eP);var eT,eA,eI,eW,eR,eH,eB,eO,eE=function(){return"u">typeof window},eD=function(){return eT||eE()&&(eT=window.gsap)&&eT.registerPlugin&&eT},eG=/[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi,eF={rect:["width","height"],circle:["r","r"],ellipse:["rx","ry"],line:["x2","y2"]},e$=function(e){return Math.round(1e4*e)/1e4},eV=function(e){return parseFloat(e)||0},eY=function(e,t){var r=eV(e);return~e.indexOf("%")?r/100*t:r},eq=function(e,t){return eV(e.getAttribute(t))},eX=Math.sqrt,eZ=function(e,t,r,i,n,a){return eX(Math.pow((eV(r)-eV(e))*n,2)+Math.pow((eV(i)-eV(t))*a,2))},eU=function(e){return console.warn(e)},eK=function(e){return"non-scaling-stroke"===e.getAttribute("vector-effect")},eQ=function(e,t,r){var i,n,a=e.indexOf(" ");return a<0?(i=void 0!==r?r+"":e,n=e):(i=e.substr(0,a),n=e.substr(a+1)),(i=eY(i,t))>(n=eY(n,t))?[n,i]:[i,n]},eJ=function(e){if(!(e=eA(e)[0]))return 0;var t,r,i,n,a,o,s,l=e.tagName.toLowerCase(),d=e.style,c=1,p=1;eK(e)&&(c=eX((p=e.getScreenCTM()).a*p.a+p.b*p.b),p=eX(p.d*p.d+p.c*p.c));try{r=e.getBBox()}catch(e){eU("Some browsers won't measure invisible elements (like display:none or masks inside defs).")}var h=r||{x:0,y:0,width:0,height:0},g=h.x,m=h.y,u=h.width,f=h.height;if(r&&(u||f)||!eF[l]||(u=eq(e,eF[l][0]),f=eq(e,eF[l][1]),"rect"!==l&&"line"!==l&&(u*=2,f*=2),"line"===l&&(g=eq(e,"x1"),m=eq(e,"y1"),u=Math.abs(u-g),f=Math.abs(f-m))),"path"===l)n=d.strokeDasharray,d.strokeDasharray="none",t=e.getTotalLength()||0,e$(c)!==e$(p)&&!eH&&(eH=1)&&eU("Warning: length cannot be measured when vector-effect is non-scaling-stroke and the element isn't proportionally scaled."),t*=(c+p)/2,d.strokeDasharray=n;else if("rect"===l)t=2*u*c+2*f*p;else if("line"===l)t=eZ(g,m,g+u,m+f,c,p);else if("polyline"===l||"polygon"===l)for(i=e.getAttribute("points").match(eG)||[],"polygon"===l&&i.push(i[0],i[1]),t=0,a=2;at&&(i=t),[-n||0,i-n||0]},e1=function(){eE()&&(document,eI=window,eR=eT=eD(),eA=eT.utils.toArray,eB=eT.core.getStyleSaver,eO=eT.core.reverting||function(){},eW=-1!==((eI.navigator||{}).userAgent||"").indexOf("Edge"))},e2={version:"3.15.0",name:"drawSVG",register:function(e){eT=e,e1()},init:function(e,t,r,i,n){if(!e.getBBox)return!1;eR||e1();var a,o,s,l=eJ(e);return this.styles=eB&&eB(e,"strokeDashoffset,strokeDasharray,strokeMiterlimit"),this.tween=r,this._style=e.style,this._target=e,t+""=="true"?t="0 100%":t?-1===(t+"").indexOf(" ")&&(t="0 "+t):t="0 0",a=e0(e,l),o=eQ(t,l,a[0]),this._length=e$(l),this._dash=e$(a[1]-a[0]),this._offset=e$(-a[0]),this._dashPT=this.add(this,"_dash",this._dash,e$(o[1]-o[0]),0,0,0,0,0,1),this._offsetPT=this.add(this,"_offset",this._offset,e$(-o[0]),0,0,0,0,0,1),eW&&(s=eI.getComputedStyle(e)).strokeLinecap!==s.strokeLinejoin&&(o=eV(s.strokeMiterlimit),this.add(e.style,"strokeMiterlimit",o,o+.01)),this._live=eK(e)||~(t+"").indexOf("live"),this._nowrap=~(t+"").indexOf("nowrap"),this._props.push("drawSVG"),1},render:function(e,t){if(t.tween._time||!eO()){var r,i,n,a,o=t._pt,s=t._style;if(o){for(t._live&&(r=eJ(t._target))!==t._length&&(i=r/t._length,t._length=r,t._offsetPT&&(t._offsetPT.s*=i,t._offsetPT.c*=i),t._dashPT?(t._dashPT.s*=i,t._dashPT.c*=i):t._dash*=i);o;)o.r(e,o.d),o=o._next;n=t._dash||e&&1!==e&&1e-4||0,r=t._length-n+.1,a=t._offset,n&&a&&n+Math.abs(a%t._length)>t._length-.05&&(a+=a<0?.005:-.005)&&(r+=.005),s.strokeDashoffset=n?a:a+.001,s.strokeDasharray=r<.1?"none":n?n+"px,"+(t._nowrap?999999:r)+"px":"0px, 999999px"}}else t.styles.revert()},getLength:eJ,getPosition:e0};eD()&&eT.registerPlugin(e2);var e5=e.i(2018);let e4=!1;i.default.registerPlugin(n.ScrollTrigger,eP);try{i.default.registerPlugin(e2),e4=!0}catch{e4=!1}let e3=[{title:"Same-Day Air Logistics",desc:"Max 3-hour door-to-door delivery between India's major regional capitals.",icon:(0,t.jsxs)("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("polyline",{points:"12 6 12 12 16 14"})]})},{title:"AI-Powered Operations",desc:"MileTruth™ AI continuously forecasts demand and optimizes every route and load.",icon:(0,t.jsxs)("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"3"}),(0,t.jsx)("path",{d:"M9 9h6v6H9z"}),(0,t.jsx)("path",{d:"M9 1v3M15 1v3M9 20v3M15 20v3M1 9h3M1 15h3M20 9h3M20 15h3"})]})},{title:"Regional Connectivity",desc:"Dedicated air capacity linking major economic hubs, not passenger-belly space.",icon:(0,t.jsxs)("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"6",cy:"6",r:"2.5"}),(0,t.jsx)("circle",{cx:"18",cy:"6",r:"2.5"}),(0,t.jsx)("circle",{cx:"12",cy:"18",r:"2.5"}),(0,t.jsx)("path",{d:"M8.2 7.2 10 16M15.8 7.2 14 16M8.5 6h7"})]})},{title:"EV Last Mile",desc:"Zero-emission electric vehicles complete every first- and final-mile delivery.",icon:(0,t.jsxs)("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M3 13h13l3 4h2v3H3z"}),(0,t.jsx)("circle",{cx:"7",cy:"20",r:"1.6"}),(0,t.jsx)("circle",{cx:"16",cy:"20",r:"1.6"}),(0,t.jsx)("path",{d:"M6 13V8a1 1 0 0 1 1-1h5l3 6"})]})}];function e6(e,t){if(e.length<2||t<=0)return e;let r=[e[0]];for(let i=0;i{let t,r,g=e.current,m=a.current,u=o.current,f=s.current,w=l.current,x=d.current,b=c.current;if(!g||!m||!u||!f||!w||!x||!b)return;let y=0,v=0,j=null,k=null,N=i.default.context(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)").matches,a=()=>{let e,t=g.getBoundingClientRect(),r=window.matchMedia("(max-width: 600px)").matches,i=p.current.map((e,i)=>{let n=h.current[i];if(!e||!n)return null;let a=e.getBoundingClientRect(),o=n.getBoundingClientRect(),s=a.top-t.top,l=a.bottom-t.top,d=a.left-t.left,c=a.right-t.left;return r?{x:12,y:o.top+o.height/2-t.top,top:s,bottom:l,left:d,right:c}:{x:o.left+o.width/2-t.left,y:a.top-t.top-14,top:s,bottom:l,left:d,right:c}}).filter(e=>null!==e),n=i.map(({x:e,y:t})=>({x:e,y:t}));m.setAttribute("width",String(t.width)),m.setAttribute("height",String(t.height)),m.setAttribute("viewBox",`0 0 ${t.width} ${t.height}`);let a=r?0:Math.max(20,Math.min(38,t.width/20));if(r)e=n;else{let t,r,o=function(e){let t=[];for(let r of e){let e=t[t.length-1];e&&12>=Math.abs(e[0].top-r.top)?e.push(r):t.push([r])}return t}(i);e=o.length<=1?e6(n,a):(t=[],r=null,o.forEach((e,i)=>{let n=i%2==0?e:[...e].reverse(),s=n[0].y,l=null===r?a:Math.max(0,Math.min(a,(s-r-6)/1.43)),d=e6(n.map(({x:e,y:t})=>({x:e,y:t})),l);if(t.length>0){var c,p;let e,r=t[t.length-1],n=d[0],a=(c=o[i-1],p=(i-1)%2==0?"right":"left",(e=[...c].sort((e,t)=>e.left-t.left)).length<2?(e[0].left+e[0].right)/2:"right"===p?(e[e.length-2].right+e[e.length-1].left)/2:(e[0].right+e[1].left)/2);t.push({x:a,y:r.y},{x:a,y:n.y})}t.push(...d),r=Math.max(...e.map(e=>e.bottom))}),t)}let o=function(e){if(e.length<2)return"";let t=`M ${e[0].x} ${e[0].y}`;for(let r=0;r{cancelAnimationFrame(y),y=requestAnimationFrame(()=>{e?a():o()})})).observe(g),a(),v=requestAnimationFrame(()=>{a(),n.ScrollTrigger.refresh()}),"complete"!==document.readyState&&(r=()=>n.ScrollTrigger.refresh(),window.addEventListener("load",r,{once:!0}));let o=()=>{k&&k.kill();let{points:e,isMobile:t}=a();if(e.length<2)return;let r=u.getTotalLength(),n=.22*r,o=r+200;f.setAttribute("stroke-dasharray",`${n} ${o}`);let s=e.map(e=>{let t=0,i=1/0,n=Math.max(2,r/400);for(let a=0;a<=r;a+=n){let r=u.getPointAtLength(a),n=(r.x-e.x)**2+(r.y-e.y)**2;n!1),d=0,c=!1,m=i.default.timeline({scrollTrigger:{trigger:g,start:"top 75%",end:"bottom 35%",scrub:1}});k=m,j=m.scrollTrigger??null;e4?m.to(u,{drawSVG:"100%",duration:4.680000000000001,ease:"power2.inOut"},0):(i.default.set(u,{strokeDasharray:r,strokeDashoffset:r}),m.to(u,{strokeDashoffset:0,duration:4.680000000000001,ease:"power2.inOut"},0)),m.to(u,{opacity:t?.15:.18,duration:.9,ease:"sine.out"},0),i.default.set([x,b],{svgOrigin:"0 0"}),m.to(w,{opacity:1,duration:.3,ease:"sine.out"},0),m.to(f,{opacity:1,duration:.4,ease:"sine.out"},0),m.to(w,{motionPath:{path:u,autoRotate:!1,alignOrigin:[.5,.5]},duration:5.2,ease:"power2.inOut",onUpdate:function(){let e=this.progress(),t=e*r,a=Math.max(1,.01*r),o=u.getPointAtLength(Math.max(0,t-a)),g=u.getPointAtLength(Math.min(r,t+a)),m=180*Math.atan2(g.y-o.y,g.x-o.x)/Math.PI+90;if(c){let e=m-d;d+=.12*(e=((e+180)%360+360)%360-180)}else d=m,c=!0;i.default.set(x,{rotation:d}),i.default.set(b,{rotation:d}),f.setAttribute("stroke-dashoffset",String(n-t)),s.forEach((t,r)=>{if(!l[r]&&e>=t){let e,t;l[r]=!0,e=p.current[r],t=h.current[r],e&&(e.classList.add("wwg-card-flown","wwg-card-pulse"),t&&i.default.timeline({delay:.28}).to(t,{scale:1.02,duration:.32,ease:"expo.out"}).to(t,{scale:1,duration:.32,ease:"sine.inOut"}),i.default.delayedCall(.95,()=>e.classList.remove("wwg-card-pulse")))}else l[r]&&e{t?.disconnect(),cancelAnimationFrame(y),cancelAnimationFrame(v),cancelAnimationFrame(0),r&&window.removeEventListener("load",r),j?.kill(),k?.kill(),N.revert()}},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .wwg-section { + background: #ffffff; + padding: var(--space-section-lg, 80px) 0; + } + + .wwg-header { + margin: 0 auto 48px auto; + max-width: 720px; + text-align: center; + } + + .wwg-eyebrow { + font-size: 13px; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.45); + margin-bottom: 16px; + } + + .wwg-title { + font-size: clamp(28px, 3.2vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0; + } + + .wwg-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wwg-grid-wrap { + position: relative; + overflow: visible; + } + + .wwg-flightpath { + position: absolute; + inset: 0; + pointer-events: none; + overflow: visible; + z-index: 5; + } + + .wwg-flightpath-line { + fill: none; + stroke: #c8102e; + stroke-width: 2; + stroke-linecap: round; + stroke-linejoin: round; + opacity: 0; + } + + /* A brighter, blurred copy of the same route, painted *behind* the + crisp foreground line (see JSX order). Its dasharray is driven + per-frame (see onUpdate) to keep a soft window of it trailing + directly beneath the pulse; because it sits behind rather than on + top, its blur reads as a glow radiating from under the route + instead of visually thickening the route's own edges. Stroke + width intentionally matches the base route so it never peeks out + wider than the crisp line drawn on top of it. */ + .wwg-illum-trail { + fill: none; + stroke: #ff3d5a; + stroke-width: 2; + stroke-linecap: round; + filter: blur(5px); + opacity: 0; + } + + /* The traveler is the primary visual: a single centered optical + pulse riding the route, with a small secondary aircraft glyph + carried inside it. Position (translate) lives on .wwg-traveler; + only the inner .wwg-traveler-directional group rotates to face + the direction of travel — the round pulse core stays outside it + so it never rotates, always reading as a clean point of light. */ + .wwg-traveler { + opacity: 0; + pointer-events: none; + will-change: transform; + /* Explicit center alignment (paired with alignOrigin: [0.5, 0.5] + on the motionPath tween) so the traveler's own center — not a + corner/default reference point — is what MotionPathPlugin locks + to the route, keeping it precisely on the path's centerline + with no vertical drift. */ + transform-origin: 50% 50%; + } + + .wwg-traveler-directional { + transform-origin: 0px 0px; + will-change: transform; + } + + /* Large, radially-symmetric ambient glow — the true hero of the + traveler. Centered on the pulse with no directional offset, so + there is never a brighter patch leading ahead of the aircraft. + Non-directional, so it lives outside the rotating + .wwg-traveler-directional group. */ + .wwg-pulse-bloom { + fill: #c8102e; + opacity: 0.2; + filter: blur(18px); + } + + .wwg-pulse-halo { + fill: #c8102e; + opacity: 0.52; + filter: blur(7px); + } + + .wwg-pulse-core { + fill: #ffffff; + filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.98)) drop-shadow(0 0 9px rgba(200, 16, 46, 0.85)) + drop-shadow(0 0 15px rgba(200, 16, 46, 0.5)); + } + + /* Deliberately no drop-shadow of its own — the bloom/halo/trail + above supply all the glow. Sized to be clearly recognizable as an + aircraft without becoming the focal point: the pulse is still the + brightest, largest element on screen at every moment. */ + .wwg-aircraft { + color: #c8102e; + opacity: 0.65; + } + + .wwg-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 24px; + } + + .wwg-card { + position: relative; + min-width: 0; + padding: 30px 24px; + border: 1px solid rgba(17, 17, 17, 0.08); + border-radius: 18px; + background: #fafafa; + /* Staggered delays so activation reads as a cascade — glow moves + first (see .wwg-card-glow below, no delay), then border/shape, + then the background tint settles last — rather than every + property snapping at once. The "expo-out" curve (rather than + plain ease) is what gives it a soft, premium settle instead of a + mechanical linear-ish snap. */ + transition: + border-color 0.75s cubic-bezier(0.16, 1, 0.3, 1) 0.08s, + box-shadow 0.75s cubic-bezier(0.16, 1, 0.3, 1) 0.08s, + transform 0.75s cubic-bezier(0.16, 1, 0.3, 1) 0.08s, + background-color 0.75s cubic-bezier(0.16, 1, 0.3, 1) 0.22s; + } + + .wwg-card:hover { + border-color: rgba(200, 16, 46, 0.35); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06); + transform: translateY(-4px); + } + + .wwg-card-glow { + position: absolute; + inset: -12px; + border-radius: 22px; + background: radial-gradient(circle, rgba(200, 16, 46, 0.45) 0%, rgba(200, 16, 46, 0) 70%); + opacity: 0; + z-index: -1; + pointer-events: none; + filter: blur(6px); + transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1); + } + + .wwg-card-flown { + border-color: rgba(200, 16, 46, 0.25); + background-color: #fdf7f8; + } + + .wwg-card-flown .wwg-card-glow { + opacity: 0.32; + } + + .wwg-card-pulse { + border-color: rgba(200, 16, 46, 0.5); + box-shadow: 0 16px 34px rgba(0, 0, 0, 0.07); + transform: translateY(-3px); + } + + .wwg-card-pulse .wwg-card-glow { + opacity: 0.85; + } + + .wwg-icon { + width: 52px; + height: 52px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 14px; + background: rgba(200, 16, 46, 0.06); + color: #c8102e; + margin-bottom: 20px; + transition: + background-color 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.16s, + filter 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.16s; + } + + .wwg-card-flown .wwg-icon { + background: rgba(200, 16, 46, 0.1); + } + + .wwg-card-pulse .wwg-icon { + background: rgba(200, 16, 46, 0.14); + filter: brightness(1.12); + } + + .wwg-card-title { + font-size: 17px !important; + font-weight: 700 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0 0 8px 0; + } + + .wwg-card-desc { + font-size: 14.5px; + line-height: 1.55; + color: rgba(17, 17, 17, 0.6); + margin: 0; + } + + @media (max-width: 1024px) { + .wwg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + } + + @media (max-width: 600px) { + .wwg-grid { grid-template-columns: 1fr; padding-left: 28px; } + /* var(--space-section-lg) floors at a fixed 52px on any phone + width; trimmed to a real mobile value to match the section + rhythm near the footer. Matches this file's own MOBILE_BQ + breakpoint used by the flight-path animation logic. */ + .wwg-section { padding-top: 44px; padding-bottom: 44px; } + } + + @media (prefers-reduced-motion: reduce) { + .wwg-card, .wwg-card-glow, .wwg-icon { + transition: none; + } + } + `}}),(0,t.jsx)("section",{className:"wwg-section",id:"wings-why",children:(0,t.jsx)("div",{className:"dm-section-container",children:(0,t.jsxs)("div",{className:"wwg-inner",children:[(0,t.jsxs)(e5.ScrollReveal,{delay:.05,duration:.75,yOffset:25,className:"wwg-header",children:[(0,t.jsx)("div",{className:"wwg-eyebrow",children:"/ Why Doormile Wings /"}),(0,t.jsx)("h2",{className:"wwg-title",children:"Built for the speed of the Gen-Z economy"})]}),(0,t.jsxs)("div",{className:"wwg-grid-wrap",ref:e,children:[(0,t.jsxs)("svg",{ref:a,className:"wwg-flightpath","aria-hidden":"true",focusable:"false",children:[(0,t.jsx)("path",{ref:s,className:"wwg-illum-trail",d:""}),(0,t.jsx)("path",{ref:o,className:"wwg-flightpath-line",d:""}),(0,t.jsxs)("g",{ref:l,className:"wwg-traveler",children:[(0,t.jsx)("circle",{className:"wwg-pulse-bloom",cx:"0",cy:"0",r:"26"}),(0,t.jsx)("g",{ref:d,className:"wwg-traveler-directional",children:(0,t.jsx)("ellipse",{className:"wwg-pulse-halo",cx:"0",cy:"0",rx:"11",ry:"6"})}),(0,t.jsx)("circle",{className:"wwg-pulse-core",cx:"0",cy:"0",r:"2.6"}),(0,t.jsx)("g",{ref:c,className:"wwg-traveler-directional",children:(0,t.jsx)("path",{className:"wwg-aircraft",d:"M0,-13 C-0.78,-13 -1.3,-12.22 -1.3,-11.31 L-1.3,-3.9 L-11.05,1.3 L-11.05,3.9 L-1.3,0.91 L-1.3,9.1 L-4.55,11.44 L-4.55,13 L0,11.7 L4.55,13 L4.55,11.44 L1.3,9.1 L1.3,0.91 L11.05,3.9 L11.05,1.3 L1.3,-3.9 L1.3,-11.31 C1.3,-12.22 0.78,-13 0,-13 Z",fill:"currentColor"})})]})]}),(0,t.jsx)(e5.StaggerChildren,{stagger:.1,duration:.7,yOffset:30,className:"wwg-grid",children:e3.map((e,r)=>(0,t.jsxs)("div",{className:"wwg-card",ref:e=>{p.current[r]=e},children:[(0,t.jsx)("span",{className:"wwg-card-glow","aria-hidden":"true"}),(0,t.jsx)("div",{className:"wwg-icon","aria-hidden":"true",ref:e=>{h.current[r]=e},children:e.icon}),(0,t.jsx)("h3",{className:"wwg-card-title",children:e.title}),(0,t.jsx)("p",{className:"wwg-card-desc",children:e.desc})]},e.title))})]})]})})})]})}],63061)},10425,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(89970),n=e.i(83495),a=e.i(2018);i.default.registerPlugin(n.ScrollTrigger),e.s(["default",0,function(){let e=(0,r.useRef)(null),n=(0,r.useRef)(null),o=(0,r.useRef)(null),s=(0,r.useRef)(null),l=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let t=e.current,r=n.current,a=o.current,d=s.current,c=l.current;t&&r&&a&&d&&c&&(i.default.set([r,a,d],{opacity:0,y:40}),i.default.set(c,{opacity:0,scale:.7}),i.default.timeline({scrollTrigger:{trigger:t,start:"top 78%",toggleActions:"play none none none"}}).to(r,{opacity:1,y:0,duration:.85,ease:"power3.out"}).to([a,d],{opacity:1,y:0,duration:.8,stagger:.12,ease:"power3.out"},"-=0.5").to(c,{opacity:1,scale:1,duration:.5,ease:"back.out(1.7)"},"-=0.35"))},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .wsa-section { + background: #fafafa; + padding: var(--space-section-lg, 80px) 0; + } + + .wsa-header { + max-width: 720px; + margin: 0 auto 48px auto; + text-align: center; + } + + .wsa-eyebrow { + font-size: 13px; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + color: rgba(17, 17, 17, 0.45); + margin-bottom: 16px; + } + + .wsa-title { + font-size: clamp(28px, 3.2vw, 46px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #111111 !important; + margin: 0; + } + + .wsa-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wsa-face-off { + position: relative; + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); + gap: 24px; + } + + .wsa-panel { + min-width: 0; + border-radius: 22px; + padding: clamp(36px, 4vw, 56px) clamp(24px, 3vw, 40px); + text-align: center; + } + + .wsa-panel-surface { + background: #ffffff; + border: 1px solid rgba(17, 17, 17, 0.08); + } + + .wsa-panel-wings { + background: #111114; + border: 1px solid rgba(255, 255, 255, 0.06); + } + + .wsa-panel-label { + font-size: 13px; + font-weight: 800; + letter-spacing: 2px; + text-transform: uppercase; + margin-bottom: 20px; + } + + .wsa-panel-surface .wsa-panel-label { color: rgba(17, 17, 17, 0.4); } + .wsa-panel-wings .wsa-panel-label { color: #c8102e; } + + .wsa-value { + font-size: clamp(40px, 6vw, 76px); + font-weight: 900; + letter-spacing: -0.03em; + line-height: 1; + } + + .wsa-panel-surface .wsa-value { color: #c8102e; } + .wsa-panel-wings .wsa-value { color: #ffffff; } + + .wsa-unit { + margin-top: 10px; + font-size: 15px; + font-weight: 700; + } + + .wsa-panel-surface .wsa-unit { color: rgba(17, 17, 17, 0.45); } + .wsa-panel-wings .wsa-unit { color: rgba(255, 255, 255, 0.75); } + + .wsa-panel-sub { + margin-top: 18px; + font-size: 14px; + line-height: 1.5; + } + + .wsa-panel-surface .wsa-panel-sub { color: rgba(17, 17, 17, 0.4); } + .wsa-panel-wings .wsa-panel-sub { color: rgba(255, 255, 255, 0.55); } + + .wsa-vs { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 56px; + height: 56px; + border-radius: 50%; + background: #ffffff; + border: 1px solid rgba(17, 17, 17, 0.1); + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1); + display: flex; + align-items: center; + justify-content: center; + font-size: 13px; + font-weight: 800; + letter-spacing: 1px; + color: #c8102e; + z-index: 2; + } + + @media (max-width: 767px) { + .wsa-face-off { grid-template-columns: 1fr; gap: 40px; } + /* Effective visible gap above/below the VS circle is (grid gap + + this margin), i.e. 40px - 28px = 12px on each side — an equal, + ~40% reduction from the previous 20px/20px so the circle reads + as bridging the two cards instead of floating in a large empty + gap. margin: auto keeps it horizontally centered; the shorthand + applies identically to top and bottom so both stay equal. */ + .wsa-vs { position: static; transform: none; margin: -28px auto; } + /* var(--space-section-lg) floors at a fixed 52px on any phone + width; trimmed to a real mobile value to match the section + rhythm near the footer. */ + .wsa-section { padding-top: 44px; padding-bottom: 44px; } + } + `}}),(0,t.jsx)("section",{className:"wsa-section",ref:e,id:"wings-speed",children:(0,t.jsxs)("div",{className:"dm-section-container",children:[(0,t.jsxs)("div",{className:"wsa-header",ref:n,children:[(0,t.jsx)("div",{className:"wsa-eyebrow",children:"/ The Speed Advantage /"}),(0,t.jsx)("h2",{className:"wsa-title",children:"Same-day, not some-day"})]}),(0,t.jsx)("div",{className:"wsa-inner",children:(0,t.jsxs)("div",{className:"wsa-face-off",children:[(0,t.jsxs)("div",{className:"wsa-panel wsa-panel-surface",ref:o,children:[(0,t.jsx)("div",{className:"wsa-panel-label",children:"Surface Logistics"}),(0,t.jsxs)("div",{className:"wsa-value",children:["48–",(0,t.jsx)(a.CountUp,{end:96,duration:1.6,triggerOnce:!0})]}),(0,t.jsx)("div",{className:"wsa-unit",children:"Hours"}),(0,t.jsx)("p",{className:"wsa-panel-sub",children:"Delhi–Mumbai standard surface transit time."})]}),(0,t.jsx)("div",{className:"wsa-vs",ref:l,children:"VS"}),(0,t.jsxs)("div",{className:"wsa-panel wsa-panel-wings",ref:s,children:[(0,t.jsx)("div",{className:"wsa-panel-label",children:"Doormile Wings"}),(0,t.jsxs)("div",{className:"wsa-value",children:["Max ",(0,t.jsx)(a.CountUp,{end:3,duration:1.4,triggerOnce:!0})]}),(0,t.jsx)("div",{className:"wsa-unit",children:"Hours, Door-to-Door"}),(0,t.jsx)("p",{className:"wsa-panel-sub",children:"Same-day delivery between major regional capitals."})]})]})})]})})]})}])},91607,e=>{e.v({eyebrow:"WingsHowItWorks-module__yyfdHG__eyebrow",flow:"WingsHowItWorks-module__yyfdHG__flow",header:"WingsHowItWorks-module__yyfdHG__header",headerRow:"WingsHowItWorks-module__yyfdHG__headerRow",progress:"WingsHowItWorks-module__yyfdHG__progress",progressCount:"WingsHowItWorks-module__yyfdHG__progressCount",progressFill:"WingsHowItWorks-module__yyfdHG__progressFill",progressTrack:"WingsHowItWorks-module__yyfdHG__progressTrack",section:"WingsHowItWorks-module__yyfdHG__section",sectionShell:"WingsHowItWorks-module__yyfdHG__sectionShell",step:"WingsHowItWorks-module__yyfdHG__step",stepActive:"WingsHowItWorks-module__yyfdHG__stepActive",stepBottom:"WingsHowItWorks-module__yyfdHG__stepBottom",stepDesc:"WingsHowItWorks-module__yyfdHG__stepDesc",stepIcon:"WingsHowItWorks-module__yyfdHG__stepIcon",stepNum:"WingsHowItWorks-module__yyfdHG__stepNum",stepTag:"WingsHowItWorks-module__yyfdHG__stepTag",stepTitle:"WingsHowItWorks-module__yyfdHG__stepTitle",stepTop:"WingsHowItWorks-module__yyfdHG__stepTop",title:"WingsHowItWorks-module__yyfdHG__title"})},48920,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(2018),n=e.i(91607);let a=[{label:"Local Pickup",desc:"Fast, on-demand first-mile logistics dispatched by electric vehicle.",icon:(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M3 13h13l3 4h2v3H3z"}),(0,t.jsx)("circle",{cx:"7",cy:"20",r:"1.6"}),(0,t.jsx)("circle",{cx:"16",cy:"20",r:"1.6"}),(0,t.jsx)("path",{d:"M6 13V8a1 1 0 0 1 1-1h5l3 6"})]})},{label:"Airport Clearance",desc:"Automated screening, grouping, and rapid cross-docking at the hub.",icon:(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,t.jsx)("path",{d:"m9 12 2 2 4-4"})]})},{label:"Air Transit",desc:"Optimized cargo flights bypass surface congestion on our regional fleet.",icon:(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M22 12h-6l-4-9-2 1 3 8H5l-2-3-1.5.6L3 14l1.5 4.4L6 18l-2-3h8l3 8 2-1-3-8h6z"})})},{label:"Destination Hub",desc:"Immediate de-consolidation and screening upon arrival.",icon:(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"4",y:"10",width:"16",height:"11",rx:"1"}),(0,t.jsx)("path",{d:"M9 21v-6h6v6M4 10 12 3l8 7"})]})},{label:"EV Last-Mile",desc:"Zero-emission electric vehicles complete the final delivery.",icon:(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M3 13h13l3 4h2v3H3z"}),(0,t.jsx)("circle",{cx:"7",cy:"20",r:"1.6"}),(0,t.jsx)("circle",{cx:"16",cy:"20",r:"1.6"}),(0,t.jsx)("path",{d:"M6 13V8a1 1 0 0 1 1-1h5l3 6"})]})}];e.s(["default",0,function(){let[e,o]=(0,r.useState)(0);return(0,t.jsx)("section",{className:n.default.section,id:"wings-how-it-works",children:(0,t.jsxs)("div",{className:n.default.sectionShell,children:[(0,t.jsxs)("div",{className:n.default.headerRow,children:[(0,t.jsxs)(i.ScrollReveal,{delay:.05,duration:.75,yOffset:25,className:n.default.header,children:[(0,t.jsx)("div",{className:n.default.eyebrow,children:"/ How It Works /"}),(0,t.jsxs)("h2",{className:n.default.title,children:["Pickup to",(0,t.jsx)("br",{}),"delivery, one",(0,t.jsx)("br",{}),"connected flow"]})]}),(0,t.jsxs)("div",{className:n.default.progress,"aria-hidden":"true",children:[(0,t.jsxs)("span",{className:n.default.progressCount,children:[String(e+1).padStart(2,"0")," / ",String(a.length).padStart(2,"0")]}),(0,t.jsx)("span",{className:n.default.progressTrack,children:(0,t.jsx)("span",{className:n.default.progressFill,style:{width:`${(e+1)/a.length*100}%`}})})]})]}),(0,t.jsx)(i.StaggerChildren,{stagger:.06,duration:.6,yOffset:24,className:n.default.flow,children:a.map((r,i)=>(0,t.jsxs)("div",{className:`${n.default.step} ${i===e?n.default.stepActive:""}`,onMouseEnter:()=>o(i),onClick:()=>o(i),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&o(i)},children:[(0,t.jsxs)("div",{className:n.default.stepTop,children:[(0,t.jsx)("span",{className:n.default.stepNum,children:String(i+1).padStart(2,"0")}),(0,t.jsxs)("span",{className:n.default.stepTag,children:[(0,t.jsx)("span",{className:n.default.stepIcon,"aria-hidden":"true",children:r.icon}),"Step"]})]}),(0,t.jsxs)("div",{className:n.default.stepBottom,children:[(0,t.jsx)("h3",{className:n.default.stepTitle,children:r.label}),(0,t.jsx)("p",{className:n.default.stepDesc,children:r.desc})]})]},r.label))})]})})}])},55064,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(89970),n=e.i(2018);let a=[{title:"Demand Forecasting",desc:"AI-driven forward projection of cargo demand, preemptively positioning aircraft and ground capacity.",icon:(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M3 3v18h18"}),(0,t.jsx)("path",{d:"M7 14l4-4 3 3 6-7"})]})},{title:"Dynamic Pricing",desc:"Real-time rate adjustments that track market capacity fluctuations and optimize yield.",icon:(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("path",{d:"M9.5 9.5c0-1.4 1.1-2.3 2.5-2.3s2.5.9 2.5 2c0 1.6-2.2 1.8-2.5 3.3M12 17h.01"})]})},{title:"Route Optimization",desc:"Dynamic scheduling for ground EV pickups and flights that bypasses congestion for the fastest path.",icon:(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"13 6 19 12 13 18"})]})},{title:"Load Balancing",desc:"Automated weight-and-balance modeling for optimal, safe aircraft load layout within minutes.",icon:(0,t.jsx)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M12 3v18M5 8l7-5 7 5M5 8v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8"})})},{title:"Predictive Maintenance",desc:"Continuous telemetry monitoring triggers preemptive alerts, drastically reducing aircraft downtime.",icon:(0,t.jsx)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M22 12h-6l-4 8-4-16-4 8H2"})})},{title:"Real-Time Tracking",desc:"End-to-end sensor monitoring keeps shippers, airline, and EV operators updated on exact shipment state.",icon:(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.25",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7Z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}];function o({children:e,className:n}){let a=(0,r.useRef)(null),s=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=a.current,t=s.current;if(!e||!t||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let r=r=>{let n=e.getBoundingClientRect(),a=r.clientX-n.left,o=r.clientY-n.top,s=n.width/2,l=n.height/2;i.default.to(e,{duration:.4,rotateX:-((o-l)/l*3),rotateY:(a-s)/s*3,y:-4,transformPerspective:1e3,ease:"power2.out"}),i.default.set(t,{"--mx":`${a}px`,"--my":`${o}px`}),i.default.to(t,{duration:.3,opacity:1,ease:"power2.out"}),i.default.to(e.querySelector(".wmt-card-icon"),{duration:.4,z:25,ease:"power2.out"}),i.default.to(e.querySelector(".wmt-card-title"),{duration:.4,z:15,ease:"power2.out"})},n=()=>{i.default.to(e,{duration:.8,rotateX:0,rotateY:0,y:0,ease:"power3.out"}),i.default.to(t,{duration:.5,opacity:0,ease:"power3.out"}),i.default.to(e.querySelectorAll(".wmt-card-icon, .wmt-card-title"),{duration:.8,z:0,ease:"power3.out"})};return e.addEventListener("mousemove",r),e.addEventListener("mouseleave",n),()=>{e.removeEventListener("mousemove",r),e.removeEventListener("mouseleave",n)}},[]),(0,t.jsxs)("div",{ref:a,className:n,children:[(0,t.jsx)("div",{ref:s,style:{position:"absolute",inset:0,borderRadius:"inherit",background:"radial-gradient(circle 220px at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, 0.08) 0%, rgba(200, 16, 46, 0.03) 40%, transparent 100%)",opacity:0,pointerEvents:"none",zIndex:0,transform:"translateZ(1px)",mixBlendMode:"screen"}}),(0,t.jsx)("div",{style:{position:"relative",zIndex:1,transformStyle:"preserve-3d"},children:e})]})}e.s(["default",0,function(){let e=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let t,r=e.current;if(!r)return;let i=r.getContext("2d");if(!i)return;let n=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches,a=r.width=r.offsetWidth,o=r.height=r.offsetHeight,s=()=>{a=r.width=r.offsetWidth,o=r.height=r.offsetHeight};window.addEventListener("resize",s);let l=[{x:.12,y:.5},{x:.34,y:.25},{x:.56,y:.65},{x:.78,y:.3},{x:.92,y:.6}],d=[{from:0,to:1,t:0,speed:.006},{from:1,to:2,t:.4,speed:.005},{from:2,to:3,t:.15,speed:.007},{from:3,to:4,t:.6,speed:.005}],c=()=>{i.clearRect(0,0,a,o),i.lineWidth=1.5,i.setLineDash([6,6]),i.strokeStyle="rgba(200, 16, 46, 0.16)",i.beginPath();for(let e=0;e{e.t+=e.speed,e.t>=1&&(e.t=0);let t=l[e.from],r=l[e.to],n=t.x*a+(r.x*a-t.x*a)*e.t,s=t.y*o+(r.y*o-t.y*o)*e.t;i.beginPath(),i.arc(n,s,3.5,0,2*Math.PI),i.fillStyle="#c8102e",i.shadowColor="#c8102e",i.shadowBlur=10,i.fill(),i.shadowBlur=0}),l.forEach(e=>{let t=e.x*a,r=e.y*o;i.beginPath(),i.arc(t,r,7,0,2*Math.PI),i.fillStyle="rgba(200, 16, 46, 0.1)",i.fill(),i.beginPath(),i.arc(t,r,3,0,2*Math.PI),i.fillStyle="rgba(255, 255, 255, 0.25)",i.fill()}),n||(t=requestAnimationFrame(c))};return c(),()=>{window.removeEventListener("resize",s),t&&cancelAnimationFrame(t)}},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .wmt-section { + position: relative; + width: calc(100% - 40px); + margin: clamp(24px, 4vw, 40px) auto; + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + background: #09090b; + padding: clamp(64px, 8vw, 100px) clamp(24px, 5vw, 48px); + } + + .wmt-canvas { + position: absolute; + inset: 0; + z-index: 0; + width: 100%; + height: 100%; + pointer-events: none; + opacity: 0.12; + } + + .wmt-glow { + position: absolute; + width: 480px; + height: 480px; + border-radius: 50%; + pointer-events: none; + filter: blur(140px); + z-index: 0; + opacity: 0.06; + } + + .wmt-glow.tl { left: -8%; top: -12%; background: radial-gradient(circle, #c8102e 0%, transparent 70%); } + .wmt-glow.br { right: -8%; bottom: -12%; background: radial-gradient(circle, #ff3b3b 0%, transparent 70%); } + + .wmt-inner { + position: relative; + z-index: 1; + max-width: 1380px; + margin: 0 auto; + } + + .wmt-header { + margin: 0 auto 48px auto; + max-width: 720px; + text-align: center; + } + + .wmt-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: #c8102e; + margin-bottom: 16px; + } + + .wmt-title { + font-size: clamp(28px, 3.4vw, 48px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0; + } + + .wmt-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 18px; + margin-bottom: 20px; + } + + .wmt-card { + min-width: 0; + position: relative; + background: rgba(255, 255, 255, 0.035); + border: 1px solid rgba(255, 255, 255, 0.07); + border-radius: 18px; + padding: 26px 22px; + transition: border-color 0.5s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.5s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1); + transform-style: preserve-3d; + will-change: transform; + } + + .wmt-card:hover { + border-color: rgba(255, 255, 255, 0.16); + background-color: rgba(255, 255, 255, 0.055); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35); + } + + .wmt-card-icon { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 10px; + background: rgba(200, 16, 46, 0.12); + color: #ffffff; + margin-bottom: 18px; + } + + .wmt-card-title { + font-size: 15.5px !important; + font-weight: 700 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0 0 8px 0; + } + + .wmt-card-desc { + font-size: 16px; + line-height: 1.55; + color: rgba(255, 255, 255, 0.55); + margin: 0; + } + + .wmt-callout { + position: relative; + border-radius: 20px; + padding: 34px 32px; + background: linear-gradient(135deg, rgba(200, 16, 46, 0.95) 0%, rgba(110, 8, 26, 0.98) 100%); + border: 1px solid rgba(255, 255, 255, 0.15); + display: flex; + align-items: center; + justify-content: space-between; + gap: 24px; + flex-wrap: wrap; + overflow: hidden; + } + + .wmt-callout::after { + content: ""; + position: absolute; + inset: -1.5px; + border-radius: 20px; + background: linear-gradient(90deg, #c8102e, #ff3366, #ff0033, #c8102e); + background-size: 300% 100%; + animation: wmt-sweep 6s linear infinite; + z-index: -1; + opacity: 0.6; + } + + @keyframes wmt-sweep { + 0% { background-position: 0% 50%; } + 50% { background-position: 100% 50%; } + 100% { background-position: 0% 50%; } + } + + .wmt-callout-body { max-width: 640px; } + + .wmt-callout-title { + font-size: 20px !important; + font-weight: 800 !important; + line-height: 1.3 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0 0 8px 0; + } + + .wmt-callout-desc { + font-size: 14px; + line-height: 1.55; + color: rgba(255, 255, 255, 0.85); + margin: 0; + } + + .wmt-callout-badge { + flex-shrink: 0; + font-size: 11.5px; + font-weight: 800; + letter-spacing: 1px; + text-transform: uppercase; + color: #ffffff; + background: rgba(255, 255, 255, 0.15); + border: 1px solid rgba(255, 255, 255, 0.25); + border-radius: 999px; + padding: 8px 16px; + } + + @media (max-width: 1024px) { + .wmt-section { width: calc(100% - 24px); border-radius: 22px; } + .wmt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + } + + @media (max-width: 600px) { + .wmt-grid { grid-template-columns: 1fr; } + .wmt-callout { flex-direction: column; align-items: flex-start; } + /* The vertical clamp() floors at a fixed 64px on any phone width; + trimmed to a real mobile value to match the section rhythm near + the footer. Horizontal padding is left untouched (its own + clamp already resolves small on phones). */ + .wmt-section { padding-top: 48px; padding-bottom: 48px; } + } + `}}),(0,t.jsxs)("section",{className:"wmt-section",id:"wings-miletruth",children:[(0,t.jsx)("canvas",{ref:e,className:"wmt-canvas","aria-hidden":"true"}),(0,t.jsx)("div",{className:"wmt-glow tl","aria-hidden":"true"}),(0,t.jsx)("div",{className:"wmt-glow br","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"wmt-inner dm-section-container",children:[(0,t.jsxs)(n.ScrollReveal,{delay:.05,duration:.75,yOffset:25,className:"wmt-header",children:[(0,t.jsx)("div",{className:"wmt-eyebrow",children:"/ MileTruth™ AI /"}),(0,t.jsx)("h2",{className:"wmt-title",children:"The intelligence layer behind every delivery"})]}),(0,t.jsx)(n.StaggerChildren,{stagger:.08,duration:.65,yOffset:25,className:"wmt-grid",children:a.map(e=>(0,t.jsxs)(o,{className:"wmt-card",children:[(0,t.jsx)("div",{className:"wmt-card-icon","aria-hidden":"true",children:e.icon}),(0,t.jsx)("h3",{className:"wmt-card-title",children:e.title}),(0,t.jsx)("p",{className:"wmt-card-desc",children:e.desc})]},e.title))}),(0,t.jsx)(n.ScrollReveal,{delay:.15,duration:.8,yOffset:25,children:(0,t.jsxs)("div",{className:"wmt-callout",children:[(0,t.jsxs)("div",{className:"wmt-callout-body",children:[(0,t.jsx)("h3",{className:"wmt-callout-title",children:"Digital Twin of the Logistics Network"}),(0,t.jsx)("p",{className:"wmt-callout-desc",children:"A live virtual model of every ground vehicle, terminal, and flight — simulating what-if scenarios before bottlenecks ever form."})]}),(0,t.jsx)("span",{className:"wmt-callout-badge",children:"SaaS Ready"})]})})]})]})]})}])},13378,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let i=[{year:"Year 1",trackLeft:"10%",phase:"Launch Phase",phaseClass:"yellow",desc:"Establish localized clearance hubs and launch cargo services connecting 5–6 key commercial cities."},{year:"Year 2",trackLeft:"30%",phase:"Network Growth",phaseClass:"green",desc:"Expand hub operations and airfield schedules, serving 15 regional and secondary cargo airports."},{year:"Year 3",trackLeft:"50%",phase:"Cross-Border Nodes",phaseClass:"blue",desc:"Add international regional routes, bridging key freight corridors in South Asia."},{year:"Year 5",trackLeft:"70%",phase:"Operational Scale",phaseClass:"blue",desc:"Expand to a fleet of 25 leased cargo aircraft, servicing over 50 regional airports nationwide."},{year:"Year 10",trackLeft:"90%",phase:"Global Duplication",phaseClass:"white-pill",desc:"Replicate our asset-light, AI-powered logistics framework across Asia, Africa, and the Middle East.",glow:!0}];e.s(["default",0,function(){let[e,n]=(0,r.useState)(i.length-1),a=(e+1)/i.length*100;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .wrm-section { + position: relative; + width: calc(100% - 40px); + margin: clamp(32px, 4vw, 56px) auto clamp(16px, 2vw, 32px); + border-radius: 28px; + overflow: hidden; + box-sizing: border-box; + background: #09090b; + padding: clamp(40px, 5vw, 64px) clamp(24px, 5vw, 48px); + } + + .wrm-header { + margin: 0 auto 44px auto; + max-width: 720px; + text-align: center; + } + + .wrm-eyebrow { + font-size: 13px; + font-weight: 800; + letter-spacing: 2.5px; + text-transform: uppercase; + color: #c8102e; + margin-bottom: 16px; + } + + .wrm-title { + font-size: clamp(28px, 3.4vw, 48px) !important; + font-weight: 800 !important; + letter-spacing: -0.03em !important; + line-height: 1.15 !important; + text-transform: none !important; + color: #ffffff !important; + margin: 0; + } + + .wrm-inner { + max-width: 1380px; + margin: 0 auto; + } + + .wrm-track-wrap { + position: relative; + height: 4px; + background: rgba(255, 255, 255, 0.08); + border-radius: 2px; + margin: 0 auto 44px auto; + } + + .wrm-track-fill { + position: absolute; + left: 0; + top: 0; + height: 100%; + background: #c8102e; + box-shadow: 0 0 10px #c8102e; + border-radius: 2px; + transition: width 0.5s cubic-bezier(0.16, 1, 0.3, 1); + } + + .wrm-nodes { position: absolute; inset: 0; } + + .wrm-node { + position: absolute; + top: 50%; + transform: translate(-50%, -50%); + width: 12px; + height: 12px; + border-radius: 50%; + background: #18181b; + border: 2px solid rgba(255, 255, 255, 0.2); + transition: background 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease; + } + + .wrm-node.is-active { + background: #c8102e; + border-color: #ffffff; + box-shadow: 0 0 10px #c8102e; + } + + .wrm-grid { + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: 16px; + } + + .wrm-card { + position: relative; + min-width: 0; + padding: 24px 20px; + border-radius: 16px; + border: 1px solid rgba(255, 255, 255, 0.07); + background: rgba(255, 255, 255, 0.03); + cursor: pointer; + transition: border-color 0.4s ease, background-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease; + } + + .wrm-card:hover, + .wrm-card.is-active { + transform: translateY(-6px); + border-color: rgba(200, 16, 46, 0.5); + background: rgba(200, 16, 46, 0.06); + box-shadow: 0 16px 32px rgba(0, 0, 0, 0.3); + } + + .wrm-card-year { + font-size: 20px; + font-weight: 900; + color: #ffffff; + letter-spacing: -0.5px; + margin-bottom: 14px; + } + + .wrm-phase-pill { + display: inline-block; + font-size: 10.5px; + font-weight: 800; + text-transform: uppercase; + letter-spacing: 0.5px; + padding: 4px 9px; + border-radius: 6px; + margin-bottom: 12px; + } + + .wrm-phase-pill.yellow { background: rgba(234,179,8,0.12); color: #eab308; border: 1px solid rgba(234,179,8,0.2); } + .wrm-phase-pill.green { background: rgba(34,197,94,0.12); color: #22c55e; border: 1px solid rgba(34,197,94,0.2); } + .wrm-phase-pill.blue { background: rgba(59,130,246,0.12); color: #3b82f6; border: 1px solid rgba(59,130,246,0.2); } + .wrm-phase-pill.white-pill { background: rgba(255,255,255,0.12); color: #ffffff; border: 1px solid rgba(255,255,255,0.2); } + + .wrm-card-desc { + font-size: 14.5px; + line-height: 1.55; + color: rgba(255, 255, 255, 0.55); + margin: 0; + } + + .wrm-card.wrm-glow { + background: linear-gradient(135deg, rgba(200, 16, 46, 0.95) 0%, rgba(110, 8, 26, 0.98) 100%); + border-color: rgba(255, 255, 255, 0.15); + } + + .wrm-card.wrm-glow .wrm-card-desc { color: rgba(255, 255, 255, 0.85); } + .wrm-card.wrm-glow:hover, + .wrm-card.wrm-glow.is-active { + box-shadow: 0 20px 40px rgba(200, 16, 46, 0.45); + } + + @media (max-width: 1024px) { + .wrm-section { width: calc(100% - 24px); border-radius: 22px; } + .wrm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } + } + + @media (max-width: 767px) { + /* Both the outer margin-top and the internal vertical padding + clamp()s floor at fixed, sizeable values (56px + 64px = ~120px + combined) on any phone width — noticeably heavier than the + section rhythm near the footer. Horizontal padding is left + untouched (its own clamp already resolves small on phones). */ + .wrm-section { + margin-top: 24px; + padding-top: 32px; + padding-bottom: 32px; + } + .wrm-track-wrap { display: none; } + .wrm-grid { + grid-template-columns: 1fr; + gap: 14px; + position: relative; + padding-left: 26px; + } + .wrm-grid::before { + content: ''; + position: absolute; + left: 5px; + top: 8px; + bottom: 8px; + width: 2px; + border-radius: 2px; + background: rgba(255, 255, 255, 0.12); + } + .wrm-card { position: relative; } + .wrm-card::before { + content: ''; + position: absolute; + left: -25px; + top: 22px; + width: 12px; + height: 12px; + border-radius: 50%; + background: #18181b; + border: 2px solid rgba(255, 255, 255, 0.2); + } + .wrm-card.is-active::before, + .wrm-card:hover::before { + background: #c8102e; + border-color: #ffffff; + box-shadow: 0 0 10px rgba(200, 16, 46, 0.7); + } + } + `}}),(0,t.jsx)("section",{className:"wrm-section",id:"wings-roadmap",children:(0,t.jsxs)("div",{className:"dm-section-container",children:[(0,t.jsxs)("div",{className:"wrm-header",children:[(0,t.jsx)("div",{className:"wrm-eyebrow",children:"/ Future Roadmap /"}),(0,t.jsx)("h2",{className:"wrm-title",children:"A ten-year path to national scale"})]}),(0,t.jsxs)("div",{className:"wrm-inner",children:[(0,t.jsxs)("div",{className:"wrm-track-wrap","aria-hidden":"true",children:[(0,t.jsx)("div",{className:"wrm-track-fill",style:{width:`${a}%`}}),(0,t.jsx)("div",{className:"wrm-nodes",children:i.map((r,n)=>(0,t.jsx)("div",{className:`wrm-node${n<=e?" is-active":""}`,style:{left:`${(n+.5)/i.length*100}%`}},n))})]}),(0,t.jsx)("div",{className:"wrm-grid",children:i.map((r,i)=>(0,t.jsxs)("div",{className:`wrm-card${r.glow?" wrm-glow":""}${i===e?" is-active":""}`,onMouseEnter:()=>n(i),onClick:()=>n(i),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&n(i)},children:[(0,t.jsx)("div",{className:"wrm-card-year",children:r.year}),(0,t.jsx)("span",{className:`wrm-phase-pill ${r.phaseClass}`,children:r.phase}),(0,t.jsx)("p",{className:"wrm-card-desc",children:r.desc})]},r.year))})]})]})})]})}])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/07uz2g0_38qia.js b/build/.next/static/chunks/07uz2g0_38qia.js new file mode 100644 index 0000000..1057a1f --- /dev/null +++ b/build/.next/static/chunks/07uz2g0_38qia.js @@ -0,0 +1,4 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54394,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return i},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return s},getAccessFallbackErrorTypeByStatus:function(){return l},getAccessFallbackHTTPStatus:function(){return c},isHTTPAccessFallbackError:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},o=new Set(Object.values(i)),s="NEXT_HTTP_ERROR_FALLBACK";function u(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===s&&o.has(Number(r))}function c(e){return Number(e.digest.split(";")[1])}function l(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65713,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return i}});let n=e.r(54394),a=e.r(68391);function i(e){return(0,a.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return a}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class a extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61994,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return l},PathParamsContext:function(){return c},PathnameContext:function(){return u},ReadonlyURLSearchParams:function(){return o.ReadonlyURLSearchParams},SearchParamsContext:function(){return s},createDevToolsInstrumentedPromise:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(71645),o=e.r(3680),s=(0,i.createContext)(null),u=(0,i.createContext)(null),c=(0,i.createContext)(null),l=(0,i.createContext)(null);function d(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},45955,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},42852,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return u},StagedRenderingController:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let o=e.r(12718),s=e.r(39470);var u=((n={})[n.Before=1]="Before",n[n.EarlyStatic=2]="EarlyStatic",n[n.Static=3]="Static",n[n.EarlyRuntime=4]="EarlyRuntime",n[n.Runtime=5]="Runtime",n[n.Dynamic=6]="Dynamic",n[n.Abandoned=7]="Abandoned",n);class c{constructor(e,t,r){this.abortSignal=e,this.abandonController=t,this.shouldTrackSyncIO=r,this.currentStage=1,this.syncInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.staticStageListeners=[],this.earlyRuntimeStageListeners=[],this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.staticStagePromise=(0,s.createPromiseWithResolvers)(),this.earlyRuntimeStagePromise=(0,s.createPromiseWithResolvers)(),this.runtimeStagePromise=(0,s.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,s.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.staticStagePromise.promise.catch(l),this.staticStagePromise.reject(t),this.earlyRuntimeStagePromise.promise.catch(l),this.earlyRuntimeStagePromise.reject(t),this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t),this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t)},{once:!0}),t&&t.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.staticStageListeners.push(t);else if(4===e)this.earlyRuntimeStageListeners.push(t);else if(5===e)this.runtimeStageListeners.push(t);else if(6===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new o.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}shouldTrackSyncInterrupt(){if(!this.shouldTrackSyncIO)return!1;switch(this.currentStage){case 1:case 5:case 6:case 7:default:return!1;case 2:case 3:case 4:return!0}}syncInterruptCurrentStageWithReason(e){if(1!==this.currentStage&&7!==this.currentStage){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=e,this.currentStage=7;return}switch(this.currentStage){case 2:case 3:case 4:this.syncInterruptReason=e,this.advanceStage(6);return;case 5:return}}}getSyncInterruptReason(){return this.syncInterruptReason}getStaticStageEndTime(){return this.staticStageEndTime}getRuntimeStageEndTime(){return this.runtimeStageEndTime}abandonRender(){let{currentStage:e}=this;switch(e){case 2:this.resolveStaticStage();case 3:this.resolveEarlyRuntimeStage();case 4:this.resolveRuntimeStage();case 5:this.currentStage=7;return}}advanceStage(e){if(e<=this.currentStage)return;let t=this.currentStage;if(this.currentStage=e,t<3&&e>=3&&this.resolveStaticStage(),t<4&&e>=4&&this.resolveEarlyRuntimeStage(),t<5&&e>=5&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<6&&e>=6){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveStaticStage(){let e=this.staticStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(o.displayName=a),o);return this.abortSignal&&s.catch(l),s}}function l(){}},62141,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return b},getDraftModeProviderForCacheScope:function(){return g},getHmrRefreshHash:function(){return m},getPrerenderResumeDataCache:function(){return d},getRenderResumeDataCache:function(){return f},getServerComponentsHmrCache:function(){return p},getStagedRenderingController:function(){return y},isHmrRefresh:function(){return h},isInEarlyRenderStage:function(){return u},throwForMissingRequestStore:function(){return c},throwInvariantForMissingStore:function(){return l},workUnitAsyncStorage:function(){return i.workUnitAsyncStorageInstance}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(45955);e.r(21768);let o=e.r(12718),s=e.r(42852);function u(e){let t=e.stagedRendering;return!!t&&(t.currentStage===s.RenderStage.EarlyStatic||t.currentStage===s.RenderStage.EarlyRuntime)}function c(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function l(){throw Object.defineProperty(new o.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function d(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":case"validation-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return null;default:return e}}function f(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":case"validation-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":case"generate-static-params":return null;default:return e}}function m(e){}function h(e){return!1}function p(e){}function g(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function y(e){switch(e.type){case"request":case"prerender-runtime":return e.stagedRendering??null;case"prerender":case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return null;default:return e}}function b(e){switch(e.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return null;default:return e}}},13957,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return o},useServerInsertedHTML:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(90809)._(e.r(71645)),o=i.default.createContext(null);function s(e){let t=(0,i.useContext)(o);t&&t(e)}},22783,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return i}});let n=e.r(54394),a=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function i(){let e=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw e.digest=a,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79854,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22683,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15507,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(32061),a=e.r(65713);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63138,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={delayUntilRuntimeStage:function(){return h},getRuntimeStage:function(){return m},isHangingPromiseRejectionError:function(){return o},makeDevtoolsIOAwarePromise:function(){return f},makeHangingPromise:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(42852);function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===s}let s="HANGING_PROMISE_REJECTION";class u extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=s}}let c=new WeakMap;function l(e,t,r){if(e.aborted)return Promise.reject(new u(t,r));{let n=new Promise((n,a)=>{let i=a.bind(null,new u(t,r)),o=c.get(e);if(o)o.push(i);else{let t=[i];c.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{t(e)},0)})}function m(e){return e.currentStage===i.RenderStage.EarlyStatic||e.currentStage===i.RenderStage.EarlyRuntime?i.RenderStage.EarlyRuntime:i.RenderStage.Runtime}function h(e,t){let{stagedRendering:r}=e;return r?r.waitForStage(m(r)).then(()=>t):t}},67287,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return a}});let n=Symbol.for("react.postpone");function a(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},76353,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return o},isDynamicServerError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="DYNAMIC_SERVER_USAGE";class o extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=i}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===i}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},43248,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return o},isStaticGenBailoutError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="NEXT_STATIC_GEN_BAILOUT";class o extends Error{constructor(...e){super(...e),this.code=i}}function s(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===i}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},54839,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return i},OUTLET_BOUNDARY_NAME:function(){return s},ROOT_LAYOUT_BOUNDARY_NAME:function(){return u},VIEWPORT_BOUNDARY_NAME:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="__next_metadata_boundary__",o="__next_viewport_boundary__",s="__next_outlet_boundary__",u="__next_root_layout_boundary__"},29419,(e,t,r)=>{"use strict";var n=e.i(47167);Object.defineProperty(r,"__esModule",{value:!0});var a={atLeastOneTask:function(){return u},scheduleImmediate:function(){return s},scheduleOnNextTick:function(){return o},waitAtLeastOneReactRenderTask:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let o=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},s=e=>{setImmediate(e)};function u(){return new Promise(e=>s(e))}function c(){return new Promise(e=>setImmediate(e))}},2897,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"INSTANT_VALIDATION_BOUNDARY_NAME",{enumerable:!0,get:function(){return n}});let n="__next_instant_validation_boundary__"},67673,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a,i,o={DynamicHoleKind:function(){return Z},Postpone:function(){return T},PreludeState:function(){return ei},abortAndThrowOnSynchronousRequestDataAccess:function(){return D},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return L},annotateDynamicAccess:function(){return H},consumeDynamicAccess:function(){return $},createDynamicTrackingState:function(){return E},createDynamicValidationState:function(){return R},createHangingInputAbortSignal:function(){return X},createInstantValidationState:function(){return Q},createRenderInBrowserAbortSignal:function(){return B},formatDynamicAPIAccesses:function(){return U},getFirstDynamicReason:function(){return v},getNavigationDisallowedDynamicReasons:function(){return ec},getStaticShellDisallowedDynamicReasons:function(){return eu},isDynamicPostpone:function(){return C},isPrerenderInterruptedError:function(){return I},logDisallowedDynamicError:function(){return eo},markCurrentScopeAsDynamic:function(){return S},postponeWithTracking:function(){return x},throwIfDisallowedDynamic:function(){return es},throwToInterruptStaticGeneration:function(){return O},trackAllowedDynamicAccess:function(){return J},trackDynamicDataInDynamicRender:function(){return w},trackDynamicHoleInNavigation:function(){return ee},trackDynamicHoleInRuntimeShell:function(){return er},trackDynamicHoleInStaticShell:function(){return en},trackThrownErrorInNavigation:function(){return et},useDynamicRouteParams:function(){return F},useDynamicSearchParams:function(){return W}};for(var s in o)Object.defineProperty(r,s,{enumerable:!0,get:o[s]});let u=(n=e.r(71645))&&n.__esModule?n:{default:n},c=e.r(76353),l=e.r(43248),d=e.r(62141),f=e.r(63599),m=e.r(63138),h=e.r(54839),p=e.r(29419),g=e.r(32061),y=e.r(12718),b=e.r(2897),_="function"==typeof u.default.unstable_postpone;function E(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function R(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function v(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function S(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new l.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return x(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new c.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function O(e,t,r){let n=Object.defineProperty(new c.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function w(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function P(e,t,r){let n=M(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let a=r.dynamicTracking;a&&a.dynamicAccesses.push({stack:a.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let a=n.dynamicTracking;P(e,t,n),a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=r)}function D(e,t,r,n){if(!1===n.controller.signal.aborted){P(e,t,n);let a=n.dynamicTracking;a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=r)}throw M(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function T({reason:e,route:t}){let r=d.workUnitAsyncStorage.getStore();x(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function x(e,t,r){(function(){if(!_)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),u.default.unstable_postpone(A(e,t))}function A(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function C(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&N(e.message)}function N(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===N(A("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let k="NEXT_PRERENDER_INTERRUPTED";function M(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=k,t}function I(e){return"object"==typeof e&&null!==e&&e.digest===k&&"name"in e&&"message"in e&&e instanceof Error}function L(e){return e.length>0}function $(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function U(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: +${t}`))}function B(){let e=new AbortController;return e.abort(Object.defineProperty(new g.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function X(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else if("prerender-runtime"===e.type&&e.stagedRendering){let{stagedRendering:r}=e;r.waitForStage((0,m.getRuntimeStage)(r)).then(()=>(0,p.scheduleOnNextTick)(()=>t.abort()))}else(0,p.scheduleOnNextTick)(()=>t.abort());return t.signal;case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return}}function H(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function F(e){let t=f.workAsyncStorage.getStore(),r=d.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&u.default.use((0,m.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return x(t.route,e,r.dynamicTracking);break}case"validation-client":case"prerender-legacy":case"request":case"unstable-cache":break;case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called in \`generateStaticParams\`. Next.js should be preventing ${e} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}function W(e){let t=f.workAsyncStorage.getStore(),r=d.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,d.throwForMissingRequestStore)(e),r.type){case"validation-client":case"request":return;case"prerender-client":u.default.use((0,m.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new g.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called in \`generateStaticParams\`. Next.js should be preventing ${e} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}let z=/\n\s+at Suspense \(\)/,V=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${h.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),q=RegExp(`\\n\\s+at ${h.METADATA_BOUNDARY_NAME}[\\n\\s]`),G=RegExp(`\\n\\s+at ${h.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${h.OUTLET_BOUNDARY_NAME}[\\n\\s]`),K=RegExp(`\\n\\s+at ${b.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`);function J(e,t,r,n){if(!Y.test(t)){if(q.test(t)){r.hasDynamicMetadata=!0;return}if(G.test(t)){r.hasDynamicViewport=!0;return}if(V.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(z.test(t)){r.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=ea(Object.defineProperty(Error(`Route "${e.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1079",enumerable:!1,configurable:!0}),t,null);return void r.dynamicErrors.push(a)}}}var Z=((a={})[a.Runtime=1]="Runtime",a[a.Dynamic=2]="Dynamic",a);function Q(e){return{hasDynamicMetadata:!1,hasAllowedClientDynamicAboveBoundary:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[],validationPreventingErrors:[],thrownErrorsOutsideBoundary:[],createInstantStack:e}}function ee(e,t,r,n,a,i){if(Y.test(t))return;if(q.test(t)){let n=ea(Object.defineProperty(Error(`Route "${e.route}": ${1===a?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateMetadata` or you have file-based metadata such as icons that depend on dynamic params segments.":"Uncached data or `connection()` was accessed inside `generateMetadata`."} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1076",enumerable:!1,configurable:!0}),t,r.createInstantStack);r.dynamicMetadata=n;return}if(G.test(t)){let n=ea(Object.defineProperty(Error(`Route "${e.route}": ${1===a?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateViewport`.":"Uncached data or `connection()` was accessed inside `generateViewport`."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1086",enumerable:!1,configurable:!0}),t,r.createInstantStack);r.dynamicErrors.push(n);return}let o=K.exec(t);if(o){let e=z.exec(t);if(e&&e.index`.":"Uncached data or `connection()` was accessed outside of ``."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1078",enumerable:!1,configurable:!0}),t,r.createInstantStack);r.dynamicErrors.push(s)}function et(e,t,r,n){let a=K.exec(n);if(a){let i=z.exec(n);if(i&&i.index\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1084",enumerable:!1,configurable:!0}),t,null);r.dynamicErrors.push(a)}function en(e,t,r,n){if(!Y.test(t)){if(q.test(t)){r.dynamicMetadata=ea(Object.defineProperty(Error(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1085",enumerable:!1,configurable:!0}),t,null);return}if(G.test(t)){let n=ea(Object.defineProperty(Error(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1081",enumerable:!1,configurable:!0}),t,null);r.dynamicErrors.push(n);return}if(V.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(z.test(t)){r.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=ea(Object.defineProperty(Error(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1083",enumerable:!1,configurable:!0}),t,null);return void r.dynamicErrors.push(a)}}}function ea(e,t,r){return null!==r&&(e.cause=r()),e.stack=e.name+": "+e.message+t,e}var ei=((i={})[i.Full=0]="Full",i[i.Empty=1]="Empty",i[i.Errored=2]="Errored",i);function eo(e,t){console.error(t),console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}function es(e,t,r,n){if(n.syncDynamicErrorWithStack)throw eo(e,n.syncDynamicErrorWithStack),new l.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;t0)return n;if(1===t)return[Object.defineProperty(new y.InvariantError(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===r.hasAllowedDynamic&&0===r.dynamicErrors.length&&r.dynamicMetadata)return[r.dynamicMetadata];return[]}function ec(e,t,r,n,a){if(n){let{missingSampleErrors:e}=n;if(e.length>0)return e}let{validationPreventingErrors:i}=r;if(i.length>0)return i;if(a.renderedIds.size0)return n;if(1===t)return r.hasAllowedClientDynamicAboveBoundary?[]:[Object.defineProperty(new y.InvariantError(`Route "${e.route}" failed to render during instant validation and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E1055",enumerable:!1,configurable:!0})]}else{let e=r.dynamicErrors;if(e.length>0)return e;if(!1===r.hasAllowedDynamic&&r.dynamicMetadata)return[r.dynamicMetadata]}return[]}},91414,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,i.isBailoutToCSRError)(t)||(0,u.isDynamicServerError)(t)||(0,s.isDynamicPostpone)(t)||(0,a.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,s.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(63138),a=e.r(67287),i=e.r(32061),o=e.r(65713),s=e.r(67673),u=e.r(76353);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},RedirectType:function(){return f},forbidden:function(){return u.forbidden},notFound:function(){return s.notFound},permanentRedirect:function(){return o.permanentRedirect},redirect:function(){return o.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return l.unstable_rethrow}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(3680),o=e.r(24063),s=e.r(22783),u=e.r(79854),c=e.r(22683),l=e.r(90508);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let f={push:"push",replace:"replace"};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76562,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return s.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return l.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return E},usePathname:function(){return b},useRouter:function(){return _},useSearchParams:function(){return y},useSelectedLayoutSegment:function(){return v},useSelectedLayoutSegments:function(){return R},useServerInsertedHTML:function(){return c.useServerInsertedHTML}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(90809)._(e.r(71645)),o=e.r(8372),s=e.r(61994),u=e.r(13258),c=e.r(13957),l=e.r(92838),d=e.r(92805),f="u"e?new s.ReadonlyURLSearchParams(e):null,[e])}function b(){return f?.("usePathname()"),(0,i.useContext)(s.PathnameContext)}function _(){let e=(0,i.useContext)(o.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function E(){return f?.("useParams()"),(0,i.useContext)(s.PathParamsContext)}function R(e="children"){f?.("useSelectedLayoutSegments()");let t=(0,i.useContext)(o.LayoutRouterContext);return t?(0,u.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function v(e="children"){f?.("useSelectedLayoutSegment()"),(0,i.useContext)(s.NavigationPromisesContext);let t=R(e);return(0,u.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0812b12auw1ih.js b/build/.next/static/chunks/0812b12auw1ih.js new file mode 100644 index 0000000..2eb02f5 --- /dev/null +++ b/build/.next/static/chunks/0812b12auw1ih.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94909,(t,e,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var s={default:function(){return c},getImageProps:function(){return a}};for(var o in s)Object.defineProperty(i,o,{enumerable:!0,get:s[o]});let r=t.r(55682),n=t.r(8927),l=t.r(5500),h=r._(t.r(1948));function a(t){let{props:e}=(0,n.getImgProps)(t,{defaultLoader:h.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[t,i]of Object.entries(e))void 0===i&&delete e[t];return{props:e}}let c=l.Image},57688,(t,e,i)=>{e.exports=t.r(94909)},92599,t=>{"use strict";var e="1.3.23";function i(t,e,i){return Math.max(t,Math.min(e,i))}var s=class{isRunning=!1;value=0;from=0;to=0;currentTime=0;lerp;duration;easing;onUpdate;advance(t){if(!this.isRunning)return;let e=!1;if(this.duration&&this.easing){this.currentTime+=t;let s=i(0,this.currentTime/this.duration,1),o=(e=s>=1)?1:this.easing(s);this.value=this.from+(this.to-this.from)*o}else if(this.lerp){var s,o,r,n;this.value=(s=this.value,o=this.to,r=60*this.lerp,(1-(n=1-Math.exp(-r*t)))*s+n*o),Math.round(this.value)===Math.round(this.to)&&(this.value=this.to,e=!0)}else this.value=this.to,e=!0;e&&this.stop(),this.onUpdate?.(this.value,e)}stop(){this.isRunning=!1}fromTo(t,e,{lerp:i,duration:s,easing:o,onStart:r,onUpdate:n}){this.from=this.value=t,this.to=e,this.lerp=i,this.duration=s,this.easing=o,this.currentTime=0,this.isRunning=!0,r?.(),this.onUpdate=n}},o=class{width=0;height=0;scrollHeight=0;scrollWidth=0;debouncedResize;wrapperResizeObserver;contentResizeObserver;constructor(t,e,{autoResize:i=!0,debounce:s=250}={}){this.wrapper=t,this.content=e,i&&(this.debouncedResize=function(t,e){let i;return function(...s){clearTimeout(i),i=setTimeout(()=>{i=void 0,t.apply(this,s)},e)}}(this.resize,s),this.wrapper instanceof Window?window.addEventListener("resize",this.debouncedResize):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),this.wrapper===window&&this.debouncedResize&&window.removeEventListener("resize",this.debouncedResize)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper instanceof Window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper instanceof Window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}},r=class{events={};emit(t,...e){let i=this.events[t]||[];for(let t=0,s=i.length;t{this.events[t]=this.events[t]?.filter(t=>e!==t)}}off(t,e){this.events[t]=this.events[t]?.filter(t=>e!==t)}destroy(){this.events={}}};let n=100/6,l={passive:!1};function h(t,e){return 1===t?n:2===t?e:1}var a=class{touchStart={x:0,y:0};lastDelta={x:0,y:0};window={width:0,height:0};emitter=new r;constructor(t,e={wheelMultiplier:1,touchMultiplier:1}){this.element=t,this.options=e,window.addEventListener("resize",this.onWindowResize),this.onWindowResize(),this.element.addEventListener("wheel",this.onWheel,l),this.element.addEventListener("touchstart",this.onTouchStart,l),this.element.addEventListener("touchmove",this.onTouchMove,l),this.element.addEventListener("touchend",this.onTouchEnd,l)}on(t,e){return this.emitter.on(t,e)}destroy(){this.emitter.destroy(),window.removeEventListener("resize",this.onWindowResize),this.element.removeEventListener("wheel",this.onWheel,l),this.element.removeEventListener("touchstart",this.onTouchStart,l),this.element.removeEventListener("touchmove",this.onTouchMove,l),this.element.removeEventListener("touchend",this.onTouchEnd,l)}onTouchStart=t=>{let{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:0,y:0},this.emitter.emit("scroll",{deltaX:0,deltaY:0,event:t})};onTouchMove=t=>{let{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t,s=-(e-this.touchStart.x)*this.options.touchMultiplier,o=-(i-this.touchStart.y)*this.options.touchMultiplier;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:s,y:o},this.emitter.emit("scroll",{deltaX:s,deltaY:o,event:t})};onTouchEnd=t=>{this.emitter.emit("scroll",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t})};onWheel=t=>{let{deltaX:e,deltaY:i,deltaMode:s}=t,o=h(s,this.window.width),r=h(s,this.window.height);e*=o,i*=r,e*=this.options.wheelMultiplier,i*=this.options.wheelMultiplier,this.emitter.emit("scroll",{deltaX:e,deltaY:i,event:t})};onWindowResize=()=>{this.window={width:window.innerWidth,height:window.innerHeight}}};let c=t=>Math.min(1,1.001-2**(-10*t));var p=class{_isScrolling=!1;_isStopped=!1;_isLocked=!1;_preventNextNativeScrollEvent=!1;_resetVelocityTimeout=null;_rafId=null;isTouching;time=0;userData={};lastVelocity=0;velocity=0;direction=0;options;targetScroll;animatedScroll;animate=new s;emitter=new r;dimensions;virtualScroll;constructor({wrapper:t=window,content:i=document.documentElement,eventsTarget:s=t,smoothWheel:r=!0,syncTouch:n=!1,syncTouchLerp:l=.075,touchInertiaExponent:h=1.7,duration:p,easing:d,lerp:u=.1,infinite:m=!1,orientation:v="vertical",gestureOrientation:f="horizontal"===v?"both":"vertical",touchMultiplier:g=1,wheelMultiplier:w=1,autoResize:S=!0,prevent:y,virtualScroll:E,overscroll:b=!0,autoRaf:T=!1,anchors:z=!1,autoToggle:L=!1,allowNestedScroll:N=!1,__experimental__naiveDimensions:R=!1,naiveDimensions:O=R,stopInertiaOnNavigate:_=!1}={}){window.lenisVersion=e,window.lenis||(window.lenis={}),window.lenis.version=e,"horizontal"===v&&(window.lenis.horizontal=!0),!0===n&&(window.lenis.touch=!0),t&&t!==document.documentElement||(t=window),"number"==typeof p&&"function"!=typeof d?d=c:"function"==typeof d&&"number"!=typeof p&&(p=1),this.options={wrapper:t,content:i,eventsTarget:s,smoothWheel:r,syncTouch:n,syncTouchLerp:l,touchInertiaExponent:h,duration:p,easing:d,lerp:u,infinite:m,gestureOrientation:f,orientation:v,touchMultiplier:g,wheelMultiplier:w,autoResize:S,prevent:y,virtualScroll:E,overscroll:b,autoRaf:T,anchors:z,autoToggle:L,allowNestedScroll:N,naiveDimensions:O,stopInertiaOnNavigate:_},this.dimensions=new o(t,i,{autoResize:S}),this.updateClassName(),this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener("scroll",this.onNativeScroll),this.options.wrapper.addEventListener("scrollend",this.onScrollEnd,{capture:!0}),(this.options.anchors||this.options.stopInertiaOnNavigate)&&this.options.wrapper.addEventListener("click",this.onClick),this.options.wrapper.addEventListener("pointerdown",this.onPointerDown),this.virtualScroll=new a(s,{touchMultiplier:g,wheelMultiplier:w}),this.virtualScroll.on("scroll",this.onVirtualScroll),this.options.autoToggle&&(this.checkOverflow(),this.rootElement.addEventListener("transitionend",this.onTransitionEnd)),this.options.autoRaf&&(this._rafId=requestAnimationFrame(this.raf))}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener("scroll",this.onNativeScroll),this.options.wrapper.removeEventListener("scrollend",this.onScrollEnd,{capture:!0}),this.options.wrapper.removeEventListener("pointerdown",this.onPointerDown),(this.options.anchors||this.options.stopInertiaOnNavigate)&&this.options.wrapper.removeEventListener("click",this.onClick),this.virtualScroll.destroy(),this.dimensions.destroy(),this.cleanUpClassName(),this._rafId&&cancelAnimationFrame(this._rafId)}on(t,e){return this.emitter.on(t,e)}off(t,e){return this.emitter.off(t,e)}onScrollEnd=t=>{t instanceof CustomEvent||"smooth"!==this.isScrolling&&!1!==this.isScrolling||t.stopPropagation()};dispatchScrollendEvent=()=>{this.options.wrapper.dispatchEvent(new CustomEvent("scrollend",{bubbles:this.options.wrapper===window,detail:{lenisScrollEnd:!0}}))};get overflow(){let t=this.isHorizontal?"overflow-x":"overflow-y";return getComputedStyle(this.rootElement)[t]}checkOverflow(){["hidden","clip"].includes(this.overflow)?this.internalStop():this.internalStart()}onTransitionEnd=t=>{t.propertyName?.includes("overflow")&&t.target===this.rootElement&&this.checkOverflow()};setScroll(t){this.isHorizontal?this.options.wrapper.scrollTo({left:t,behavior:"instant"}):this.options.wrapper.scrollTo({top:t,behavior:"instant"})}onClick=t=>{let e=t.composedPath().filter(t=>t instanceof HTMLAnchorElement&&t.href).map(t=>new URL(t.href)),i=new URL(window.location.href);if(this.options.anchors){let t=e.find(t=>i.host===t.host&&i.pathname===t.pathname&&t.hash);if(t){let e="object"==typeof this.options.anchors&&this.options.anchors?this.options.anchors:void 0,i=`#${t.hash.split("#")[1]}`;this.scrollTo(i,e);return}}if(this.options.stopInertiaOnNavigate&&e.some(t=>i.host===t.host&&i.pathname!==t.pathname))return void this.reset()};onPointerDown=t=>{1===t.button&&this.reset()};onVirtualScroll=t=>{if("function"==typeof this.options.virtualScroll&&!1===this.options.virtualScroll(t))return;let{deltaX:e,deltaY:i,event:s}=t;if(this.emitter.emit("virtual-scroll",{deltaX:e,deltaY:i,event:s}),s.ctrlKey||s.lenisStopPropagation)return;let o=s.type.includes("touch"),r=s.type.includes("wheel");this.isTouching="touchstart"===s.type||"touchmove"===s.type;let n=0===e&&0===i;if(this.options.syncTouch&&o&&"touchstart"===s.type&&n&&!this.isStopped&&!this.isLocked)return void this.reset();let l="vertical"===this.options.gestureOrientation&&0===i||"horizontal"===this.options.gestureOrientation&&0===e;if(n||l)return;let h=s.composedPath();h=h.slice(0,h.indexOf(this.rootElement));let a=this.options.prevent,c=Math.abs(e)>=Math.abs(i)?"horizontal":"vertical";if(h.find(t=>t instanceof HTMLElement&&("function"==typeof a&&a?.(t)||t.hasAttribute?.("data-lenis-prevent")||"vertical"===c&&t.hasAttribute?.("data-lenis-prevent-vertical")||"horizontal"===c&&t.hasAttribute?.("data-lenis-prevent-horizontal")||o&&t.hasAttribute?.("data-lenis-prevent-touch")||r&&t.hasAttribute?.("data-lenis-prevent-wheel")||this.options.allowNestedScroll&&this.hasNestedScroll(t,{deltaX:e,deltaY:i}))))return;if(this.isStopped||this.isLocked){s.cancelable&&s.preventDefault();return}if(!(this.options.syncTouch&&o||this.options.smoothWheel&&r)){this.isScrolling="native",this.animate.stop(),s.lenisStopPropagation=!0;return}let p=i;"both"===this.options.gestureOrientation?p=Math.abs(i)>Math.abs(e)?i:e:"horizontal"===this.options.gestureOrientation&&(p=e),(!this.options.overscroll||this.options.infinite||this.options.wrapper!==window&&this.limit>0&&(this.animatedScroll>0&&this.animatedScroll0||this.animatedScroll===this.limit&&i<0))&&(s.lenisStopPropagation=!0),s.cancelable&&s.preventDefault();let d=o&&this.options.syncTouch,u=o&&"touchend"===s.type;u&&(p=Math.sign(p)*Math.abs(this.velocity)**this.options.touchInertiaExponent),this.scrollTo(this.targetScroll+p,{programmatic:!1,...d?{lerp:u?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}})};resize(){this.dimensions.resize(),this.animatedScroll=this.targetScroll=this.actualScroll,this.emit()}emit(){this.emitter.emit("scroll",this)}onNativeScroll=()=>{if(null!==this._resetVelocityTimeout&&(clearTimeout(this._resetVelocityTimeout),this._resetVelocityTimeout=null),this._preventNextNativeScrollEvent){this._preventNextNativeScrollEvent=!1;return}if(!1===this.isScrolling||"native"===this.isScrolling){let t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity,this.velocity=this.animatedScroll-t,this.direction=Math.sign(this.animatedScroll-t),this.isStopped||(this.isScrolling="native"),this.emit(),0!==this.velocity&&(this._resetVelocityTimeout=setTimeout(()=>{this.lastVelocity=this.velocity,this.velocity=0,this.isScrolling=!1,this.emit()},400))}};reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity=0,this.animate.stop()}start(){if(this.isStopped){if(this.options.autoToggle)return void this.rootElement.style.removeProperty("overflow");this.internalStart()}}internalStart(){this.isStopped&&(this.reset(),this.isStopped=!1,this.emit())}stop(){if(!this.isStopped){if(this.options.autoToggle)return void this.rootElement.style.setProperty("overflow","clip");this.internalStop()}}internalStop(){this.isStopped||(this.reset(),this.isStopped=!0,this.emit())}raf=t=>{let e=t-(this.time||t);this.time=t,this.animate.advance(.001*e),this.options.autoRaf&&(this._rafId=requestAnimationFrame(this.raf))};scrollTo(t,{offset:e=0,immediate:s=!1,lock:o=!1,programmatic:r=!0,lerp:n=r?this.options.lerp:void 0,duration:l=r?this.options.duration:void 0,easing:h=r?this.options.easing:void 0,onStart:a,onComplete:p,force:d=!1,userData:u}={}){if((this.isStopped||this.isLocked)&&!d)return;let m=t,v=e;if("string"==typeof m&&["top","left","start","#"].includes(m))m=0;else if("string"==typeof m&&["bottom","right","end"].includes(m))m=this.limit;else{let t=null;if("string"==typeof m?(t=document.querySelector(m))||("#top"===m?m=0:console.warn("Lenis: Target not found",m)):m instanceof HTMLElement&&m?.nodeType&&(t=m),t){if(this.options.wrapper!==window){let t=this.rootElement.getBoundingClientRect();v-=this.isHorizontal?t.left:t.top}let e=t.getBoundingClientRect(),i=getComputedStyle(t),s=this.isHorizontal?Number.parseFloat(i.scrollMarginLeft):Number.parseFloat(i.scrollMarginTop),o=getComputedStyle(this.rootElement),r=this.isHorizontal?Number.parseFloat(o.scrollPaddingLeft):Number.parseFloat(o.scrollPaddingTop);m=(this.isHorizontal?e.left:e.top)+this.animatedScroll-(Number.isNaN(s)?0:s)-(Number.isNaN(r)?0:r)}}if("number"==typeof m){if(m+=v,this.options.infinite){if(r){this.targetScroll=this.animatedScroll=this.scroll;let t=m-this.animatedScroll;t>this.limit/2?m-=this.limit:t<-this.limit/2&&(m+=this.limit)}}else m=i(0,m,this.limit);if(m===this.targetScroll){a?.(this),p?.(this);return}if(this.userData=u??{},s){this.animatedScroll=this.targetScroll=m,this.setScroll(this.scroll),this.reset(),this.preventNextNativeScrollEvent(),this.emit(),p?.(this),this.userData={},requestAnimationFrame(()=>{this.dispatchScrollendEvent()});return}r||(this.targetScroll=m),"number"==typeof l&&"function"!=typeof h?h=c:"function"==typeof h&&"number"!=typeof l&&(l=1),this.animate.fromTo(this.animatedScroll,m,{duration:l,easing:h,lerp:n,onStart:()=>{o&&(this.isLocked=!0),this.isScrolling="smooth",a?.(this)},onUpdate:(t,e)=>{this.isScrolling="smooth",this.lastVelocity=this.velocity,this.velocity=t-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=t,this.setScroll(this.scroll),r&&(this.targetScroll=t),e||this.emit(),e&&(this.reset(),this.emit(),p?.(this),this.userData={},requestAnimationFrame(()=>{this.dispatchScrollendEvent()}),this.preventNextNativeScrollEvent())}})}}preventNextNativeScrollEvent(){this._preventNextNativeScrollEvent=!0,requestAnimationFrame(()=>{this._preventNextNativeScrollEvent=!1})}hasNestedScroll(t,{deltaX:e,deltaY:i}){let s,o,r,n,l,h,a,c,p,d,u,m,v,f,g,w,S=Date.now();t._lenis||(t._lenis={});let y=t._lenis;if(S-(y.time??0)>2e3){y.time=Date.now();let e=window.getComputedStyle(t);if(y.computedStyle=e,s=["auto","overlay","scroll"].includes(e.overflowX),o=["auto","overlay","scroll"].includes(e.overflowY),l=["auto"].includes(e.overscrollBehaviorX),h=["auto"].includes(e.overscrollBehaviorY),y.hasOverflowX=s,y.hasOverflowY=o,!(s||o))return!1;a=t.scrollWidth,c=t.scrollHeight,p=t.clientWidth,d=t.clientHeight,r=a>p,n=c>d,y.isScrollableX=r,y.isScrollableY=n,y.scrollWidth=a,y.scrollHeight=c,y.clientWidth=p,y.clientHeight=d,y.hasOverscrollBehaviorX=l,y.hasOverscrollBehaviorY=h}else r=y.isScrollableX,n=y.isScrollableY,s=y.hasOverflowX,o=y.hasOverflowY,a=y.scrollWidth,c=y.scrollHeight,p=y.clientWidth,d=y.clientHeight,l=y.hasOverscrollBehaviorX,h=y.hasOverscrollBehaviorY;if(!(s&&r||o&&n))return!1;let E=Math.abs(e)>=Math.abs(i)?"horizontal":"vertical";if("horizontal"===E)u=Math.round(t.scrollLeft),m=a-p,v=e,f=s,g=r,w=l;else{if("vertical"!==E)return!1;u=Math.round(t.scrollTop),m=c-d,v=i,f=o,g=n,w=h}return!w&&(u>=m||u<=0)||(v>0?u0)&&f&&g}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?"x":"y"]}get isHorizontal(){return"horizontal"===this.options.orientation}get actualScroll(){let t=this.options.wrapper;return this.isHorizontal?t.scrollX??t.scrollLeft:t.scrollY??t.scrollTop}get scroll(){var t;return this.options.infinite?(this.animatedScroll%(t=this.limit)+t)%t:this.animatedScroll}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isScrolling(){return this._isScrolling}set isScrolling(t){this._isScrolling!==t&&(this._isScrolling=t,this.updateClassName())}get isStopped(){return this._isStopped}set isStopped(t){this._isStopped!==t&&(this._isStopped=t,this.updateClassName())}get isLocked(){return this._isLocked}set isLocked(t){this._isLocked!==t&&(this._isLocked=t,this.updateClassName())}get isSmooth(){return"smooth"===this.isScrolling}get className(){let t="lenis";return this.options.autoToggle&&(t+=" lenis-autoToggle"),this.isStopped&&(t+=" lenis-stopped"),this.isLocked&&(t+=" lenis-locked"),this.isScrolling&&(t+=" lenis-scrolling"),"smooth"===this.isScrolling&&(t+=" lenis-smooth"),t}updateClassName(){this.cleanUpClassName(),this.className.split(" ").forEach(t=>{this.rootElement.classList.add(t)})}cleanUpClassName(){for(let t of Array.from(this.rootElement.classList))("lenis"===t||t.startsWith("lenis-"))&&this.rootElement.classList.remove(t)}};t.s(["default",0,p])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/098a0lm-b~rn..js b/build/.next/static/chunks/098a0lm-b~rn..js new file mode 100644 index 0000000..bcac4a3 --- /dev/null +++ b/build/.next/static/chunks/098a0lm-b~rn..js @@ -0,0 +1,31 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,35451,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function u(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(e){r=u}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var a=[],l=!1,c=-1;function f(){l&&n&&(l=!1,n.length?a=n.concat(a):c=-1,a.length&&d())}function d(){if(!l){var e=s(f);l=!0;for(var t=a.length;t;){for(n=a,a=[];++c1)for(var r=1;r{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(35451)},45689,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},43476,(e,t,r)=>{"use strict";t.exports=e.r(45689)},50740,(e,t,r)=>{"use strict";var n=e.i(47167),o=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),c=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),g=Symbol.for("react.activity"),h=Symbol.for("react.view_transition"),_=Symbol.iterator,b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,m={};function x(e,t,r){this.props=e,this.context=t,this.refs=m,this.updater=r||b}function S(){}function O(e,t,r){this.props=e,this.context=t,this.refs=m,this.updater=r||b}x.prototype.isReactComponent={},x.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},x.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},S.prototype=x.prototype;var j=O.prototype=new S;j.constructor=O,v(j,x.prototype),j.isPureReactComponent=!0;var E=Array.isArray;function T(){}var R={H:null,A:null,T:null,S:null},w=Object.prototype.hasOwnProperty;function P(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function A(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var M=/\/+/g;function C(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function H(e,t,r){if(null==e)return e;var n=[],u=0;return!function e(t,r,n,u,s){var a,l,c,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case i:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,u,s)}}if(d)return s=s(t),d=""===u?"."+C(t,0):u,E(s)?(n="",null!=d&&(n=d.replace(M,"$&/")+"/"),e(s,r,n,"",function(e){return e})):null!=s&&(A(s)&&(a=s,l=n+(null==s.key||t&&t.key===s.key?"":(""+s.key).replace(M,"$&/")+"/")+d,s=P(a.type,l,a.props)),r.push(s)),1;d=0;var p=""===u?".":u+":";if(E(t))for(var g=0;g{"use strict";t.exports=e.r(50740)},18800,(e,t,r)=>{"use strict";var n=e.r(71645);function o(e){var t="https://react.dev/errors/"+e;if(1{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(18800)},55682,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},90317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return l},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class u{disable(){throw i}getStore(){}run(){throw i}exit(){throw i}enterWith(){throw i}static bind(e){return e}}let s="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return s?new s:new u}function l(e){return s?s.bind(e):u.bind(e)}function c(){return s?s.snapshot():function(e,...t){return e(...t)}}},43369,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var o={getAssetToken:function(){return a},getAssetTokenQuery:function(){return l},getDeploymentId:function(){return u},getDeploymentIdQuery:function(){return s}};for(var i in o)Object.defineProperty(r,i,{enumerable:!0,get:o[i]});function u(){return n}function s(e=!1){let t=n;return t?`${e?"&":"?"}dpl=${t}`:""}function a(){return!1}function l(e=!1){return""}"u">typeof window?(n=document.documentElement.dataset.dplId,delete document.documentElement.dataset.dplId):n=void 0},42344,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(42344)},32061,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return u},isBailoutToCSRError:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i="BAILOUT_TO_CLIENT_SIDE_RENDERING";class u extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=i}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===i}},12354,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"handleISRError",{enumerable:!0,get:function(){return o}});let n="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return i}});let n=e.r(71645),o=e.r(61994);function i(){return!function(){if("u"0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},78377,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return u},useNavFailureHandler:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(71645);let i=e.r(51191);function u(e){return!!(e&&"u">typeof window)&&!!window.next.__pendingUrl&&(0,i.createHrefFromUrl)(new URL(window.location.href))!==(0,i.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function s(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},72383,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return g},ErrorBoundaryHandler:function(){return y}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(90809),u=e.r(43476),s=i._(e.r(71645)),a=e.r(90373),l=e.r(65713);e.r(78377);let c=e.r(12354),f=e.r(82604),d=e.r(8372),p="u">typeof window&&(0,f.isBot)(window.navigator.userAgent);class y extends s.default.Component{static{this.contextType=d.AppRouterContext}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.unstable_retry=()=>{(0,s.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,l.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!p?((0,c.handleISRError)({error:this.state.error}),(0,u.jsxs)(u.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,u.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset,unstable_retry:this.unstable_retry})]})):this.props.children}}function g({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,a.useUntrackedPathname)();return e?(0,u.jsx)(y,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,u.jsx)(u.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},58442,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(90809),u=e.r(43476),s=i._(e.r(71645)),a=e.r(76562),l=e.r(24063),c=e.r(68391);function f({redirect:e,reset:t,redirectType:r}){let n=(0,a.useRouter)();return(0,s.useEffect)(()=>{s.default.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends s.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,l.getURLFromRedirectError)(e),r=(0,l.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,u.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,a.useRouter)();return(0,u.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70725,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=e.r(13258);function o(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1244,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97367,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return s},OutletBoundary:function(){return l},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(54839),u={[i.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[i.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[i.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[i.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},s=u[i.METADATA_BOUNDARY_NAME.slice(0)],a=u[i.VIEWPORT_BOUNDARY_NAME.slice(0)],l=u[i.OUTLET_BOUNDARY_NAME.slice(0)],c=u[i.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},42732,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext({})},18576,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={WarningIcon:function(){return a},errorStyles:function(){return u},errorThemeCss:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(55682);let i=e.r(43476);e.r(71645);let u={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},s=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function a(){return(0,i.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:u.icon,children:(0,i.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68027,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}}),e.r(55682);let n=e.r(43476);e.r(71645);let o=e.r(12354),i=e.r(18576),u=function({error:e}){let t=e?.digest,r=!!t;return(0,o.handleISRError)({error:e}),(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{children:(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:i.errorThemeCss}})}),(0,n.jsxs)("body",{children:[(0,n.jsx)("div",{style:i.errorStyles.container,children:(0,n.jsxs)("div",{style:i.errorStyles.card,children:[(0,n.jsx)(i.WarningIcon,{}),(0,n.jsx)("h1",{style:i.errorStyles.title,children:"This page couldn’t load"}),(0,n.jsx)("p",{style:i.errorStyles.message,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,n.jsxs)("div",{style:i.errorStyles.buttonGroup,children:[(0,n.jsx)("form",{style:i.errorStyles.form,children:(0,n.jsx)("button",{type:"submit",style:i.errorStyles.button,children:"Reload"})}),!r&&(0,n.jsx)("button",{type:"button",style:i.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,n.jsxs)("p",{style:i.errorStyles.digestFooter,children:["ERROR ",t]})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0_54tjq7o59~u.js b/build/.next/static/chunks/0_54tjq7o59~u.js new file mode 100644 index 0000000..dbeea5c --- /dev/null +++ b/build/.next/static/chunks/0_54tjq7o59~u.js @@ -0,0 +1,114 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31497,e=>{"use strict";let t=parseInt(e.i(90072).REVISION.replace(/\D+/g,""));e.s(["version",0,t])},43257,e=>{"use strict";let t;var r=e.i(31067),n=e.i(71645),a=e.i(28600),i=e.i(25234),s=e.i(44208),o=e.i(24205),l=e.i(67335),A=e.i(90072),u=A,c=e.i(31497);class h extends u.Mesh{constructor(e,t){var r,n;const a=(e=>e&&e.isCubeTexture)(e),i=Math.floor(Math.log2((null!=(n=a?null==(r=e.image[0])?void 0:r.width:e.image.width)?n:1024)/4)),s=Math.pow(2,i),o=3*Math.max(s,112),l=` + varying vec3 vWorldPosition; + void main() + { + vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) ); + vWorldPosition = worldPosition.xyz; + + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + } + `,A=[a?"#define ENVMAP_TYPE_CUBE":"",`#define CUBEUV_TEXEL_WIDTH ${1/o}`,`#define CUBEUV_TEXEL_HEIGHT ${1/(4*s)}`,`#define CUBEUV_MAX_MIP ${i}.0`].join("\n")+` + #define ENVMAP_TYPE_CUBE_UV + varying vec3 vWorldPosition; + uniform float radius; + uniform float height; + uniform float angle; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube map; + #else + uniform sampler2D map; + #endif + // From: https://www.shadertoy.com/view/4tsBD7 + float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) + { + float d = dot ( rd, n ); + + if( d > 0.0 ) { return 1e6; } + + vec3 o = ro - c; + float t = - dot( n, o ) / d; + vec3 q = o + rd * t; + + return ( dot( q, q ) < r * r ) ? t : 1e6; + } + // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm + float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) + { + vec3 oc = ro - ce; + float b = dot( oc, rd ); + float c = dot( oc, oc ) - ra * ra; + float h = b * b - c; + + if( h < 0.0 ) { return -1.0; } + + h = sqrt( h ); + + return - b + h; + } + vec3 project() + { + vec3 p = normalize( vWorldPosition ); + vec3 camPos = cameraPosition; + camPos.y -= height; + float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius ); + if( intersection > 0.0 ) { + + vec3 h = vec3( 0.0, - height, 0.0 ); + float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius ); + p = ( camPos + min( intersection, intersection2 ) * p ) / radius; + } else { + p = vec3( 0.0, 1.0, 0.0 ); + } + return p; + } + #include + #include + void main() + { + vec3 projectedWorldPosition = project(); + + #ifdef ENVMAP_TYPE_CUBE + vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb; + #else + vec3 direction = normalize( projectedWorldPosition ); + vec2 uv = equirectUv( direction ); + vec3 outcolor = texture2D( map, uv ).rgb; + #endif + gl_FragColor = vec4( outcolor, 1.0 ); + #include + #include <${c.version>=154?"colorspace_fragment":"encodings_fragment"}> + } + `,h={map:{value:e},height:{value:(null==t?void 0:t.height)||15},radius:{value:(null==t?void 0:t.radius)||100}};super(new u.IcosahedronGeometry(1,16),new u.ShaderMaterial({uniforms:h,fragmentShader:A,vertexShader:l,side:u.DoubleSide}))}set radius(e){this.material.uniforms.radius.value=e}get radius(){return this.material.uniforms.radius.value}set height(e){this.material.uniforms.height.value=e}get height(){return this.material.uniforms.height.value}}var d=e.i(60602),f=A;class B extends f.DataTextureLoader{constructor(e){super(e),this.type=f.HalfFloatType}parse(e){let t,r,n,a=function(e,t){switch(e){case 1:throw Error("THREE.RGBELoader: Read Error: "+(t||""));case 2:throw Error("THREE.RGBELoader: Write Error: "+(t||""));case 3:throw Error("THREE.RGBELoader: Bad File Format: "+(t||""));default:throw Error("THREE.RGBELoader: Memory Error: "+(t||""))}},i=function(e,t,r){t=t||1024;let n=e.pos,a=-1,i=0,s="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));for(;0>(a=o.indexOf("\n"))&&i=e.byteLength)&&(t=i(e))||a(1,"no header found"),(r=t.match(/^#\?(\S+)/))||a(3,"bad initial token"),A.valid|=1,A.programtype=r[1],A.string+=t+"\n";!1!==(t=i(e));){if(A.string+=t+"\n","#"===t.charAt(0)){A.comments+=t+"\n";continue}if((r=t.match(n))&&(A.gamma=parseFloat(r[1])),(r=t.match(s))&&(A.exposure=parseFloat(r[1])),(r=t.match(o))&&(A.valid|=2,A.format=r[1]),(r=t.match(l))&&(A.valid|=4,A.height=parseInt(r[1],10),A.width=parseInt(r[2],10)),2&A.valid&&4&A.valid)break}return 2&A.valid||a(3,"missing format specifier"),4&A.valid||a(3,"missing image size specifier"),A}(s),l=o.width,A=o.height,u=function(e,t,r){if(t<8||t>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);t!==(e[2]<<8|e[3])&&a(3,"wrong scanline width");let n=new Uint8Array(4*t*r);n.length||a(4,"unable to allocate buffer space");let i=0,s=0,o=4*t,l=new Uint8Array(4),A=new Uint8Array(o),u=r;for(;u>0&&se.byteLength&&a(1),l[0]=e[s++],l[1]=e[s++],l[2]=e[s++],l[3]=e[s++],(2!=l[0]||2!=l[1]||(l[2]<<8|l[3])!=t)&&a(3,"bad rgbe scanline format");let r=0,c;for(;r128;if(t&&(c-=128),(0===c||r+c>o)&&a(3,"bad scanline data"),t){let t=e[s++];for(let e=0;e>>1|(21845&x)<<1;J=(61680&(J=(52428&J)>>>2|(13107&J)<<2))>>>4|(3855&J)<<4,H[x]=((65280&J)>>>8|(255&J)<<8)>>>1}for(var L=function(e,t,r){for(var n,a=e.length,i=0,s=new M(t);i>>l]=A}else for(i=0,n=new M(a);i>>15-e[i]);return n},S=new g(288),x=0;x<144;++x)S[x]=8;for(var x=144;x<256;++x)S[x]=9;for(var x=256;x<280;++x)S[x]=7;for(var x=280;x<288;++x)S[x]=8;for(var U=new g(32),x=0;x<32;++x)U[x]=5;var O=L(S,9,0),P=L(S,9,1),_=L(U,5,0),K=L(U,5,1),k=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},N=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},Q=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},X=function(e){return(e/8|0)+(7&e&&1)},j=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(e instanceof M?M:e instanceof v?v:g)(r-t);return n.set(e.subarray(t,r)),n},Y=function(e,t,r){var n=e.length;if(!n||r&&!r.l&&n<5)return t||new g(0);var a=!t||r,i=!r||r.i;r||(r={}),t||(t=new g(3*n));var s=function(e){var r=t.length;if(e>r){var n=new g(Math.max(2*r,e));n.set(t),t=n}},o=r.f||0,l=r.p||0,A=r.b||0,u=r.l,c=r.d,h=r.m,d=r.n,f=8*n;do{if(!u){r.f=o=N(e,l,1);var B=N(e,l+1,3);if(l+=3,B)if(1==B)u=P,c=K,h=9,d=5;else if(2==B){var p=N(e,l,31)+257,C=N(e,l+10,15)+4,m=p+N(e,l+5,31)+1;l+=14;for(var M=new g(m),v=new g(19),I=0;I>>4;if(H<16)M[I++]=H;else{var x=0,J=0;for(16==H?(J=3+N(e,l,3),l+=2,x=M[I-1]):17==H?(J=3+N(e,l,7),l+=3):18==H&&(J=11+N(e,l,127),l+=7);J--;)M[I++]=x}}var S=M.subarray(0,p),U=M.subarray(p);h=k(S),d=k(U),u=L(S,h,1),c=L(U,d,1)}else throw"invalid block type";else{var H=X(l)+4,O=e[H-4]|e[H-3]<<8,_=H+O;if(_>n){if(i)throw"unexpected EOF";break}a&&s(A+O),t.set(e.subarray(H,_),A),r.b=A+=O,r.p=l=8*_;continue}if(l>f){if(i)throw"unexpected EOF";break}}a&&s(A+131072);for(var Y=(1<>>4;if((l+=15&x)>f){if(i)throw"unexpected EOF";break}if(!x)throw"invalid length/literal";if(V<256)t[A++]=V;else if(256==V){Z=l,u=null;break}else{var z=V-254;if(V>264){var I=V-257,q=F[I];z=N(e,l,(1<>>4;if(!$)throw"invalid distance";l+=15&$;var U=T[ee];if(ee>3){var q=E[ee];U+=Q(e,l)&(1<f){if(i)throw"unexpected EOF";break}a&&s(A+131072);for(var et=A+z;A>>8},Z=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>>8,e[n+2]|=r>>>16},V=function(e,t){for(var r=[],n=0;nh&&(h=i[n].s);var d=new M(h+1),f=z(r[u-1],d,0);if(f>t){var n=0,B=0,p=f-t,C=1<t)B+=C-(1<>>=p;B>0;){var v=i[n].s;d[v]=0&&B;--n){var F=i[n].s;d[F]==t&&(--d[F],++B)}f=t}return[new g(d),f]},z=function(e,t,r){return -1==e.s?Math.max(z(e.l,t,r+1),z(e.r,t,r+1)):t[e.s]=r},q=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new M(++t),n=0,a=e[0],i=1,s=function(e){r[n++]=e},o=1;o<=t;++o)if(e[o]==a&&o!=t)++i;else{if(!a&&i>2){for(;i>138;i-=138)s(32754);i>2&&(s(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(s(a),--i;i>6;i-=6)s(8304);i>2&&(s(i-3<<5|8208),i=0)}for(;i--;)s(a);i=1,a=e[o]}return[r.subarray(0,n),t]},$=function(e,t){for(var r=0,n=0;n>>8,e[a+2]=255^e[a],e[a+3]=255^e[a+1];for(var i=0;i4&&!J[y[K-1]];--K);var k=A+5<<3,N=$(a,S)+$(i,U)+s,Q=$(a,p)+$(i,g)+s+14+3*K+$(w,J)+(2*w[16]+3*w[17]+7*w[18]);if(k<=N&&k<=Q)return ee(t,u,e.subarray(l,l+A));if(W(t,u,1+(Q15&&(W(t,u,z[H]>>>5&127),u+=z[H]>>>12)}}else c=O,h=S,d=_,f=U;for(var H=0;H255){var et=n[H]>>>18&31;Z(t,u,c[et+257]),u+=h[et+257],et>7&&(W(t,u,n[H]>>>23&31),u+=F[et]);var er=31&n[H];Z(t,u,d[er]),u+=f[er],er>3&&(Z(t,u,n[H]>>>5&8191),u+=E[er])}else Z(t,u,c[n[H]]),u+=h[n[H]];return Z(t,u,c[256]),u+h[256]},er=new v([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),en=new g(0),ea=function(e,t,r,n,a,i){var s=e.length,o=new g(n+s+5*(1+Math.ceil(s/7e3))+a),l=o.subarray(n,o.length-a),A=0;if(!t||s<8)for(var u=0;u<=s;u+=65535){var c=u+65535;c>>13,f=8191&h,B=(1<7e3||x>24576)&&P>423){A=et(e,l,0,G,R,D,H,x,L,u-L,A),x=T=H=0,L=u;for(var _=0;_<286;++_)R[_]=0;for(var _=0;_<30;++_)D[_]=0}var K=2,k=0,N=f,Q=U-O&32767;if(P>2&&S==I(u-Q))for(var Y=Math.min(d,P)-1,W=Math.min(32767,u),Z=Math.min(258,P);Q<=W&&--N&&U!=O;){if(e[u+K]==e[u+K-Q]){for(var V=0;VK){if(K=V,k=Q,V>Y)break;for(var z=Math.min(Q,V-2),q=0,_=0;_q&&(q=ei,O=$)}}}O=p[U=O],Q+=U-O+32768&32767}if(k){G[x++]=0x10000000|b[K]<<18|w[k];var es=31&b[K],eo=31&w[k];H+=F[es]+E[eo],++R[257+es],++D[eo],J=u+K,++T}else G[x++]=e[u],++R[e[u]]}}A=et(e,l,i,G,R,D,H,x,L,u-L,A),!i&&7&A&&(A=ee(l,A+1,en))}return j(o,0,n+X(A)+a)},ei=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var r=t,n=9;--n;)r=(1&r&&-0x12477ce0)^r>>>1;e[t]=r}return e}(),es=function(){var e=-1;return{p:function(t){for(var r=e,n=0;n>>8;e=r},d:function(){return~e}}},eo=function(){var e=1,t=0;return{p:function(r){for(var n=e,a=t,i=r.length,s=0;s!=i;){for(var o=Math.min(s+2655,i);s>16),a=(65535&a)+15*(a>>16)}e=n,t=a},d:function(){return e%=65521,t%=65521,(255&e)<<24|e>>>8<<16|(255&t)<<8|t>>>8}}},el=function(e,t,r,n,a){return ea(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,r,n,!a)},eA=function(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r},eu=function(e,t,r){for(var n=e(),a=e.toString(),i=a.slice(a.indexOf("[")+1,a.lastIndexOf("]")).replace(/ /g,"").split(","),s=0;s>>0},ey=function(e,t){return eE(e,t)+0x100000000*eE(e,t+4)},eI=function(e,t,r){for(;r;++t)e[t]=r,r>>>=8},eG=function(e,t){var r=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:2*(9==t.level),e[9]=3,0!=t.mtime&&eI(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),r){e[3]=8;for(var n=0;n<=r.length;++n)e[n+10]=r.charCodeAt(n)}},eR=function(e){if(31!=e[0]||139!=e[1]||8!=e[2])throw"invalid gzip data";var t=e[3],r=10;4&t&&(r+=e[10]|(e[11]<<8)+2);for(var n=(t>>3&1)+(t>>4&1);n>0;n-=!e[r++]);return r+(2&t)},eb=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},eD=function(e){return 10+(e.filename&&e.filename.length+1||0)},eT=function(e,t){var r=t.level,n=0==r?0:r<6?1:9==r?3:2;e[0]=120,e[1]=n<<6|(n?32-2*n:1)},ew=function(e){if((15&e[0])!=8||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function eH(e,t){return t||"function"!=typeof e||(t=e,e={}),this.ondata=t,e}var ex=function(){function e(e,t){t||"function"!=typeof e||(t=e,e={}),this.ondata=t,this.o=e||{}}return e.prototype.p=function(e,t){this.ondata(el(e,this.o,0,0,!t),t)},e.prototype.push=function(e,t){if(this.d)throw"stream finished";if(!this.ondata)throw"no stream handler";this.d=t,this.p(e,t||!1)},e}(),eJ=function(e,t){ev([eB,function(){return[eM,ex]}],this,eH.call(this,e,t),function(e){onmessage=eM(new ex(e.data))},6)};function eL(e,t){return el(e,t||{},0,0)}var eS=function(){function e(e){this.s={},this.p=new g(0),this.ondata=e}return e.prototype.e=function(e){if(this.d)throw"stream finished";if(!this.ondata)throw"no stream handler";var t=this.p.length,r=new g(t+e.length);r.set(this.p),r.set(e,t),this.p=r},e.prototype.c=function(e){this.d=this.s.i=e||!1;var t=this.s.b,r=Y(this.p,this.o,this.s);this.ondata(j(r,t,this.s.b),this.d),this.o=j(r,this.s.b-32768),this.s.b=this.o.length,this.p=j(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),eU=function(e){this.ondata=e,ev([ef,function(){return[eM,eS]}],this,0,function(){onmessage=eM(new eS)},7)};function eO(e,t){return Y(e,t)}(function(){function e(e,t){this.c=es(),this.l=0,this.v=1,ex.call(this,e,t)}e.prototype.push=function(e,t){ex.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e),this.l+=e.length;var r=el(e,this.o,this.v&&eD(this.o),t&&8,!t);this.v&&(eG(r,this.o),this.v=0),t&&(eI(r,r.length-8,this.c.d()),eI(r,r.length-4,this.l)),this.ondata(r,t)}})();var eP=function(){function e(e){this.v=1,eS.call(this,e)}return e.prototype.push=function(e,t){if(eS.prototype.e.call(this,e),this.v){var r=this.p.length>3?eR(this.p):4;if(r>=this.p.length&&!t)return;this.p=this.p.subarray(r),this.v=0}if(t){if(this.p.length<8)throw"invalid gzip stream";this.p=this.p.subarray(0,-8)}eS.prototype.c.call(this,t)},e}(),e_=function(e){this.ondata=e,ev([ef,ep,function(){return[eM,eS,eP]}],this,0,function(){onmessage=eM(new eP)},9)},eK=(function(){function e(e,t){this.c=eo(),this.v=1,ex.call(this,e,t)}e.prototype.push=function(e,t){ex.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e);var r=el(e,this.o,this.v&&2,t&&4,!t);this.v&&(eT(r,this.o),this.v=0),t&&eI(r,r.length-4,this.c.d()),this.ondata(r,t)}}(),function(){function e(e){this.v=1,eS.call(this,e)}return e.prototype.push=function(e,t){if(eS.prototype.e.call(this,e),this.v){if(this.p.length<2&&!t)return;this.p=this.p.subarray(2),this.v=0}if(t){if(this.p.length<4)throw"invalid zlib stream";this.p=this.p.subarray(0,-4)}eS.prototype.c.call(this,t)},e}()),ek=function(e){this.ondata=e,ev([ef,eC,function(){return[eM,eS,eK]}],this,0,function(){onmessage=eM(new eK)},11)};function eN(e,t){return Y((ew(e),e.subarray(2,-4)),t)}var eQ=function(){function e(e){this.G=eP,this.I=eS,this.Z=eK,this.ondata=e}return e.prototype.push=function(e,t){if(!this.ondata)throw"no stream handler";if(this.s)this.s.push(e,t);else{if(this.p&&this.p.length){var r=new g(this.p.length+e.length);r.set(this.p),r.set(e,this.p.length)}else this.p=e;if(this.p.length>2){var n=this,a=function(){n.ondata.apply(n,arguments)};this.s=31==this.p[0]&&139==this.p[1]&&8==this.p[2]?new this.G(a):(15&this.p[0])!=8||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(a):new this.Z(a),this.s.push(this.p,t),this.p=null}}},e}();(function(e){this.G=e_,this.I=eU,this.Z=ek,this.ondata=e}).prototype.push=function(e,t){eQ.prototype.push.call(this,e,t)};var eX="u">typeof TextEncoder&&new TextEncoder,ej="u">typeof TextDecoder&&new TextDecoder,eY=0;try{ej.decode(en,{stream:!0}),eY=1}catch(e){}var eW=function(e){for(var t="",r=0;;){var n=e[r++],a=(n>127)+(n>223)+(n>239);if(r+a>e.length)return[t,j(e,r-1)];a?3==a?t+=String.fromCharCode(55296|(n=((15&n)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536)>>10,56320|1023&n):1&a?t+=String.fromCharCode((31&n)<<6|63&e[r++]):t+=String.fromCharCode((15&n)<<12|(63&e[r++])<<6|63&e[r++]):t+=String.fromCharCode(n)}};function eZ(e,t){if(t){for(var r=new g(e.length),n=0;n>1)),s=0,o=function(e){i[s++]=e},n=0;ni.length){var l=new g(s+8+(a-n<<1));l.set(i),i=l}var A=e.charCodeAt(n);A<128||t?o(A):(A<2048?o(192|A>>6):(A>55295&&A<57344?(o(240|(A=65536+(1047552&A)|1023&e.charCodeAt(++n))>>18),o(128|A>>12&63)):o(224|A>>12),o(128|A>>6&63)),o(128|63&A))}return j(i,0,s)}(function(e){this.ondata=e,eY?this.t=new TextDecoder:this.p=en}).prototype.push=function(e,t){if(!this.ondata)throw"no callback";if(t=!!t,this.t){if(this.ondata(this.t.decode(e,{stream:!0}),t),t){if(this.t.decode().length)throw"invalid utf-8 data";this.t=null}return}if(!this.p)throw"stream finished";var r=new g(this.p.length+e.length);r.set(this.p),r.set(e,this.p.length);var n=eW(r),a=n[0],i=n[1];if(t){if(i.length)throw"invalid utf-8 data";this.p=null}else this.p=i;this.ondata(a,t)},(function(e){this.ondata=e}).prototype.push=function(e,t){if(!this.ondata)throw"no callback";if(this.d)throw"stream finished";this.ondata(eZ(e),this.d=t||!1)};var eV=function(e){return 1==e?3:e<6?2:+(9==e)},ez=function(e,t){for(;1!=eF(e,t);t+=4+eF(e,t+2));return[ey(e,t+12),ey(e,t+4),ey(e,t+20)]},eq=function(e){var t=0;if(e)for(var r in e){var n=e[r].length;if(n>65535)throw"extra field too long";t+=n+4}return t},e$=function(e,t,r,n,a,i,s,o){var l=n.length,A=r.extra,u=o&&o.length,c=eq(A);eI(e,t,null!=s?0x2014b50:0x4034b50),t+=4,null!=s&&(e[t++]=20,e[t++]=r.os),e[t]=20,t+=2,e[t++]=r.flag<<1|(null==i&&8),e[t++]=a&&8,e[t++]=255&r.compression,e[t++]=r.compression>>8;var h=new Date(null==r.mtime?Date.now():r.mtime),d=h.getFullYear()-1980;if(d<0||d>119)throw"date not in range 1980-2099";if(eI(e,t,d<<25|h.getMonth()+1<<21|h.getDate()<<16|h.getHours()<<11|h.getMinutes()<<5|h.getSeconds()>>>1),t+=4,null!=i&&(eI(e,t,r.crc),eI(e,t+4,i),eI(e,t+8,r.size)),eI(e,t+12,l),eI(e,t+14,c),t+=16,null!=s&&(eI(e,t,u),eI(e,t+6,r.attrs),eI(e,t+10,s),t+=14),e.set(n,t),t+=l,c)for(var f in A){var B=A[f],p=B.length;eI(e,t,+f),eI(e,t+2,p),e.set(B,t+4),t+=4+p}return u&&(e.set(o,t),t+=u),t},e0=function(e,t,r,n,a){eI(e,t,0x6054b50),eI(e,t+8,r),eI(e,t+10,r),eI(e,t+12,n),eI(e,t+16,a)},e1=function(){function e(e){this.filename=e,this.c=es(),this.size=0,this.compression=0}return e.prototype.process=function(e,t){this.ondata(null,e,t)},e.prototype.push=function(e,t){if(!this.ondata)throw"no callback - add to ZIP archive before pushing";this.c.p(e),this.size+=e.length,t&&(this.crc=this.c.d()),this.process(e,t||!1)},e}();function e9(e,t){var r=this;t||(t={}),e1.call(this,e),this.d=new ex(t,function(e,t){r.ondata(null,e,t)}),this.compression=8,this.flag=eV(t.level)}function e2(e,t){var r=this;t||(t={}),e1.call(this,e),this.d=new eJ(t,function(e,t,n){r.ondata(e,t,n)}),this.compression=8,this.flag=eV(t.level),this.terminate=this.d.terminate}function e8(e){this.ondata=e,this.u=[],this.d=1}e9.prototype.process=function(e,t){try{this.d.push(e,t)}catch(e){this.ondata(e,null,t)}},e9.prototype.push=function(e,t){e1.prototype.push.call(this,e,t)},e2.prototype.process=function(e,t){this.d.push(e,t)},e2.prototype.push=function(e,t){e1.prototype.push.call(this,e,t)},e8.prototype.add=function(e){var t=this;if(2&this.d)throw"stream finished";var r=eZ(e.filename),n=r.length,a=e.comment,i=a&&eZ(a),s=n!=e.filename.length||i&&a.length!=i.length,o=n+eq(e.extra)+30;if(n>65535)throw"filename too long";var l=new g(o);e$(l,0,e,r,s);var A=[l],u=function(){for(var e=0,r=A;e0){var n=Math.min(this.c,e.length),a=e.subarray(0,n);if(this.c-=n,this.d?this.d.push(a,!this.c):this.k[0].push(a),(e=e.subarray(n)).length)return this.push(e,t)}else{var i=0,s=0,o=void 0,l=void 0;this.p.length?e.length?((l=new g(this.p.length+e.length)).set(this.p),l.set(e,this.p.length)):l=this.p:l=e;for(var A=l.length,u=this.c,c=u&&this.d,h=this;ss+30+c+d){var f,B,p=[];h.k.unshift(p),i=2;var C=eE(l,s+18),m=eE(l,s+22),g=function(e,t){if(t){for(var r="",n=0;n=0&&(M.size=C,M.originalSize=m),h.onfile(M)}return"break"}if(u){if(0x8074b50==e)return o=s+=12+(-2==u&&8),i=3,h.c=0,"break";else if(0x2014b50==e)return o=s-=4,i=3,h.c=0,"break"}}();++s);if(this.p=en,u<0){var d=i?l.subarray(0,o-12-(-2==u&&8)-(0x8074b50==eE(l,o-16)&&4)):l.subarray(0,s);c?c.push(d,!!i):this.k[+(2==i)].push(d)}if(2&i)return this.push(l.subarray(s),t);this.p=l.subarray(s)}if(t){if(this.c)throw"invalid zip file";this.p=null}},e5.prototype.register=function(e){this.o[e.compression]=e};let e7=c.version>=152;class te extends p.DataTextureLoader{constructor(e){super(e),this.type=p.HalfFloatType}parse(e){let t={l:0,c:0,lc:0};function r(e,r,n,a,i){for(;n>(n-=e)&(1<>(n-=8),d=new Uint8Array([d])[0];if(c.value+d>h)return!1;for(var f=u[c.value-1];d-- >0;)u[c.value++]=f}else{if(!(c.value32767?t-65536:t}let A={a:0,b:0};function u(e,t){var r=l(e),n=l(t),a=r+(1&n)+(n>>1),i=a-n;A.a=a,A.b=i}function c(e,t){var r=65535&t,n=(65535&e)-(r>>1)&65535;A.a=r+n-32768&65535,A.b=n}function h(e,l,A,u,c,h){var d=A.value,f=I(l,A),B=I(l,A);A.value+=4;var p=I(l,A);if(A.value+=4,f<0||f>=65537||B<0||B>=65537)throw"Something wrong with HUF_ENCSIZE";for(var C=Array(65537),m=Array(16384),g=0;g<16384;g++)m[g]={},m[g].len=0,m[g].lit=0,m[g].p=null;var M=u-(A.value-d);if(!function(e,a,i,s,o,l){for(var A=0,u=0;s<=o;s++){if(a.value-a.value>i)return!1;r(6,A,u,e,a);var c=t.l;if(A=t.c,u=t.lc,l[s]=c,63==c){if(a.value-a.value>i)throw"Something wrong with hufUnpackEncTable";r(8,A,u,e,a);var h=t.l+6;if(A=t.c,u=t.lc,s+h>o+1)throw"Something wrong with hufUnpackEncTable";for(;h--;)l[s++]=0;s--}else if(c>=59){var h=c-59+2;if(s+h>o+1)throw"Something wrong with hufUnpackEncTable";for(;h--;)l[s++]=0;s--}}!function(e){for(var t=0;t<=58;++t)n[t]=0;for(var t=0;t<65537;++t)n[e[t]]+=1;for(var r=0,t=58;t>0;--t){var a=r+n[t]>>1;n[t]=r,r=a}for(var t=0;t<65537;++t){var i=e[t];i>0&&(e[t]=i|n[i]++<<6)}}(l)}(e,A,M,f,B,C),p>8*(u-(A.value-d)))throw"Something wrong with hufUncompress";!function(e,t,r,n){for(;t<=r;t++){var a=e[t]>>6,i=63&e[t];if(a>>i)throw"Invalid table entry";if(i>14){var s=n[a>>i-14];if(s.len)throw"Invalid table entry";if(s.lit++,s.p){var o=s.p;s.p=Array(s.lit);for(var l=0;l0;l--){var s=n[(a<<14-i)+A];if(s.len||s.p)throw"Invalid table entry";s.len=i,s.lit=t,A++}}}(C,f,B,m),function(e,t,r,n,l,A,u,c,h,d){for(var f=0,B=0,p=Math.trunc(l.value+(A+7)/8);l.value=14;){var C=t[f>>B-14&16383];if(C.len)B-=C.len,o(C.lit,u,f,B,r,n,l,h,d,c),f=s.c,B=s.lc;else{if(!C.p)throw"hufDecode issues";for(m=0;m=g&&e[C.p[m]]>>6==(f>>B-g&(1<>=M,B-=M;B>0;){var C=t[f<<14-B&16383];if(C.len)B-=C.len,o(C.lit,u,f,B,r,n,l,h,d,c),f=s.c,B=s.lc;else throw"hufDecode issues"}}(C,m,e,l,A,p,B,h,c,{value:0})}function d(e){for(var t=1;ti)&&(t[a++]=e[r++],!(a>i));){;t[a++]=e[n++]}}function B(e){for(var t=e.byteLength,r=[],n=0,a=new DataView(e);t>0;){var i=a.getInt8(n++);if(i<0){var s=-i;t-=s+1;for(var o=0;o=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(l<=d)for(var o=0;o>3]&1<<(7&n))&&(t[r++]=n);for(var a=r-1;r<65536;)t[r++]=0;return a}(a,f),p=I(t,r);h(e.array,t,r,p,n,i);for(var o=0;oa?a:r,h=1;h<=l;)h<<=1;for(h>>=1,d=h,h>>=1;h>=1;){for(var d,f,B,p,C,m=0,g=0+i*(a-d),M=i*h,v=i*d,F=n*h,E=n*d;m<=g;m+=v){for(var y=m,I=m+n*(r-d);y<=I;y+=E){var G=y+F,R=y+M,b=R+F;o?(u(e[y+t],e[R+t]),f=A.a,p=A.b,u(e[G+t],e[b+t]),B=A.a,C=A.b,u(f,B),e[y+t]=A.a,e[G+t]=A.b,u(p,C)):(c(e[y+t],e[R+t]),f=A.a,p=A.b,c(e[G+t],e[b+t]),B=A.a,C=A.b,c(f,B),e[y+t]=A.a,e[G+t]=A.b,c(p,C)),e[R+t]=A.a,e[b+t]=A.b}if(r&h){var R=y+M;o?u(e[y+t],e[R+t]):c(e[y+t],e[R+t]),f=A.a,e[R+t]=A.b,e[y+t]=f}}if(a&h)for(var y=m,I=m+n*(r-d);y<=I;y+=E){var G=y+F;o?u(e[y+t],e[G+t]):c(e[y+t],e[G+t]),f=A.a,e[G+t]=A.b,e[y+t]=f}d=h,h>>=1}}(n,C.start+m,C.nx,C.size,C.ny,C.nx*C.size,B);for(var g=i,M=0;M0;){var o=E(t.buffer,r),l=R(t,r),A=l>>2&3,u=new Int8Array([(l>>4)-1])[0],c=R(t,r);i.push({name:o,index:u,type:c,compression:A}),s-=o.length+3}for(var d=U.channels,f=Array(e.channels),C=0;C=0&&(v.idx[y.index]=F),m.offset=F)}if(a.acCompressedSize>0)switch(a.acCompression){case 0:var I=new Uint16Array(a.totalAcUncompressedCount);h(e.array,t,r,a.acCompressedSize,I,a.totalAcUncompressedCount);break;case 1:var G=e.array.slice(r.value,r.value+a.totalAcUncompressedCount),D=eN(G),I=new Uint16Array(D.buffer);r.value+=a.totalAcUncompressedCount}if(a.dcCompressedSize>0){var T=new Uint16Array(g({array:e.array,offset:r,size:a.dcCompressedSize}).buffer);r.value+=a.dcCompressedSize}if(a.rleRawSize>0){var G=e.array.slice(r.value,r.value+a.rleCompressedSize),D=eN(G),x=B(D.buffer);r.value+=a.rleCompressedSize}for(var J=0,L=Array(f.length),C=0;C>8==255?a+=255&n:(r[a]=n,a++),e.value++}(f,n,m[e]),v=m[e],(F=C[e])[0]=w(v[0]),F[1]=w(v[1]),F[2]=w(v[5]),F[3]=w(v[6]),F[4]=w(v[14]),F[5]=w(v[15]),F[6]=w(v[27]),F[7]=w(v[28]),F[8]=w(v[2]),F[9]=w(v[4]),F[10]=w(v[7]),F[11]=w(v[13]),F[12]=w(v[16]),F[13]=w(v[26]),F[14]=w(v[29]),F[15]=w(v[42]),F[16]=w(v[3]),F[17]=w(v[8]),F[18]=w(v[12]),F[19]=w(v[17]),F[20]=w(v[25]),F[21]=w(v[30]),F[22]=w(v[41]),F[23]=w(v[43]),F[24]=w(v[9]),F[25]=w(v[11]),F[26]=w(v[18]),F[27]=w(v[24]),F[28]=w(v[31]),F[29]=w(v[40]),F[30]=w(v[44]),F[31]=w(v[53]),F[32]=w(v[10]),F[33]=w(v[19]),F[34]=w(v[23]),F[35]=w(v[32]),F[36]=w(v[39]),F[37]=w(v[45]),F[38]=w(v[52]),F[39]=w(v[54]),F[40]=w(v[20]),F[41]=w(v[22]),F[42]=w(v[33]),F[43]=w(v[38]),F[44]=w(v[46]),F[45]=w(v[51]),F[46]=w(v[55]),F[47]=w(v[60]),F[48]=w(v[21]),F[49]=w(v[34]),F[50]=w(v[37]),F[51]=w(v[47]),F[52]=w(v[50]),F[53]=w(v[56]),F[54]=w(v[59]),F[55]=w(v[61]),F[56]=w(v[35]),F[57]=w(v[36]),F[58]=w(v[48]),F[59]=w(v[49]),F[60]=w(v[57]),F[61]=w(v[58]),F[62]=w(v[62]),F[63]=w(v[63]),function(e){let t=.5*Math.cos(3.14159/16),r=.5*Math.cos(3.14159/8),n=.5*Math.cos(3*3.14159/16),a=.5*Math.cos(3*3.14159/8);for(var i=[,,,,],s=[,,,,],o=[,,,,],l=[,,,,],A=0;A<8;++A){var u=8*A;i[0]=r*e[u+2],i[1]=a*e[u+2],i[2]=r*e[u+6],i[3]=a*e[u+6],s[0]=t*e[u+1]+n*e[u+3]+.2777854612564676*e[u+5]+.09754573032714427*e[u+7],s[1]=n*e[u+1]-.09754573032714427*e[u+3]-t*e[u+5]-.2777854612564676*e[u+7],s[2]=.2777854612564676*e[u+1]-t*e[u+3]+.09754573032714427*e[u+5]+n*e[u+7],s[3]=.09754573032714427*e[u+1]-.2777854612564676*e[u+3]+n*e[u+5]-t*e[u+7],o[0]=.35355362513961314*(e[u+0]+e[u+4]),o[3]=.35355362513961314*(e[u+0]-e[u+4]),o[1]=i[0]+i[3],o[2]=i[1]-i[2],l[0]=o[0]+o[1],l[1]=o[3]+o[2],l[2]=o[3]-o[2],l[3]=o[0]-o[1],e[u+0]=l[0]+s[0],e[u+1]=l[1]+s[1],e[u+2]=l[2]+s[2],e[u+3]=l[3]+s[3],e[u+4]=l[3]-s[3],e[u+5]=l[2]-s[2],e[u+6]=l[1]-s[1],e[u+7]=l[0]-s[0]}for(var c=0;c<8;++c)i[0]=r*e[16+c],i[1]=a*e[16+c],i[2]=r*e[48+c],i[3]=a*e[48+c],s[0]=t*e[8+c]+n*e[24+c]+.2777854612564676*e[40+c]+.09754573032714427*e[56+c],s[1]=n*e[8+c]-.09754573032714427*e[24+c]-t*e[40+c]-.2777854612564676*e[56+c],s[2]=.2777854612564676*e[8+c]-t*e[24+c]+.09754573032714427*e[40+c]+n*e[56+c],s[3]=.09754573032714427*e[8+c]-.2777854612564676*e[24+c]+n*e[40+c]-t*e[56+c],o[0]=.35355362513961314*(e[c]+e[32+c]),o[3]=.35355362513961314*(e[c]-e[32+c]),o[1]=i[0]+i[3],o[2]=i[1]-i[2],l[0]=o[0]+o[1],l[1]=o[3]+o[2],l[2]=o[3]-o[2],l[3]=o[0]-o[1],e[0+c]=l[0]+s[0],e[8+c]=l[1]+s[1],e[16+c]=l[2]+s[2],e[24+c]=l[3]+s[3],e[32+c]=l[3]-s[3],e[40+c]=l[2]-s[2],e[48+c]=l[1]-s[1],e[56+c]=l[0]-s[0]}(C[e])}for(var I=C,G=0;G<64;++G){var R=I[0][G],b=I[1][G],D=I[2][G];I[0][G]=R+1.5747*D,I[1][G]=R-.1873*b-.4682*D,I[2][G]=R+1.8556*b}for(let t=0;t<3;++t)!function(e,t,r){for(var n,a=0;a<64;++a){t[r+a]=p.DataUtils.toHalfFloat((n=e[a])<=1?Math.sign(n)*Math.pow(Math.abs(n),2.2):Math.sign(n)*Math.pow(9.025013291561939,Math.abs(n)-1))}}(C[t],g[t],64*e)}let i=0;for(let n=0;n<3;++n){let a=r[e.idx[n]].type;for(let e=8*t;e<8*t+E;++e){i=M[n][e];for(let t=0;t>10,r=1023&e;return(e>>15?-1:1)*(t?31===t?r?NaN:1/0:Math.pow(2,t-15)*(1+r/1024):r/1024*6103515625e-14)}function H(e,t){var r=e.getUint16(t.value,!0);return t.value+=2,r}function x(e,t){return w(H(e,t))}let J=new DataView(e),L=new Uint8Array(e),S={value:0},U=function(e,t,r){let n={};if(0x1312f76!=e.getUint32(0,!0))throw"THREE.EXRLoader: provided file doesn't appear to be in OpenEXR format.";n.version=e.getUint8(4);let a=e.getUint8(5);n.spec={singleTile:!!(2&a),longName:!!(4&a),deepFormat:!!(8&a),multiPart:!!(16&a)},r.value=8;for(var i=!0;i;){var s=E(t,r);if(0==s)i=!1;else{var o=E(t,r),l=I(e,r),A=function(e,t,r,n,a){var i,s,o,l,A,u,c;if("string"===n||"stringvector"===n||"iccProfile"===n)return i=new TextDecoder().decode(new Uint8Array(t).slice(r.value,r.value+a)),r.value=r.value+a,i;if("chlist"===n)return function(e,t,r,n){for(var a=r.value,i=[];r.valueO.height?O.height-t:O.scanlineBlockSize;let r=O.size=O.height)break;for(let e=0;e{let n;switch(e){case A.UnsignedByteType:n=new Uint8ClampedArray(t*r*4);break;case A.HalfFloatType:n=new Uint16Array(t*r*4);break;case A.UnsignedIntType:n=new Uint32Array(t*r*4);break;case A.ByteType:n=new Int8Array(t*r*4);break;case A.ShortType:n=new Int16Array(t*r*4);break;case A.IntType:n=new Int32Array(t*r*4);break;case A.FloatType:n=new Float32Array(t*r*4);break;default:throw Error("Unsupported data type")}return n};class tn{_renderer;_rendererIsDisposable=!1;_material;_scene;_camera;_quad;_renderTarget;_width;_height;_type;_colorSpace;_supportsReadPixels=!0;constructor(e){this._width=e.width,this._height=e.height,this._type=e.type,this._colorSpace=e.colorSpace;const r={format:A.RGBAFormat,depthBuffer:!1,stencilBuffer:!1,type:this._type,colorSpace:this._colorSpace,anisotropy:e.renderTargetOptions?.anisotropy!==void 0?e.renderTargetOptions?.anisotropy:1,generateMipmaps:e.renderTargetOptions?.generateMipmaps!==void 0&&e.renderTargetOptions?.generateMipmaps,magFilter:e.renderTargetOptions?.magFilter!==void 0?e.renderTargetOptions?.magFilter:A.LinearFilter,minFilter:e.renderTargetOptions?.minFilter!==void 0?e.renderTargetOptions?.minFilter:A.LinearFilter,samples:e.renderTargetOptions?.samples!==void 0?e.renderTargetOptions?.samples:void 0,wrapS:e.renderTargetOptions?.wrapS!==void 0?e.renderTargetOptions?.wrapS:A.ClampToEdgeWrapping,wrapT:e.renderTargetOptions?.wrapT!==void 0?e.renderTargetOptions?.wrapT:A.ClampToEdgeWrapping};if(this._material=e.material,e.renderer?this._renderer=e.renderer:(this._renderer=tn.instantiateRenderer(),this._rendererIsDisposable=!0),this._scene=new A.Scene,this._camera=new A.OrthographicCamera,this._camera.position.set(0,0,10),this._camera.left=-.5,this._camera.right=.5,this._camera.top=.5,this._camera.bottom=-.5,this._camera.updateProjectionMatrix(),!((e,r,n,a)=>{if(void 0!==t)return t;let i=new A.WebGLRenderTarget(1,1,a);r.setRenderTarget(i);let s=new A.Mesh(new A.PlaneGeometry,new A.MeshBasicMaterial({color:0xffffff}));r.render(s,n),r.setRenderTarget(null);let o=tr(e,i.width,i.height);return r.readRenderTargetPixels(i,0,0,i.width,i.height,o),i.dispose(),s.geometry.dispose(),s.material.dispose(),t=0!==o[0]})(this._type,this._renderer,this._camera,r)){let e;this._type===A.HalfFloatType&&(e=this._renderer.extensions.has("EXT_color_buffer_float")?A.FloatType:void 0),void 0!==e?(console.warn(`This browser does not support reading pixels from ${this._type} RenderTargets, switching to ${A.FloatType}`),this._type=e):(this._supportsReadPixels=!1,console.warn("This browser dos not support toArray or toDataTexture, calls to those methods will result in an error thrown"))}this._quad=new A.Mesh(new A.PlaneGeometry,this._material),this._quad.geometry.computeBoundingBox(),this._scene.add(this._quad),this._renderTarget=new A.WebGLRenderTarget(this.width,this.height,r),this._renderTarget.texture.mapping=e.renderTargetOptions?.mapping!==void 0?e.renderTargetOptions?.mapping:A.UVMapping}static instantiateRenderer(){let e=new tt.WebGLRenderer;return e.setSize(128,128),e}render=()=>{this._renderer.setRenderTarget(this._renderTarget);try{this._renderer.render(this._scene,this._camera)}catch(e){throw this._renderer.setRenderTarget(null),e}this._renderer.setRenderTarget(null)};toArray(){if(!this._supportsReadPixels)throw Error("Can't read pixels in this browser");let e=tr(this._type,this._width,this._height);return this._renderer.readRenderTargetPixels(this._renderTarget,0,0,this._width,this._height,e),e}toDataTexture(e){let t=new A.DataTexture(this.toArray(),this.width,this.height,A.RGBAFormat,this._type,e?.mapping||A.UVMapping,e?.wrapS||A.ClampToEdgeWrapping,e?.wrapT||A.ClampToEdgeWrapping,e?.magFilter||A.LinearFilter,e?.minFilter||A.LinearFilter,e?.anisotropy||1,A.LinearSRGBColorSpace);return t.generateMipmaps=e?.generateMipmaps!==void 0&&e?.generateMipmaps,t}disposeOnDemandRenderer(){this._renderer.setRenderTarget(null),this._rendererIsDisposable&&(this._renderer.dispose(),this._renderer.forceContextLoss())}dispose(e){this.disposeOnDemandRenderer(),e&&this.renderTarget.dispose(),this.material instanceof A.ShaderMaterial&&Object.values(this.material.uniforms).forEach(e=>{e.value instanceof A.Texture&&e.value.dispose()}),Object.values(this.material).forEach(e=>{e instanceof A.Texture&&e.dispose()}),this.material.dispose(),this._quad.geometry.dispose()}get width(){return this._width}set width(e){this._width=e,this._renderTarget.setSize(this._width,this._height)}get height(){return this._height}set height(e){this._height=e,this._renderTarget.setSize(this._width,this._height)}get renderer(){return this._renderer}get renderTarget(){return this._renderTarget}set renderTarget(e){this._renderTarget=e,this._width=e.width,this._height=e.height}get material(){return this._material}get type(){return this._type}get colorSpace(){return this._colorSpace}}var ta=A;class ti extends Error{}class ts extends Error{}let to=(e,t,r)=>{let n=RegExp(`${t}="([^"]*)"`,"i").exec(e);if(n)return n[1];let a=RegExp(`<${t}[^>]*>([\\s\\S]*?)`,"i").exec(e);if(a){let e=a[1].match(/([^<]*)<\/rdf:li>/g);return e&&3===e.length?e.map(e=>e.replace(/<\/?rdf:li>/g,"")):a[1].trim()}if(void 0!==r)return r;throw Error(`Can't find ${t} in gainmap metadata`)};class tl{options;constructor(e){this.options={debug:!!e&&void 0!==e.debug&&e.debug,extractFII:!e||void 0===e.extractFII||e.extractFII,extractNonFII:!e||void 0===e.extractNonFII||e.extractNonFII}}extract(e){return new Promise((t,r)=>{let n,a=this.options.debug,i=new DataView(e.buffer);if(65496!==i.getUint16(0))return void r(Error("Not a valid jpeg"));let s=i.byteLength,o=2,l=0;for(;o250)return void r(Error(`Found no marker after ${l} loops 😵`));if(255!==i.getUint8(o))return void r(Error(`Not a valid marker at offset 0x${o.toString(16)}, found: 0x${i.getUint8(o).toString(16)}`));if(n=i.getUint8(o+1),a&&console.log(`Marker: ${n.toString(16)}`),226===n){a&&console.log("Found APP2 marker (0xffe2)");let e=o+4;if(0x4d504600===i.getUint32(e)){let n,a=e+4;if(18761===i.getUint16(a))n=!1;else{if(19789!==i.getUint16(a))return void r(Error("No valid endianness marker found in TIFF header"));n=!0}if(42!==i.getUint16(a+2,!n))return void r(Error("Not valid TIFF data! (no 0x002A marker)"));let s=i.getUint32(a+4,!n);if(s<8)return void r(Error("Not valid TIFF data! (First offset less than 8)"));let o=a+s,l=i.getUint16(o,!n),A=o+2,u=0;for(let e=A;e{let t=(e=>{let t,r=(t="u">typeof TextDecoder?new TextDecoder().decode(e):e.toString()).indexOf("",r),n=t.slice(r,e+10);try{let e=to(n,"hdrgm:GainMapMin","0"),t=to(n,"hdrgm:GainMapMax"),r=to(n,"hdrgm:Gamma","1"),a=to(n,"hdrgm:OffsetSDR","0.015625"),i=to(n,"hdrgm:OffsetHDR","0.015625"),s=/hdrgm:HDRCapacityMin="([^"]*)"/.exec(n),o=s?s[1]:"0",l=/hdrgm:HDRCapacityMax="([^"]*)"/.exec(n);if(!l)throw Error("Incomplete gainmap metadata");let A=l[1];return{gainMapMin:Array.isArray(e)?e.map(e=>parseFloat(e)):[parseFloat(e),parseFloat(e),parseFloat(e)],gainMapMax:Array.isArray(t)?t.map(e=>parseFloat(e)):[parseFloat(t),parseFloat(t),parseFloat(t)],gamma:Array.isArray(r)?r.map(e=>parseFloat(e)):[parseFloat(r),parseFloat(r),parseFloat(r)],offsetSdr:Array.isArray(a)?a.map(e=>parseFloat(e)):[parseFloat(a),parseFloat(a),parseFloat(a)],offsetHdr:Array.isArray(i)?i.map(e=>parseFloat(e)):[parseFloat(i),parseFloat(i),parseFloat(i)],hdrCapacityMin:parseFloat(o),hdrCapacityMax:parseFloat(A)}}catch(e){}r=t.indexOf("new Promise((t,r)=>{let n=document.createElement("img");n.onload=()=>{t(n)},n.onerror=e=>{r(e)},n.src=URL.createObjectURL(e)});class tc extends ta.Loader{_renderer;_renderTargetOptions;_internalLoadingManager;_config;constructor(e,t){super(t),this._config=e,e.renderer&&(this._renderer=e.renderer),this._internalLoadingManager=new ta.LoadingManager}setRenderer(e){return this._renderer=e,this}setRenderTargetOptions(e){return this._renderTargetOptions=e,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: A Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");let e=this._config.createMaterial({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new ta.Texture,sdr:new ta.Texture});return this._config.createQuadRenderer({width:16,height:16,type:ta.HalfFloatType,colorSpace:ta.LinearSRGBColorSpace,material:e,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async processImages(e,t,r){let n,a,i=t?new Blob([t],{type:"image/jpeg"}):void 0,s=new Blob([e],{type:"image/jpeg"}),o=!1;if("u"new tB(e),createQuadRenderer:e=>new tn(e)},t)}async render(e,t,r,n){let{sdrImage:a,gainMapImage:i,needsFlip:s}=await this.processImages(r,n,"flipY"),{gainMap:o,sdr:l}=this.createTextures(a,i,s);this.updateQuadRenderer(e,a,o,l,t),e.render()}}class tC extends tp{load([e,t,r],n,a,i){let s,o,l,A=this.prepareQuadRenderer(),u=async()=>{if(s&&o&&l){try{await this.render(A,l,s,o)}catch(n){this.manager.itemError(e),this.manager.itemError(t),this.manager.itemError(r),"function"==typeof i&&i(n),A.disposeOnDemandRenderer();return}"function"==typeof n&&n(A),this.manager.itemEnd(e),this.manager.itemEnd(t),this.manager.itemEnd(r),A.disposeOnDemandRenderer()}},c=!0,h=0,d=0,f=!0,B=0,p=0,C=!0,m=0,g=0,M=()=>{"function"==typeof a&&a(new ProgressEvent("progress",{lengthComputable:c&&f&&C,loaded:d+p+g,total:h+B+m}))};this.manager.itemStart(e),this.manager.itemStart(t),this.manager.itemStart(r);let v=new th.FileLoader(this._internalLoadingManager);v.setResponseType("arraybuffer"),v.setRequestHeader(this.requestHeader),v.setPath(this.path),v.setWithCredentials(this.withCredentials),v.load(e,async e=>{if("string"==typeof e)throw Error("Invalid sdr buffer");s=e,await u()},e=>{c=e.lengthComputable,d=e.loaded,h=e.total,M()},t=>{this.manager.itemError(e),"function"==typeof i&&i(t)});let F=new th.FileLoader(this._internalLoadingManager);F.setResponseType("arraybuffer"),F.setRequestHeader(this.requestHeader),F.setPath(this.path),F.setWithCredentials(this.withCredentials),F.load(t,async e=>{if("string"==typeof e)throw Error("Invalid gainmap buffer");o=e,await u()},e=>{f=e.lengthComputable,p=e.loaded,B=e.total,M()},e=>{this.manager.itemError(t),"function"==typeof i&&i(e)});let E=new th.FileLoader(this._internalLoadingManager);return E.setRequestHeader(this.requestHeader),E.setPath(this.path),E.setWithCredentials(this.withCredentials),E.load(r,async e=>{if("string"!=typeof e)throw Error("Invalid metadata string");l=JSON.parse(e),await u()},e=>{C=e.lengthComputable,g=e.loaded,m=e.total,M()},e=>{this.manager.itemError(r),"function"==typeof i&&i(e)}),A}}class tm extends tp{load(e,t,r,n){let a=this.prepareQuadRenderer(),i=new th.FileLoader(this._internalLoadingManager);return i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setPath(this.path),i.setWithCredentials(this.withCredentials),this.manager.itemStart(e),i.load(e,async r=>{let i,s,o;if("string"==typeof r)throw Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");let l=new Uint8Array(r);try{let e=await tA(l);i=e.sdr,s=e.gainMap,o=e.metadata}catch(t){if(t instanceof ts||t instanceof ti)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),o={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},i=l;else throw t}try{await this.render(a,o,i.buffer,s?.buffer)}catch(t){this.manager.itemError(e),"function"==typeof n&&n(t),a.disposeOnDemandRenderer();return}"function"==typeof t&&t(a),this.manager.itemEnd(e),a.disposeOnDemandRenderer()},r,t=>{this.manager.itemError(e),"function"==typeof n&&n(t)}),a}}let tg={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},tM="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",tv=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"];function tF({files:e=tv,path:t="",preset:r,colorSpace:i,extensions:s}={}){r&&(tI(r),e=tg[r],t=tM);let o=Array.isArray(e),{extension:l,isCubemap:u}=tG(e),c=tR(l);if(!c)throw Error("useEnvironment: Unrecognized file extension: "+e);let h=(0,a.useThree)(e=>e.gl);(0,n.useLayoutEffect)(()=>{("webp"===l||"jpg"===l||"jpeg"===l)&&h.domElement.addEventListener("webglcontextlost",function(){d.useLoader.clear(c,o?[e]:e)},{once:!0})},[e,h.domElement]);let f=(0,d.useLoader)(c,o?[e]:e,e=>{("webp"===l||"jpg"===l||"jpeg"===l)&&e.setRenderer(h),null==e.setPath||e.setPath(t),s&&s(e)}),B=o?f[0]:f;if("jpg"===l||"jpeg"===l||"webp"===l){var p;B=null==(p=B.renderTarget)?void 0:p.texture}return B.mapping=u?A.CubeReflectionMapping:A.EquirectangularReflectionMapping,B.colorSpace=null!=i?i:u?"srgb":"srgb-linear",B}let tE={files:tv,path:"",preset:void 0,extensions:void 0};tF.preload=e=>{let t={...tE,...e},{files:r,path:n=""}=t,{preset:a,extensions:i}=t;a&&(tI(a),r=tg[a],n=tM);let{extension:s}=tG(r);if("webp"===s||"jpg"===s||"jpeg"===s)throw Error("useEnvironment: Preloading gainmaps is not supported");let o=tR(s);if(!o)throw Error("useEnvironment: Unrecognized file extension: "+r);d.useLoader.preload(o,Array.isArray(r)?[r]:r,e=>{null==e.setPath||e.setPath(n),i&&i(e)})};let ty={files:tv,preset:void 0};function tI(e){if(!(e in tg))throw Error("Preset must be one of: "+Object.keys(tg).join(", "))}function tG(e){var t;let r=Array.isArray(e)&&6===e.length,n=Array.isArray(e)&&3===e.length&&e.some(e=>e.endsWith("json")),a=Array.isArray(e)?e[0]:e;return{extension:r?"cube":n?"webp":a.startsWith("data:application/exr")?"exr":a.startsWith("data:application/hdr")?"hdr":a.startsWith("data:image/jpeg")?"jpg":null==(t=a.split(".").pop())||null==(t=t.split("?"))||null==(t=t.shift())?void 0:t.toLowerCase(),isCubemap:r,isGainmap:n}}function tR(e){return"cube"===e?A.CubeTextureLoader:"hdr"===e?B:"exr"===e?te:"jpg"===e||"jpeg"===e?tm:"webp"===e?tC:null}function tb(e,t,r,n,a={}){var i,s,l,A,u;let c;a={backgroundBlurriness:0,backgroundIntensity:1,backgroundRotation:[0,0,0],environmentIntensity:1,environmentRotation:[0,0,0],...a};let h=(c=u=t||r).current&&c.current.isScene?u.current:u,d=h.background,f=h.environment,B={backgroundBlurriness:h.backgroundBlurriness,backgroundIntensity:h.backgroundIntensity,backgroundRotation:null!=(i=null==(s=h.backgroundRotation)||null==s.clone?void 0:s.clone())?i:[0,0,0],environmentIntensity:h.environmentIntensity,environmentRotation:null!=(l=null==(A=h.environmentRotation)||null==A.clone?void 0:A.clone())?l:[0,0,0]};return"only"!==e&&(h.environment=n),e&&(h.background=n),(0,o.applyProps)(h,a),()=>{"only"!==e&&(h.environment=f),e&&(h.background=d),(0,o.applyProps)(h,B)}}function tD({scene:e,background:t=!1,map:r,...i}){let s=(0,a.useThree)(e=>e.scene);return n.useLayoutEffect(()=>{if(r)return tb(t,e,s,r,i)}),null}function tT({background:e=!1,scene:t,blur:r,backgroundBlurriness:i,backgroundIntensity:s,backgroundRotation:o,environmentIntensity:l,environmentRotation:A,...u}){let c=tF(u),h=(0,a.useThree)(e=>e.scene);return n.useLayoutEffect(()=>tb(e,t,h,c,{backgroundBlurriness:null!=r?r:i,backgroundIntensity:s,backgroundRotation:o,environmentIntensity:l,environmentRotation:A})),n.useEffect(()=>()=>{c.dispose()},[c]),null}function tw({children:e,near:t=.1,far:r=1e3,resolution:o=256,frames:l=1,map:u,background:c=!1,blur:h,backgroundBlurriness:d,backgroundIntensity:f,backgroundRotation:B,environmentIntensity:p,environmentRotation:C,scene:m,files:g,path:M,preset:v,extensions:F}){let E=(0,a.useThree)(e=>e.gl),y=(0,a.useThree)(e=>e.scene),I=n.useRef(null),[G]=n.useState(()=>new A.Scene),R=n.useMemo(()=>{let e=new A.WebGLCubeRenderTarget(o);return e.texture.type=A.HalfFloatType,e},[o]);n.useEffect(()=>()=>{R.dispose()},[R]),n.useLayoutEffect(()=>{if(1===l){let e=E.autoClear;E.autoClear=!0,I.current.update(E,G),E.autoClear=e}return tb(c,m,y,R.texture,{backgroundBlurriness:null!=h?h:d,backgroundIntensity:f,backgroundRotation:B,environmentIntensity:p,environmentRotation:C})},[e,G,R.texture,m,y,c,l,E]);let b=1;return(0,i.useFrame)(()=>{if(l===1/0||b(0,l.extend)({GroundProjectedEnvImpl:h}),[]),n.useEffect(()=>()=>{o.dispose()},[o]);let u=n.useMemo(()=>[A],[A]),c=null==(t=e.ground)?void 0:t.height,d=null==(a=e.ground)?void 0:a.radius,f=null!=(i=null==(s=e.ground)?void 0:s.scale)?i:1e3;return n.createElement(n.Fragment,null,n.createElement(tD,(0,r.default)({},e,{map:A})),n.createElement("groundProjectedEnvImpl",{args:u,scale:f,height:c,radius:d}))}tF.clear=e=>{let t={...ty,...e},{files:r}=t,{preset:n}=t;n&&(tI(n),r=tg[n]);let{extension:a}=tG(r),i=tR(a);if(!i)throw Error("useEnvironment: Unrecognized file extension: "+r);d.useLoader.clear(i,Array.isArray(r)?[r]:r)},e.s(["Environment",0,function(e){return e.ground?n.createElement(tH,e):e.map?n.createElement(tD,e):e.children?n.createElement(tw,e):n.createElement(tT,e)}],43257)},68911,e=>{"use strict";var t=e.i(90072);e.s(["toCreasedNormals",0,function(e,r=Math.PI/3){let n=Math.cos(r),a=(1+1e-10)*100,i=[new t.Vector3,new t.Vector3,new t.Vector3],s=new t.Vector3,o=new t.Vector3,l=new t.Vector3,A=new t.Vector3;function u(e){let t=~~(e.x*a),r=~~(e.y*a),n=~~(e.z*a);return`${t},${r},${n}`}let c=e.index?e.toNonIndexed():e,h=c.attributes.position,d={};for(let e=0,r=h.count/3;en&&A.add(t)}A.normalize(),B.setXYZ(t+e,A.x,A.y,A.z)}}return c.setAttribute("normal",B),c},"toTrianglesDrawMode",0,function(e,r){if(r===t.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(r!==t.TriangleFanDrawMode&&r!==t.TriangleStripDrawMode)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",r),e;{let n=e.getIndex();if(null===n){let t=[],r=e.getAttribute("position");if(void 0===r)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e{"use strict";let t;var r=e.i(31067),n=e.i(71645),a=e.i(90072),i=e.i(68911),s=e.i(31497);function o(e){if("u">typeof TextDecoder)return new TextDecoder().decode(e);let t="";for(let r=0,n=e.length;r=2.0 are supported."));return}let l=new q(a,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===s[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}l.setExtensions(i),l.setPlugins(s),l.parse(r,n)}parseAsync(e,t){let r=this;return new Promise(function(n,a){r.parse(e,t,n,a)})}}function c(){let e={};return{get:function(t){return e[t]},add:function(t,r){e[t]=r},remove:function(t){delete e[t]},removeAll:function(){e={}}}}let h={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class d{constructor(e){this.parser=e,this.name=h.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let r=0,n=t.length;r=0))return null;else throw Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return t.loadTextureImage(e,a.source,i)}}class R{constructor(e){this.parser=e,this.name=h.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,r=this.parser,n=r.json,a=n.textures[e];if(!a.extensions||!a.extensions[t])return null;let i=a.extensions[t],s=n.images[i.source],o=r.textureLoader;if(s.uri){let e=r.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(e,i.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class b{constructor(e){this.parser=e,this.name=h.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,r=this.parser,n=r.json,a=n.textures[e];if(!a.extensions||!a.extensions[t])return null;let i=a.extensions[t],s=n.images[i.source],o=r.textureLoader;if(s.uri){let e=r.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(e,i.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class D{constructor(e){this.name=h.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,r=t.bufferViews[e];if(!r.extensions||!r.extensions[this.name])return null;{let e=r.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),a=this.parser.options.meshoptDecoder;if(!a||!a.supported)if(!(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return n.then(function(t){let r=e.byteOffset||0,n=e.byteLength||0,i=e.count,s=e.byteStride,o=new Uint8Array(t,r,n);return a.decodeGltfBufferAsync?a.decodeGltfBufferAsync(i,s,o,e.mode,e.filter).then(function(e){return e.buffer}):a.ready.then(function(){let t=new ArrayBuffer(i*s);return a.decodeGltfBuffer(new Uint8Array(t),i,s,o,e.mode,e.filter),t})})}}}class T{constructor(e){this.name=h.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,r=t.nodes[e];if(!r.extensions||!r.extensions[this.name]||void 0===r.mesh)return null;for(let e of t.meshes[r.mesh].primitives)if(e.mode!==P.TRIANGLES&&e.mode!==P.TRIANGLE_STRIP&&e.mode!==P.TRIANGLE_FAN&&void 0!==e.mode)return null;let n=r.extensions[this.name].attributes,i=[],s={};for(let e in n)i.push(this.parser.getDependency("accessor",n[e]).then(t=>(s[e]=t,s[e])));return i.length<1?null:(i.push(this.parser.createNodeMesh(e)),Promise.all(i).then(e=>{let t=e.pop(),r=t.isGroup?t.children:[t],n=e[0].count,i=[];for(let e of r){let t=new a.Matrix4,r=new a.Vector3,o=new a.Quaternion,l=new a.Vector3(1,1,1),A=new a.InstancedMesh(e.geometry,e.material,n);for(let e=0;e=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},X={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},j={CUBICSPLINE:void 0,LINEAR:a.InterpolateLinear,STEP:a.InterpolateDiscrete};function Y(e,t,r){for(let n in r.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=r.extensions[n])}function W(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function Z(e){let t="",r=Object.keys(e).sort();for(let n=0,a=r.length;ntypeof navigator&&void 0!==navigator.userAgent&&(r=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),i=(n=navigator.userAgent.indexOf("Firefox")>-1)?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"u"{let r=this.associations.get(e);for(let[n,i]of(null!=r&&this.associations.set(t,r),e.children.entries()))a(i,t.children[n])};return a(r,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let r=0;r=2&&s.setY(t,h[e*l+1]),l>=3&&s.setZ(t,h[e*l+2]),l>=4&&s.setW(t,h[e*l+3]),l>=5)throw Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return s})}loadTexture(e){let t=this.json,r=this.options,n=t.textures[e].source,a=t.images[n],i=this.textureLoader;if(a.uri){let e=r.manager.getHandler(a.uri);null!==e&&(i=e)}return this.loadTextureImage(e,n,i)}loadTextureImage(e,t,r){let n=this,i=this.json,s=i.textures[e],o=i.images[t],l=(o.uri||o.bufferView)+":"+s.sampler;if(this.textureCache[l])return this.textureCache[l];let A=this.loadImageSource(t,r).then(function(t){t.flipY=!1,t.name=s.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);let r=(i.samplers||{})[s.sampler]||{};return t.magFilter=K[r.magFilter]||a.LinearFilter,t.minFilter=K[r.minFilter]||a.LinearMipmapLinearFilter,t.wrapS=k[r.wrapS]||a.RepeatWrapping,t.wrapT=k[r.wrapT]||a.RepeatWrapping,n.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[l]=A,A}loadImageSource(e,t){let r=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());let i=r.images[e],s=self.URL||self.webkitURL,o=i.uri||"",l=!1;if(void 0!==i.bufferView)o=this.getDependency("bufferView",i.bufferView).then(function(e){l=!0;let t=new Blob([e],{type:i.mimeType});return o=s.createObjectURL(t)});else if(void 0===i.uri)throw Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let A=Promise.resolve(o).then(function(e){return new Promise(function(r,i){let s=r;!0===t.isImageBitmapLoader&&(s=function(e){let t=new a.Texture(e);t.needsUpdate=!0,r(t)}),t.load(a.LoaderUtils.resolveURL(e,n.path),s,void 0,i)})}).then(function(e){var t;return!0===l&&s.revokeObjectURL(o),W(e,i),e.userData.mimeType=i.mimeType||((t=i.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e});return this.sourceCache[e]=A,A}assignTexture(e,t,r,n){let a=this;return this.getDependency("texture",r.index).then(function(i){if(!i)return null;if(void 0!==r.texCoord&&r.texCoord>0&&((i=i.clone()).channel=r.texCoord),a.extensions[h.KHR_TEXTURE_TRANSFORM]){let e=void 0!==r.extensions?r.extensions[h.KHR_TEXTURE_TRANSFORM]:void 0;if(e){let t=a.associations.get(i);i=a.extensions[h.KHR_TEXTURE_TRANSFORM].extendTexture(i,e),a.associations.set(i,t)}}return void 0!==n&&("number"==typeof n&&(n=3001===n?l:A),"colorSpace"in i?i.colorSpace=n:i.encoding=n===l?3001:3e3),e[t]=i,i})}assignFinalMaterial(e){let t=e.geometry,r=e.material,n=void 0===t.attributes.tangent,i=void 0!==t.attributes.color,s=void 0===t.attributes.normal;if(e.isPoints){let e="PointsMaterial:"+r.uuid,t=this.cache.get(e);t||(t=new a.PointsMaterial,a.Material.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,t.sizeAttenuation=!1,this.cache.add(e,t)),r=t}else if(e.isLine){let e="LineBasicMaterial:"+r.uuid,t=this.cache.get(e);t||(t=new a.LineBasicMaterial,a.Material.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,this.cache.add(e,t)),r=t}if(n||i||s){let e="ClonedMaterial:"+r.uuid+":";n&&(e+="derivative-tangents:"),i&&(e+="vertex-colors:"),s&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=r.clone(),i&&(t.vertexColors=!0),s&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(r))),r=t}e.material=r}getMaterialType(){return a.MeshStandardMaterial}loadMaterial(e){let t,r=this,n=this.json,i=this.extensions,s=n.materials[e],o={},u=s.extensions||{},c=[];if(u[h.KHR_MATERIALS_UNLIT]){let e=i[h.KHR_MATERIALS_UNLIT];t=e.getMaterialType(),c.push(e.extendParams(o,s,r))}else{let n=s.pbrMetallicRoughness||{};if(o.color=new a.Color(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],A),o.opacity=e[3]}void 0!==n.baseColorTexture&&c.push(r.assignTexture(o,"map",n.baseColorTexture,l)),o.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,o.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(c.push(r.assignTexture(o,"metalnessMap",n.metallicRoughnessTexture)),c.push(r.assignTexture(o,"roughnessMap",n.metallicRoughnessTexture))),t=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}!0===s.doubleSided&&(o.side=a.DoubleSide);let d=s.alphaMode||"OPAQUE";if("BLEND"===d?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,"MASK"===d&&(o.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&t!==a.MeshBasicMaterial&&(c.push(r.assignTexture(o,"normalMap",s.normalTexture)),o.normalScale=new a.Vector2(1,1),void 0!==s.normalTexture.scale)){let e=s.normalTexture.scale;o.normalScale.set(e,e)}if(void 0!==s.occlusionTexture&&t!==a.MeshBasicMaterial&&(c.push(r.assignTexture(o,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(o.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&t!==a.MeshBasicMaterial){let e=s.emissiveFactor;o.emissive=new a.Color().setRGB(e[0],e[1],e[2],A)}return void 0!==s.emissiveTexture&&t!==a.MeshBasicMaterial&&c.push(r.assignTexture(o,"emissiveMap",s.emissiveTexture,l)),Promise.all(c).then(function(){let n=new t(o);return s.name&&(n.name=s.name),W(n,s),r.associations.set(n,{materials:e}),s.extensions&&Y(i,n,s),n})}createUniqueName(e){let t=a.PropertyBinding.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,r=this.extensions,n=this.primitiveCache,i=[];for(let s=0,o=e.length;s0&&function(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let r=0,n=t.weights.length;r1?new a.Group:1===t.length?t[0]:new a.Object3D)!==t[0])for(let e=0,r=t.length;e{let t=new Map;for(let[e,r]of n.associations)(e instanceof a.Material||e instanceof a.Texture)&&t.set(e,r);return e.traverse(e=>{let r=n.associations.get(e);null!=r&&t.set(e,r)}),t})(i),i})}_createAnimationTracks(e,t,r,n,i){let s,o=[],l=e.name?e.name:e.uuid,A=[];switch(X[i.path]===X.weights?e.traverse(function(e){e.morphTargetInfluences&&A.push(e.name?e.name:e.uuid)}):A.push(l),X[i.path]){case X.weights:s=a.NumberKeyframeTrack;break;case X.rotation:s=a.QuaternionKeyframeTrack;break;case X.position:case X.scale:s=a.VectorKeyframeTrack;break;default:s=1===r.itemSize?a.NumberKeyframeTrack:a.VectorKeyframeTrack}let u=void 0!==n.interpolation?j[n.interpolation]:a.InterpolateLinear,c=this._getArrayFromAccessor(r);for(let e=0,r=A.length;e{let r={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,r).then(t).catch(n)},r,n)}decodeDracoFile(e,t,r,n){let a={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,a).then(t)}decodeGeometry(e,t){let r;for(let e in t.attributeTypes){let r=t.attributeTypes[e];void 0!==r.BYTES_PER_ELEMENT&&(t.attributeTypes[e]=r.name)}let n=JSON.stringify(t);if(et.has(e)){let t=et.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let a=this.workerNextTaskID++,i=e.byteLength,s=this._getWorker(a,i).then(n=>(r=n,new Promise((n,i)=>{r._callbacks[a]={resolve:n,reject:i},r.postMessage({type:"decode",id:a,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return s.catch(()=>!0).then(()=>{r&&a&&this._releaseTask(r,a)}),et.set(e,{key:n,promise:s}),s}_createGeometry(e){let t=new ee.BufferGeometry;e.index&&t.setIndex(new ee.BufferAttribute(e.index.array,1));for(let r=0;r{r.load(e,t,void 0,n)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(t=>{let r=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let n=en.toString(),a=["/* draco decoder */",r,"\n/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([a]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengtht._taskLoad?-1:1});let r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{let t=e.draco,r=new t.Decoder,s=new t.DecoderBuffer;s.Init(new Int8Array(a),a.byteLength);try{let e=function(e,t,r,n){var a,i,s;let o,l,A,u,c,h,d=n.attributeIDs,f=n.attributeTypes,B=t.GetEncodedGeometryType(r);if(B===e.TRIANGULAR_MESH)c=new e.Mesh,h=t.DecodeBufferToMesh(r,c);else if(B===e.POINT_CLOUD)c=new e.PointCloud,h=t.DecodeBufferToPointCloud(r,c);else throw Error("THREE.DRACOLoader: Unexpected geometry type.");if(!h.ok()||0===c.ptr)throw Error("THREE.DRACOLoader: Decoding failed: "+h.error_msg());let p={index:null,attributes:[]};for(let r in d){let a,i,s=self[f[r]];if(n.useUniqueIDs)i=d[r],a=t.GetAttributeByUniqueId(c,i);else{if(-1===(i=t.GetAttributeId(c,e[d[r]])))continue;a=t.GetAttribute(c,i)}p.attributes.push(function(e,t,r,n,a,i){let s=i.num_components(),o=r.num_points()*s,l=o*a.BYTES_PER_ELEMENT,A=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,a),u=e._malloc(l);t.GetAttributeDataArrayForAllPoints(r,i,A,l,u);let c=new a(e.HEAPF32.buffer,u,o).slice();return e._free(u),{name:n,array:c,itemSize:s}}(e,t,c,r,s,a))}return B===e.TRIANGULAR_MESH&&(a=e,i=t,s=c,o=3*s.num_faces(),l=4*o,A=a._malloc(l),i.GetTrianglesUInt32Array(s,l,A),u=new Uint32Array(a.HEAPF32.buffer,A,o).slice(),a._free(A),p.index={array:u,itemSize:1}),e.destroy(c),p}(t,r,s,i),a=e.attributes.map(e=>e.array.buffer);e.index&&a.push(e.index.array.buffer),self.postMessage({type:"decode",id:n.id,geometry:e},a)}catch(e){console.error(e),self.postMessage({type:"error",id:n.id,error:e.message})}finally{t.destroy(s),t.destroy(r)}})}}}var ea=e.i(60602);let ei=function(e){let t=new Map,r=new Map,n=e.clone();return function e(t,r,n){n(t,r);for(let a=0;a{let d={keys:u,deep:s,inject:A,castShadow:o,receiveShadow:l};if(Array.isArray(t=n.useMemo(()=>{if(!1===e&&!Array.isArray(t)){let e=!1;if(t.traverse(t=>{t.isSkinnedMesh&&(e=!0)}),e)return ei(t)}return t},[t,e])))return n.createElement("group",(0,r.default)({},c,{ref:h}),t.map(e=>n.createElement(es,(0,r.default)({key:e.uuid,object:e},d))),i);let{children:f,...B}=function(e,{keys:t=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData","bindMode","bindMatrix","bindMatrixInverse","skeleton"],deep:r,inject:i,castShadow:s,receiveShadow:o}){let l={};for(let r of t)l[r]=e[r];return r&&(l.geometry&&"materialsOnly"!==r&&(l.geometry=l.geometry.clone()),l.material&&"geometriesOnly"!==r&&(l.material=l.material.clone())),i&&(l="function"==typeof i?{...l,children:i(e)}:n.isValidElement(i)?{...l,children:i}:{...l,...i}),e instanceof a.Mesh&&(s&&(l.castShadow=!0),o&&(l.receiveShadow=!0)),l}(t,d),p=t.type[0].toLowerCase()+t.type.slice(1);return n.createElement(p,(0,r.default)({},B,c,{ref:h}),t.children.map(e=>"Bone"===e.type?n.createElement("primitive",(0,r.default)({key:e.uuid,object:e},d)):n.createElement(es,(0,r.default)({key:e.uuid,object:e},d,{isChild:!0}))),i,f)}),eo=null,el="https://www.gstatic.com/draco/versioned/decoders/1.5.5/";function eA(e=!0,r=!0,n){return a=>{n&&n(a),e&&(eo||(eo=new er),eo.setDecoderPath("string"==typeof e?e:el),a.setDRACOLoader(eo)),r&&a.setMeshoptDecoder((()=>{let e;if(t)return t;let r=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),n=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if("object"!=typeof WebAssembly)return{supported:!1};let a="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";WebAssembly.validate(r)&&(a="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");let i=WebAssembly.instantiate(function(e){let t=new Uint8Array(e.length);for(let r=0;r96?n-71:n>64?n-65:n>47?n+4:n>46?63:62}let r=0;for(let a=0;a{(e=t.instance).exports.__wasm_call_ctors()});function s(t,r,n,a,i,s){let o=e.exports.sbrk,l=n+3&-4,A=o(l*a),u=o(i.length),c=new Uint8Array(e.exports.memory.buffer);c.set(i,u);let h=t(A,n,a,u,i.length);if(0===h&&s&&s(A,l,a),r.set(c.subarray(A,A+n*a)),o(A-o(0)),0!==h)throw Error(`Malformed buffer data: ${h}`)}let o={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return t={ready:i,supported:!0,decodeVertexBuffer(t,r,n,a,i){s(e.exports.meshopt_decodeVertexBuffer,t,r,n,a,e.exports[o[i]])},decodeIndexBuffer(t,r,n,a){s(e.exports.meshopt_decodeIndexBuffer,t,r,n,a)},decodeIndexSequence(t,r,n,a){s(e.exports.meshopt_decodeIndexSequence,t,r,n,a)},decodeGltfBuffer(t,r,n,a,i,A){s(e.exports[l[i]],t,r,n,a,e.exports[o[A]])}}})())}}let eu=(e,t,r,n)=>(0,ea.useLoader)(u,e,eA(t,r,n));eu.preload=(e,t,r,n)=>ea.useLoader.preload(u,e,eA(t,r,n)),eu.clear=e=>ea.useLoader.clear(u,e),eu.setDecoderPath=e=>{el=e},e.s(["useGLTF",0,eu],78140);var ec=e.i(8155);let eh=e=>{let t=(0,ec.createStore)(e),r=e=>(function(e,t=e=>e){let r=n.default.useSyncExternalStore(e.subscribe,n.default.useCallback(()=>t(e.getState()),[e,t]),n.default.useCallback(()=>t(e.getInitialState()),[e,t]));return n.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r};e.s(["create",0,e=>e?eh(e):eh],68834)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0b561qo91.1jg.js b/build/.next/static/chunks/0b561qo91.1jg.js new file mode 100644 index 0000000..2efeda2 --- /dev/null +++ b/build/.next/static/chunks/0b561qo91.1jg.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31067,t=>{"use strict";function e(){return(e=Object.assign.bind()).apply(null,arguments)}t.s(["default",()=>e])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0b~g01t48jn6q.js b/build/.next/static/chunks/0b~g01t48jn6q.js new file mode 100644 index 0000000..3168a70 --- /dev/null +++ b/build/.next/static/chunks/0b~g01t48jn6q.js @@ -0,0 +1,114 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68911,e=>{"use strict";var t=e.i(90072);e.s(["toCreasedNormals",0,function(e,r=Math.PI/3){let n=Math.cos(r),a=(1+1e-10)*100,i=[new t.Vector3,new t.Vector3,new t.Vector3],s=new t.Vector3,o=new t.Vector3,l=new t.Vector3,A=new t.Vector3;function u(e){let t=~~(e.x*a),r=~~(e.y*a),n=~~(e.z*a);return`${t},${r},${n}`}let c=e.index?e.toNonIndexed():e,h=c.attributes.position,d={};for(let e=0,r=h.count/3;en&&A.add(t)}A.normalize(),B.setXYZ(t+e,A.x,A.y,A.z)}}return c.setAttribute("normal",B),c},"toTrianglesDrawMode",0,function(e,r){if(r===t.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(r!==t.TriangleFanDrawMode&&r!==t.TriangleStripDrawMode)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",r),e;{let n=e.getIndex();if(null===n){let t=[],r=e.getAttribute("position");if(void 0===r)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e{"use strict";let t=parseInt(e.i(90072).REVISION.replace(/\D+/g,""));e.s(["version",0,t])},78140,68834,e=>{"use strict";let t;var r=e.i(31067),n=e.i(71645),a=e.i(90072),i=e.i(68911),s=e.i(31497);function o(e){if("u">typeof TextDecoder)return new TextDecoder().decode(e);let t="";for(let r=0,n=e.length;r=2.0 are supported."));return}let l=new q(a,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===s[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}l.setExtensions(i),l.setPlugins(s),l.parse(r,n)}parseAsync(e,t){let r=this;return new Promise(function(n,a){r.parse(e,t,n,a)})}}function c(){let e={};return{get:function(t){return e[t]},add:function(t,r){e[t]=r},remove:function(t){delete e[t]},removeAll:function(){e={}}}}let h={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class d{constructor(e){this.parser=e,this.name=h.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let r=0,n=t.length;r=0))return null;else throw Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return t.loadTextureImage(e,a.source,i)}}class R{constructor(e){this.parser=e,this.name=h.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,r=this.parser,n=r.json,a=n.textures[e];if(!a.extensions||!a.extensions[t])return null;let i=a.extensions[t],s=n.images[i.source],o=r.textureLoader;if(s.uri){let e=r.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(e,i.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class b{constructor(e){this.parser=e,this.name=h.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,r=this.parser,n=r.json,a=n.textures[e];if(!a.extensions||!a.extensions[t])return null;let i=a.extensions[t],s=n.images[i.source],o=r.textureLoader;if(s.uri){let e=r.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(e,i.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class D{constructor(e){this.name=h.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,r=t.bufferViews[e];if(!r.extensions||!r.extensions[this.name])return null;{let e=r.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),a=this.parser.options.meshoptDecoder;if(!a||!a.supported)if(!(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return n.then(function(t){let r=e.byteOffset||0,n=e.byteLength||0,i=e.count,s=e.byteStride,o=new Uint8Array(t,r,n);return a.decodeGltfBufferAsync?a.decodeGltfBufferAsync(i,s,o,e.mode,e.filter).then(function(e){return e.buffer}):a.ready.then(function(){let t=new ArrayBuffer(i*s);return a.decodeGltfBuffer(new Uint8Array(t),i,s,o,e.mode,e.filter),t})})}}}class T{constructor(e){this.name=h.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,r=t.nodes[e];if(!r.extensions||!r.extensions[this.name]||void 0===r.mesh)return null;for(let e of t.meshes[r.mesh].primitives)if(e.mode!==P.TRIANGLES&&e.mode!==P.TRIANGLE_STRIP&&e.mode!==P.TRIANGLE_FAN&&void 0!==e.mode)return null;let n=r.extensions[this.name].attributes,i=[],s={};for(let e in n)i.push(this.parser.getDependency("accessor",n[e]).then(t=>(s[e]=t,s[e])));return i.length<1?null:(i.push(this.parser.createNodeMesh(e)),Promise.all(i).then(e=>{let t=e.pop(),r=t.isGroup?t.children:[t],n=e[0].count,i=[];for(let e of r){let t=new a.Matrix4,r=new a.Vector3,o=new a.Quaternion,l=new a.Vector3(1,1,1),A=new a.InstancedMesh(e.geometry,e.material,n);for(let e=0;e=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},X={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},j={CUBICSPLINE:void 0,LINEAR:a.InterpolateLinear,STEP:a.InterpolateDiscrete};function Y(e,t,r){for(let n in r.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=r.extensions[n])}function W(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function Z(e){let t="",r=Object.keys(e).sort();for(let n=0,a=r.length;ntypeof navigator&&void 0!==navigator.userAgent&&(r=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),i=(n=navigator.userAgent.indexOf("Firefox")>-1)?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"u"{let r=this.associations.get(e);for(let[n,i]of(null!=r&&this.associations.set(t,r),e.children.entries()))a(i,t.children[n])};return a(r,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let r=0;r=2&&s.setY(t,h[e*l+1]),l>=3&&s.setZ(t,h[e*l+2]),l>=4&&s.setW(t,h[e*l+3]),l>=5)throw Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return s})}loadTexture(e){let t=this.json,r=this.options,n=t.textures[e].source,a=t.images[n],i=this.textureLoader;if(a.uri){let e=r.manager.getHandler(a.uri);null!==e&&(i=e)}return this.loadTextureImage(e,n,i)}loadTextureImage(e,t,r){let n=this,i=this.json,s=i.textures[e],o=i.images[t],l=(o.uri||o.bufferView)+":"+s.sampler;if(this.textureCache[l])return this.textureCache[l];let A=this.loadImageSource(t,r).then(function(t){t.flipY=!1,t.name=s.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);let r=(i.samplers||{})[s.sampler]||{};return t.magFilter=K[r.magFilter]||a.LinearFilter,t.minFilter=K[r.minFilter]||a.LinearMipmapLinearFilter,t.wrapS=k[r.wrapS]||a.RepeatWrapping,t.wrapT=k[r.wrapT]||a.RepeatWrapping,n.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[l]=A,A}loadImageSource(e,t){let r=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());let i=r.images[e],s=self.URL||self.webkitURL,o=i.uri||"",l=!1;if(void 0!==i.bufferView)o=this.getDependency("bufferView",i.bufferView).then(function(e){l=!0;let t=new Blob([e],{type:i.mimeType});return o=s.createObjectURL(t)});else if(void 0===i.uri)throw Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let A=Promise.resolve(o).then(function(e){return new Promise(function(r,i){let s=r;!0===t.isImageBitmapLoader&&(s=function(e){let t=new a.Texture(e);t.needsUpdate=!0,r(t)}),t.load(a.LoaderUtils.resolveURL(e,n.path),s,void 0,i)})}).then(function(e){var t;return!0===l&&s.revokeObjectURL(o),W(e,i),e.userData.mimeType=i.mimeType||((t=i.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e});return this.sourceCache[e]=A,A}assignTexture(e,t,r,n){let a=this;return this.getDependency("texture",r.index).then(function(i){if(!i)return null;if(void 0!==r.texCoord&&r.texCoord>0&&((i=i.clone()).channel=r.texCoord),a.extensions[h.KHR_TEXTURE_TRANSFORM]){let e=void 0!==r.extensions?r.extensions[h.KHR_TEXTURE_TRANSFORM]:void 0;if(e){let t=a.associations.get(i);i=a.extensions[h.KHR_TEXTURE_TRANSFORM].extendTexture(i,e),a.associations.set(i,t)}}return void 0!==n&&("number"==typeof n&&(n=3001===n?l:A),"colorSpace"in i?i.colorSpace=n:i.encoding=n===l?3001:3e3),e[t]=i,i})}assignFinalMaterial(e){let t=e.geometry,r=e.material,n=void 0===t.attributes.tangent,i=void 0!==t.attributes.color,s=void 0===t.attributes.normal;if(e.isPoints){let e="PointsMaterial:"+r.uuid,t=this.cache.get(e);t||(t=new a.PointsMaterial,a.Material.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,t.sizeAttenuation=!1,this.cache.add(e,t)),r=t}else if(e.isLine){let e="LineBasicMaterial:"+r.uuid,t=this.cache.get(e);t||(t=new a.LineBasicMaterial,a.Material.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,this.cache.add(e,t)),r=t}if(n||i||s){let e="ClonedMaterial:"+r.uuid+":";n&&(e+="derivative-tangents:"),i&&(e+="vertex-colors:"),s&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=r.clone(),i&&(t.vertexColors=!0),s&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(r))),r=t}e.material=r}getMaterialType(){return a.MeshStandardMaterial}loadMaterial(e){let t,r=this,n=this.json,i=this.extensions,s=n.materials[e],o={},u=s.extensions||{},c=[];if(u[h.KHR_MATERIALS_UNLIT]){let e=i[h.KHR_MATERIALS_UNLIT];t=e.getMaterialType(),c.push(e.extendParams(o,s,r))}else{let n=s.pbrMetallicRoughness||{};if(o.color=new a.Color(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],A),o.opacity=e[3]}void 0!==n.baseColorTexture&&c.push(r.assignTexture(o,"map",n.baseColorTexture,l)),o.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,o.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(c.push(r.assignTexture(o,"metalnessMap",n.metallicRoughnessTexture)),c.push(r.assignTexture(o,"roughnessMap",n.metallicRoughnessTexture))),t=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}!0===s.doubleSided&&(o.side=a.DoubleSide);let d=s.alphaMode||"OPAQUE";if("BLEND"===d?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,"MASK"===d&&(o.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&t!==a.MeshBasicMaterial&&(c.push(r.assignTexture(o,"normalMap",s.normalTexture)),o.normalScale=new a.Vector2(1,1),void 0!==s.normalTexture.scale)){let e=s.normalTexture.scale;o.normalScale.set(e,e)}if(void 0!==s.occlusionTexture&&t!==a.MeshBasicMaterial&&(c.push(r.assignTexture(o,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(o.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&t!==a.MeshBasicMaterial){let e=s.emissiveFactor;o.emissive=new a.Color().setRGB(e[0],e[1],e[2],A)}return void 0!==s.emissiveTexture&&t!==a.MeshBasicMaterial&&c.push(r.assignTexture(o,"emissiveMap",s.emissiveTexture,l)),Promise.all(c).then(function(){let n=new t(o);return s.name&&(n.name=s.name),W(n,s),r.associations.set(n,{materials:e}),s.extensions&&Y(i,n,s),n})}createUniqueName(e){let t=a.PropertyBinding.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,r=this.extensions,n=this.primitiveCache,i=[];for(let s=0,o=e.length;s0&&function(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let r=0,n=t.weights.length;r1?new a.Group:1===t.length?t[0]:new a.Object3D)!==t[0])for(let e=0,r=t.length;e{let t=new Map;for(let[e,r]of n.associations)(e instanceof a.Material||e instanceof a.Texture)&&t.set(e,r);return e.traverse(e=>{let r=n.associations.get(e);null!=r&&t.set(e,r)}),t})(i),i})}_createAnimationTracks(e,t,r,n,i){let s,o=[],l=e.name?e.name:e.uuid,A=[];switch(X[i.path]===X.weights?e.traverse(function(e){e.morphTargetInfluences&&A.push(e.name?e.name:e.uuid)}):A.push(l),X[i.path]){case X.weights:s=a.NumberKeyframeTrack;break;case X.rotation:s=a.QuaternionKeyframeTrack;break;case X.position:case X.scale:s=a.VectorKeyframeTrack;break;default:s=1===r.itemSize?a.NumberKeyframeTrack:a.VectorKeyframeTrack}let u=void 0!==n.interpolation?j[n.interpolation]:a.InterpolateLinear,c=this._getArrayFromAccessor(r);for(let e=0,r=A.length;e{let r={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,r).then(t).catch(n)},r,n)}decodeDracoFile(e,t,r,n){let a={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,a).then(t)}decodeGeometry(e,t){let r;for(let e in t.attributeTypes){let r=t.attributeTypes[e];void 0!==r.BYTES_PER_ELEMENT&&(t.attributeTypes[e]=r.name)}let n=JSON.stringify(t);if(et.has(e)){let t=et.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let a=this.workerNextTaskID++,i=e.byteLength,s=this._getWorker(a,i).then(n=>(r=n,new Promise((n,i)=>{r._callbacks[a]={resolve:n,reject:i},r.postMessage({type:"decode",id:a,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return s.catch(()=>!0).then(()=>{r&&a&&this._releaseTask(r,a)}),et.set(e,{key:n,promise:s}),s}_createGeometry(e){let t=new ee.BufferGeometry;e.index&&t.setIndex(new ee.BufferAttribute(e.index.array,1));for(let r=0;r{r.load(e,t,void 0,n)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(t=>{let r=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let n=en.toString(),a=["/* draco decoder */",r,"\n/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([a]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengtht._taskLoad?-1:1});let r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{let t=e.draco,r=new t.Decoder,s=new t.DecoderBuffer;s.Init(new Int8Array(a),a.byteLength);try{let e=function(e,t,r,n){var a,i,s;let o,l,A,u,c,h,d=n.attributeIDs,f=n.attributeTypes,B=t.GetEncodedGeometryType(r);if(B===e.TRIANGULAR_MESH)c=new e.Mesh,h=t.DecodeBufferToMesh(r,c);else if(B===e.POINT_CLOUD)c=new e.PointCloud,h=t.DecodeBufferToPointCloud(r,c);else throw Error("THREE.DRACOLoader: Unexpected geometry type.");if(!h.ok()||0===c.ptr)throw Error("THREE.DRACOLoader: Decoding failed: "+h.error_msg());let p={index:null,attributes:[]};for(let r in d){let a,i,s=self[f[r]];if(n.useUniqueIDs)i=d[r],a=t.GetAttributeByUniqueId(c,i);else{if(-1===(i=t.GetAttributeId(c,e[d[r]])))continue;a=t.GetAttribute(c,i)}p.attributes.push(function(e,t,r,n,a,i){let s=i.num_components(),o=r.num_points()*s,l=o*a.BYTES_PER_ELEMENT,A=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,a),u=e._malloc(l);t.GetAttributeDataArrayForAllPoints(r,i,A,l,u);let c=new a(e.HEAPF32.buffer,u,o).slice();return e._free(u),{name:n,array:c,itemSize:s}}(e,t,c,r,s,a))}return B===e.TRIANGULAR_MESH&&(a=e,i=t,s=c,o=3*s.num_faces(),l=4*o,A=a._malloc(l),i.GetTrianglesUInt32Array(s,l,A),u=new Uint32Array(a.HEAPF32.buffer,A,o).slice(),a._free(A),p.index={array:u,itemSize:1}),e.destroy(c),p}(t,r,s,i),a=e.attributes.map(e=>e.array.buffer);e.index&&a.push(e.index.array.buffer),self.postMessage({type:"decode",id:n.id,geometry:e},a)}catch(e){console.error(e),self.postMessage({type:"error",id:n.id,error:e.message})}finally{t.destroy(s),t.destroy(r)}})}}}var ea=e.i(60602);let ei=function(e){let t=new Map,r=new Map,n=e.clone();return function e(t,r,n){n(t,r);for(let a=0;a{let d={keys:u,deep:s,inject:A,castShadow:o,receiveShadow:l};if(Array.isArray(t=n.useMemo(()=>{if(!1===e&&!Array.isArray(t)){let e=!1;if(t.traverse(t=>{t.isSkinnedMesh&&(e=!0)}),e)return ei(t)}return t},[t,e])))return n.createElement("group",(0,r.default)({},c,{ref:h}),t.map(e=>n.createElement(es,(0,r.default)({key:e.uuid,object:e},d))),i);let{children:f,...B}=function(e,{keys:t=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData","bindMode","bindMatrix","bindMatrixInverse","skeleton"],deep:r,inject:i,castShadow:s,receiveShadow:o}){let l={};for(let r of t)l[r]=e[r];return r&&(l.geometry&&"materialsOnly"!==r&&(l.geometry=l.geometry.clone()),l.material&&"geometriesOnly"!==r&&(l.material=l.material.clone())),i&&(l="function"==typeof i?{...l,children:i(e)}:n.isValidElement(i)?{...l,children:i}:{...l,...i}),e instanceof a.Mesh&&(s&&(l.castShadow=!0),o&&(l.receiveShadow=!0)),l}(t,d),p=t.type[0].toLowerCase()+t.type.slice(1);return n.createElement(p,(0,r.default)({},B,c,{ref:h}),t.children.map(e=>"Bone"===e.type?n.createElement("primitive",(0,r.default)({key:e.uuid,object:e},d)):n.createElement(es,(0,r.default)({key:e.uuid,object:e},d,{isChild:!0}))),i,f)}),eo=null,el="https://www.gstatic.com/draco/versioned/decoders/1.5.5/";function eA(e=!0,r=!0,n){return a=>{n&&n(a),e&&(eo||(eo=new er),eo.setDecoderPath("string"==typeof e?e:el),a.setDRACOLoader(eo)),r&&a.setMeshoptDecoder((()=>{let e;if(t)return t;let r=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),n=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if("object"!=typeof WebAssembly)return{supported:!1};let a="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB";WebAssembly.validate(r)&&(a="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");let i=WebAssembly.instantiate(function(e){let t=new Uint8Array(e.length);for(let r=0;r96?n-71:n>64?n-65:n>47?n+4:n>46?63:62}let r=0;for(let a=0;a{(e=t.instance).exports.__wasm_call_ctors()});function s(t,r,n,a,i,s){let o=e.exports.sbrk,l=n+3&-4,A=o(l*a),u=o(i.length),c=new Uint8Array(e.exports.memory.buffer);c.set(i,u);let h=t(A,n,a,u,i.length);if(0===h&&s&&s(A,l,a),r.set(c.subarray(A,A+n*a)),o(A-o(0)),0!==h)throw Error(`Malformed buffer data: ${h}`)}let o={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return t={ready:i,supported:!0,decodeVertexBuffer(t,r,n,a,i){s(e.exports.meshopt_decodeVertexBuffer,t,r,n,a,e.exports[o[i]])},decodeIndexBuffer(t,r,n,a){s(e.exports.meshopt_decodeIndexBuffer,t,r,n,a)},decodeIndexSequence(t,r,n,a){s(e.exports.meshopt_decodeIndexSequence,t,r,n,a)},decodeGltfBuffer(t,r,n,a,i,A){s(e.exports[l[i]],t,r,n,a,e.exports[o[A]])}}})())}}let eu=(e,t,r,n)=>(0,ea.useLoader)(u,e,eA(t,r,n));eu.preload=(e,t,r,n)=>ea.useLoader.preload(u,e,eA(t,r,n)),eu.clear=e=>ea.useLoader.clear(u,e),eu.setDecoderPath=e=>{el=e},e.s(["useGLTF",0,eu],78140);var ec=e.i(8155);let eh=e=>{let t=(0,ec.createStore)(e),r=e=>(function(e,t=e=>e){let r=n.default.useSyncExternalStore(e.subscribe,n.default.useCallback(()=>t(e.getState()),[e,t]),n.default.useCallback(()=>t(e.getInitialState()),[e,t]));return n.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r};e.s(["create",0,e=>e?eh(e):eh],68834)},43257,e=>{"use strict";let t;var r=e.i(31067),n=e.i(71645),a=e.i(28600),i=e.i(25234),s=e.i(44208),o=e.i(24205),l=e.i(67335),A=e.i(90072),u=A,c=e.i(31497);class h extends u.Mesh{constructor(e,t){var r,n;const a=(e=>e&&e.isCubeTexture)(e),i=Math.floor(Math.log2((null!=(n=a?null==(r=e.image[0])?void 0:r.width:e.image.width)?n:1024)/4)),s=Math.pow(2,i),o=3*Math.max(s,112),l=` + varying vec3 vWorldPosition; + void main() + { + vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) ); + vWorldPosition = worldPosition.xyz; + + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + } + `,A=[a?"#define ENVMAP_TYPE_CUBE":"",`#define CUBEUV_TEXEL_WIDTH ${1/o}`,`#define CUBEUV_TEXEL_HEIGHT ${1/(4*s)}`,`#define CUBEUV_MAX_MIP ${i}.0`].join("\n")+` + #define ENVMAP_TYPE_CUBE_UV + varying vec3 vWorldPosition; + uniform float radius; + uniform float height; + uniform float angle; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube map; + #else + uniform sampler2D map; + #endif + // From: https://www.shadertoy.com/view/4tsBD7 + float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) + { + float d = dot ( rd, n ); + + if( d > 0.0 ) { return 1e6; } + + vec3 o = ro - c; + float t = - dot( n, o ) / d; + vec3 q = o + rd * t; + + return ( dot( q, q ) < r * r ) ? t : 1e6; + } + // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm + float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) + { + vec3 oc = ro - ce; + float b = dot( oc, rd ); + float c = dot( oc, oc ) - ra * ra; + float h = b * b - c; + + if( h < 0.0 ) { return -1.0; } + + h = sqrt( h ); + + return - b + h; + } + vec3 project() + { + vec3 p = normalize( vWorldPosition ); + vec3 camPos = cameraPosition; + camPos.y -= height; + float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius ); + if( intersection > 0.0 ) { + + vec3 h = vec3( 0.0, - height, 0.0 ); + float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius ); + p = ( camPos + min( intersection, intersection2 ) * p ) / radius; + } else { + p = vec3( 0.0, 1.0, 0.0 ); + } + return p; + } + #include + #include + void main() + { + vec3 projectedWorldPosition = project(); + + #ifdef ENVMAP_TYPE_CUBE + vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb; + #else + vec3 direction = normalize( projectedWorldPosition ); + vec2 uv = equirectUv( direction ); + vec3 outcolor = texture2D( map, uv ).rgb; + #endif + gl_FragColor = vec4( outcolor, 1.0 ); + #include + #include <${c.version>=154?"colorspace_fragment":"encodings_fragment"}> + } + `,h={map:{value:e},height:{value:(null==t?void 0:t.height)||15},radius:{value:(null==t?void 0:t.radius)||100}};super(new u.IcosahedronGeometry(1,16),new u.ShaderMaterial({uniforms:h,fragmentShader:A,vertexShader:l,side:u.DoubleSide}))}set radius(e){this.material.uniforms.radius.value=e}get radius(){return this.material.uniforms.radius.value}set height(e){this.material.uniforms.height.value=e}get height(){return this.material.uniforms.height.value}}var d=e.i(60602),f=A;class B extends f.DataTextureLoader{constructor(e){super(e),this.type=f.HalfFloatType}parse(e){let t,r,n,a=function(e,t){switch(e){case 1:throw Error("THREE.RGBELoader: Read Error: "+(t||""));case 2:throw Error("THREE.RGBELoader: Write Error: "+(t||""));case 3:throw Error("THREE.RGBELoader: Bad File Format: "+(t||""));default:throw Error("THREE.RGBELoader: Memory Error: "+(t||""))}},i=function(e,t,r){t=t||1024;let n=e.pos,a=-1,i=0,s="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));for(;0>(a=o.indexOf("\n"))&&i=e.byteLength)&&(t=i(e))||a(1,"no header found"),(r=t.match(/^#\?(\S+)/))||a(3,"bad initial token"),A.valid|=1,A.programtype=r[1],A.string+=t+"\n";!1!==(t=i(e));){if(A.string+=t+"\n","#"===t.charAt(0)){A.comments+=t+"\n";continue}if((r=t.match(n))&&(A.gamma=parseFloat(r[1])),(r=t.match(s))&&(A.exposure=parseFloat(r[1])),(r=t.match(o))&&(A.valid|=2,A.format=r[1]),(r=t.match(l))&&(A.valid|=4,A.height=parseInt(r[1],10),A.width=parseInt(r[2],10)),2&A.valid&&4&A.valid)break}return 2&A.valid||a(3,"missing format specifier"),4&A.valid||a(3,"missing image size specifier"),A}(s),l=o.width,A=o.height,u=function(e,t,r){if(t<8||t>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);t!==(e[2]<<8|e[3])&&a(3,"wrong scanline width");let n=new Uint8Array(4*t*r);n.length||a(4,"unable to allocate buffer space");let i=0,s=0,o=4*t,l=new Uint8Array(4),A=new Uint8Array(o),u=r;for(;u>0&&se.byteLength&&a(1),l[0]=e[s++],l[1]=e[s++],l[2]=e[s++],l[3]=e[s++],(2!=l[0]||2!=l[1]||(l[2]<<8|l[3])!=t)&&a(3,"bad rgbe scanline format");let r=0,c;for(;r128;if(t&&(c-=128),(0===c||r+c>o)&&a(3,"bad scanline data"),t){let t=e[s++];for(let e=0;e>>1|(21845&x)<<1;J=(61680&(J=(52428&J)>>>2|(13107&J)<<2))>>>4|(3855&J)<<4,H[x]=((65280&J)>>>8|(255&J)<<8)>>>1}for(var L=function(e,t,r){for(var n,a=e.length,i=0,s=new M(t);i>>l]=A}else for(i=0,n=new M(a);i>>15-e[i]);return n},S=new g(288),x=0;x<144;++x)S[x]=8;for(var x=144;x<256;++x)S[x]=9;for(var x=256;x<280;++x)S[x]=7;for(var x=280;x<288;++x)S[x]=8;for(var U=new g(32),x=0;x<32;++x)U[x]=5;var O=L(S,9,0),P=L(S,9,1),_=L(U,5,0),K=L(U,5,1),k=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},N=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},Q=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},X=function(e){return(e/8|0)+(7&e&&1)},j=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(e instanceof M?M:e instanceof v?v:g)(r-t);return n.set(e.subarray(t,r)),n},Y=function(e,t,r){var n=e.length;if(!n||r&&!r.l&&n<5)return t||new g(0);var a=!t||r,i=!r||r.i;r||(r={}),t||(t=new g(3*n));var s=function(e){var r=t.length;if(e>r){var n=new g(Math.max(2*r,e));n.set(t),t=n}},o=r.f||0,l=r.p||0,A=r.b||0,u=r.l,c=r.d,h=r.m,d=r.n,f=8*n;do{if(!u){r.f=o=N(e,l,1);var B=N(e,l+1,3);if(l+=3,B)if(1==B)u=P,c=K,h=9,d=5;else if(2==B){var p=N(e,l,31)+257,C=N(e,l+10,15)+4,m=p+N(e,l+5,31)+1;l+=14;for(var M=new g(m),v=new g(19),I=0;I>>4;if(H<16)M[I++]=H;else{var x=0,J=0;for(16==H?(J=3+N(e,l,3),l+=2,x=M[I-1]):17==H?(J=3+N(e,l,7),l+=3):18==H&&(J=11+N(e,l,127),l+=7);J--;)M[I++]=x}}var S=M.subarray(0,p),U=M.subarray(p);h=k(S),d=k(U),u=L(S,h,1),c=L(U,d,1)}else throw"invalid block type";else{var H=X(l)+4,O=e[H-4]|e[H-3]<<8,_=H+O;if(_>n){if(i)throw"unexpected EOF";break}a&&s(A+O),t.set(e.subarray(H,_),A),r.b=A+=O,r.p=l=8*_;continue}if(l>f){if(i)throw"unexpected EOF";break}}a&&s(A+131072);for(var Y=(1<>>4;if((l+=15&x)>f){if(i)throw"unexpected EOF";break}if(!x)throw"invalid length/literal";if(V<256)t[A++]=V;else if(256==V){Z=l,u=null;break}else{var z=V-254;if(V>264){var I=V-257,q=F[I];z=N(e,l,(1<>>4;if(!$)throw"invalid distance";l+=15&$;var U=T[ee];if(ee>3){var q=E[ee];U+=Q(e,l)&(1<f){if(i)throw"unexpected EOF";break}a&&s(A+131072);for(var et=A+z;A>>8},Z=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>>8,e[n+2]|=r>>>16},V=function(e,t){for(var r=[],n=0;nh&&(h=i[n].s);var d=new M(h+1),f=z(r[u-1],d,0);if(f>t){var n=0,B=0,p=f-t,C=1<t)B+=C-(1<>>=p;B>0;){var v=i[n].s;d[v]=0&&B;--n){var F=i[n].s;d[F]==t&&(--d[F],++B)}f=t}return[new g(d),f]},z=function(e,t,r){return -1==e.s?Math.max(z(e.l,t,r+1),z(e.r,t,r+1)):t[e.s]=r},q=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new M(++t),n=0,a=e[0],i=1,s=function(e){r[n++]=e},o=1;o<=t;++o)if(e[o]==a&&o!=t)++i;else{if(!a&&i>2){for(;i>138;i-=138)s(32754);i>2&&(s(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(s(a),--i;i>6;i-=6)s(8304);i>2&&(s(i-3<<5|8208),i=0)}for(;i--;)s(a);i=1,a=e[o]}return[r.subarray(0,n),t]},$=function(e,t){for(var r=0,n=0;n>>8,e[a+2]=255^e[a],e[a+3]=255^e[a+1];for(var i=0;i4&&!J[y[K-1]];--K);var k=A+5<<3,N=$(a,S)+$(i,U)+s,Q=$(a,p)+$(i,g)+s+14+3*K+$(w,J)+(2*w[16]+3*w[17]+7*w[18]);if(k<=N&&k<=Q)return ee(t,u,e.subarray(l,l+A));if(W(t,u,1+(Q15&&(W(t,u,z[H]>>>5&127),u+=z[H]>>>12)}}else c=O,h=S,d=_,f=U;for(var H=0;H255){var et=n[H]>>>18&31;Z(t,u,c[et+257]),u+=h[et+257],et>7&&(W(t,u,n[H]>>>23&31),u+=F[et]);var er=31&n[H];Z(t,u,d[er]),u+=f[er],er>3&&(Z(t,u,n[H]>>>5&8191),u+=E[er])}else Z(t,u,c[n[H]]),u+=h[n[H]];return Z(t,u,c[256]),u+h[256]},er=new v([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),en=new g(0),ea=function(e,t,r,n,a,i){var s=e.length,o=new g(n+s+5*(1+Math.ceil(s/7e3))+a),l=o.subarray(n,o.length-a),A=0;if(!t||s<8)for(var u=0;u<=s;u+=65535){var c=u+65535;c>>13,f=8191&h,B=(1<7e3||x>24576)&&P>423){A=et(e,l,0,G,R,D,H,x,L,u-L,A),x=T=H=0,L=u;for(var _=0;_<286;++_)R[_]=0;for(var _=0;_<30;++_)D[_]=0}var K=2,k=0,N=f,Q=U-O&32767;if(P>2&&S==I(u-Q))for(var Y=Math.min(d,P)-1,W=Math.min(32767,u),Z=Math.min(258,P);Q<=W&&--N&&U!=O;){if(e[u+K]==e[u+K-Q]){for(var V=0;VK){if(K=V,k=Q,V>Y)break;for(var z=Math.min(Q,V-2),q=0,_=0;_q&&(q=ei,O=$)}}}O=p[U=O],Q+=U-O+32768&32767}if(k){G[x++]=0x10000000|b[K]<<18|w[k];var es=31&b[K],eo=31&w[k];H+=F[es]+E[eo],++R[257+es],++D[eo],J=u+K,++T}else G[x++]=e[u],++R[e[u]]}}A=et(e,l,i,G,R,D,H,x,L,u-L,A),!i&&7&A&&(A=ee(l,A+1,en))}return j(o,0,n+X(A)+a)},ei=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var r=t,n=9;--n;)r=(1&r&&-0x12477ce0)^r>>>1;e[t]=r}return e}(),es=function(){var e=-1;return{p:function(t){for(var r=e,n=0;n>>8;e=r},d:function(){return~e}}},eo=function(){var e=1,t=0;return{p:function(r){for(var n=e,a=t,i=r.length,s=0;s!=i;){for(var o=Math.min(s+2655,i);s>16),a=(65535&a)+15*(a>>16)}e=n,t=a},d:function(){return e%=65521,t%=65521,(255&e)<<24|e>>>8<<16|(255&t)<<8|t>>>8}}},el=function(e,t,r,n,a){return ea(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,r,n,!a)},eA=function(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r},eu=function(e,t,r){for(var n=e(),a=e.toString(),i=a.slice(a.indexOf("[")+1,a.lastIndexOf("]")).replace(/ /g,"").split(","),s=0;s>>0},ey=function(e,t){return eE(e,t)+0x100000000*eE(e,t+4)},eI=function(e,t,r){for(;r;++t)e[t]=r,r>>>=8},eG=function(e,t){var r=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:2*(9==t.level),e[9]=3,0!=t.mtime&&eI(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),r){e[3]=8;for(var n=0;n<=r.length;++n)e[n+10]=r.charCodeAt(n)}},eR=function(e){if(31!=e[0]||139!=e[1]||8!=e[2])throw"invalid gzip data";var t=e[3],r=10;4&t&&(r+=e[10]|(e[11]<<8)+2);for(var n=(t>>3&1)+(t>>4&1);n>0;n-=!e[r++]);return r+(2&t)},eb=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},eD=function(e){return 10+(e.filename&&e.filename.length+1||0)},eT=function(e,t){var r=t.level,n=0==r?0:r<6?1:9==r?3:2;e[0]=120,e[1]=n<<6|(n?32-2*n:1)},ew=function(e){if((15&e[0])!=8||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function eH(e,t){return t||"function"!=typeof e||(t=e,e={}),this.ondata=t,e}var ex=function(){function e(e,t){t||"function"!=typeof e||(t=e,e={}),this.ondata=t,this.o=e||{}}return e.prototype.p=function(e,t){this.ondata(el(e,this.o,0,0,!t),t)},e.prototype.push=function(e,t){if(this.d)throw"stream finished";if(!this.ondata)throw"no stream handler";this.d=t,this.p(e,t||!1)},e}(),eJ=function(e,t){ev([eB,function(){return[eM,ex]}],this,eH.call(this,e,t),function(e){onmessage=eM(new ex(e.data))},6)};function eL(e,t){return el(e,t||{},0,0)}var eS=function(){function e(e){this.s={},this.p=new g(0),this.ondata=e}return e.prototype.e=function(e){if(this.d)throw"stream finished";if(!this.ondata)throw"no stream handler";var t=this.p.length,r=new g(t+e.length);r.set(this.p),r.set(e,t),this.p=r},e.prototype.c=function(e){this.d=this.s.i=e||!1;var t=this.s.b,r=Y(this.p,this.o,this.s);this.ondata(j(r,t,this.s.b),this.d),this.o=j(r,this.s.b-32768),this.s.b=this.o.length,this.p=j(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),eU=function(e){this.ondata=e,ev([ef,function(){return[eM,eS]}],this,0,function(){onmessage=eM(new eS)},7)};function eO(e,t){return Y(e,t)}(function(){function e(e,t){this.c=es(),this.l=0,this.v=1,ex.call(this,e,t)}e.prototype.push=function(e,t){ex.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e),this.l+=e.length;var r=el(e,this.o,this.v&&eD(this.o),t&&8,!t);this.v&&(eG(r,this.o),this.v=0),t&&(eI(r,r.length-8,this.c.d()),eI(r,r.length-4,this.l)),this.ondata(r,t)}})();var eP=function(){function e(e){this.v=1,eS.call(this,e)}return e.prototype.push=function(e,t){if(eS.prototype.e.call(this,e),this.v){var r=this.p.length>3?eR(this.p):4;if(r>=this.p.length&&!t)return;this.p=this.p.subarray(r),this.v=0}if(t){if(this.p.length<8)throw"invalid gzip stream";this.p=this.p.subarray(0,-8)}eS.prototype.c.call(this,t)},e}(),e_=function(e){this.ondata=e,ev([ef,ep,function(){return[eM,eS,eP]}],this,0,function(){onmessage=eM(new eP)},9)},eK=(function(){function e(e,t){this.c=eo(),this.v=1,ex.call(this,e,t)}e.prototype.push=function(e,t){ex.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e);var r=el(e,this.o,this.v&&2,t&&4,!t);this.v&&(eT(r,this.o),this.v=0),t&&eI(r,r.length-4,this.c.d()),this.ondata(r,t)}}(),function(){function e(e){this.v=1,eS.call(this,e)}return e.prototype.push=function(e,t){if(eS.prototype.e.call(this,e),this.v){if(this.p.length<2&&!t)return;this.p=this.p.subarray(2),this.v=0}if(t){if(this.p.length<4)throw"invalid zlib stream";this.p=this.p.subarray(0,-4)}eS.prototype.c.call(this,t)},e}()),ek=function(e){this.ondata=e,ev([ef,eC,function(){return[eM,eS,eK]}],this,0,function(){onmessage=eM(new eK)},11)};function eN(e,t){return Y((ew(e),e.subarray(2,-4)),t)}var eQ=function(){function e(e){this.G=eP,this.I=eS,this.Z=eK,this.ondata=e}return e.prototype.push=function(e,t){if(!this.ondata)throw"no stream handler";if(this.s)this.s.push(e,t);else{if(this.p&&this.p.length){var r=new g(this.p.length+e.length);r.set(this.p),r.set(e,this.p.length)}else this.p=e;if(this.p.length>2){var n=this,a=function(){n.ondata.apply(n,arguments)};this.s=31==this.p[0]&&139==this.p[1]&&8==this.p[2]?new this.G(a):(15&this.p[0])!=8||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(a):new this.Z(a),this.s.push(this.p,t),this.p=null}}},e}();(function(e){this.G=e_,this.I=eU,this.Z=ek,this.ondata=e}).prototype.push=function(e,t){eQ.prototype.push.call(this,e,t)};var eX="u">typeof TextEncoder&&new TextEncoder,ej="u">typeof TextDecoder&&new TextDecoder,eY=0;try{ej.decode(en,{stream:!0}),eY=1}catch(e){}var eW=function(e){for(var t="",r=0;;){var n=e[r++],a=(n>127)+(n>223)+(n>239);if(r+a>e.length)return[t,j(e,r-1)];a?3==a?t+=String.fromCharCode(55296|(n=((15&n)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536)>>10,56320|1023&n):1&a?t+=String.fromCharCode((31&n)<<6|63&e[r++]):t+=String.fromCharCode((15&n)<<12|(63&e[r++])<<6|63&e[r++]):t+=String.fromCharCode(n)}};function eZ(e,t){if(t){for(var r=new g(e.length),n=0;n>1)),s=0,o=function(e){i[s++]=e},n=0;ni.length){var l=new g(s+8+(a-n<<1));l.set(i),i=l}var A=e.charCodeAt(n);A<128||t?o(A):(A<2048?o(192|A>>6):(A>55295&&A<57344?(o(240|(A=65536+(1047552&A)|1023&e.charCodeAt(++n))>>18),o(128|A>>12&63)):o(224|A>>12),o(128|A>>6&63)),o(128|63&A))}return j(i,0,s)}(function(e){this.ondata=e,eY?this.t=new TextDecoder:this.p=en}).prototype.push=function(e,t){if(!this.ondata)throw"no callback";if(t=!!t,this.t){if(this.ondata(this.t.decode(e,{stream:!0}),t),t){if(this.t.decode().length)throw"invalid utf-8 data";this.t=null}return}if(!this.p)throw"stream finished";var r=new g(this.p.length+e.length);r.set(this.p),r.set(e,this.p.length);var n=eW(r),a=n[0],i=n[1];if(t){if(i.length)throw"invalid utf-8 data";this.p=null}else this.p=i;this.ondata(a,t)},(function(e){this.ondata=e}).prototype.push=function(e,t){if(!this.ondata)throw"no callback";if(this.d)throw"stream finished";this.ondata(eZ(e),this.d=t||!1)};var eV=function(e){return 1==e?3:e<6?2:+(9==e)},ez=function(e,t){for(;1!=eF(e,t);t+=4+eF(e,t+2));return[ey(e,t+12),ey(e,t+4),ey(e,t+20)]},eq=function(e){var t=0;if(e)for(var r in e){var n=e[r].length;if(n>65535)throw"extra field too long";t+=n+4}return t},e$=function(e,t,r,n,a,i,s,o){var l=n.length,A=r.extra,u=o&&o.length,c=eq(A);eI(e,t,null!=s?0x2014b50:0x4034b50),t+=4,null!=s&&(e[t++]=20,e[t++]=r.os),e[t]=20,t+=2,e[t++]=r.flag<<1|(null==i&&8),e[t++]=a&&8,e[t++]=255&r.compression,e[t++]=r.compression>>8;var h=new Date(null==r.mtime?Date.now():r.mtime),d=h.getFullYear()-1980;if(d<0||d>119)throw"date not in range 1980-2099";if(eI(e,t,d<<25|h.getMonth()+1<<21|h.getDate()<<16|h.getHours()<<11|h.getMinutes()<<5|h.getSeconds()>>>1),t+=4,null!=i&&(eI(e,t,r.crc),eI(e,t+4,i),eI(e,t+8,r.size)),eI(e,t+12,l),eI(e,t+14,c),t+=16,null!=s&&(eI(e,t,u),eI(e,t+6,r.attrs),eI(e,t+10,s),t+=14),e.set(n,t),t+=l,c)for(var f in A){var B=A[f],p=B.length;eI(e,t,+f),eI(e,t+2,p),e.set(B,t+4),t+=4+p}return u&&(e.set(o,t),t+=u),t},e0=function(e,t,r,n,a){eI(e,t,0x6054b50),eI(e,t+8,r),eI(e,t+10,r),eI(e,t+12,n),eI(e,t+16,a)},e1=function(){function e(e){this.filename=e,this.c=es(),this.size=0,this.compression=0}return e.prototype.process=function(e,t){this.ondata(null,e,t)},e.prototype.push=function(e,t){if(!this.ondata)throw"no callback - add to ZIP archive before pushing";this.c.p(e),this.size+=e.length,t&&(this.crc=this.c.d()),this.process(e,t||!1)},e}();function e9(e,t){var r=this;t||(t={}),e1.call(this,e),this.d=new ex(t,function(e,t){r.ondata(null,e,t)}),this.compression=8,this.flag=eV(t.level)}function e2(e,t){var r=this;t||(t={}),e1.call(this,e),this.d=new eJ(t,function(e,t,n){r.ondata(e,t,n)}),this.compression=8,this.flag=eV(t.level),this.terminate=this.d.terminate}function e8(e){this.ondata=e,this.u=[],this.d=1}e9.prototype.process=function(e,t){try{this.d.push(e,t)}catch(e){this.ondata(e,null,t)}},e9.prototype.push=function(e,t){e1.prototype.push.call(this,e,t)},e2.prototype.process=function(e,t){this.d.push(e,t)},e2.prototype.push=function(e,t){e1.prototype.push.call(this,e,t)},e8.prototype.add=function(e){var t=this;if(2&this.d)throw"stream finished";var r=eZ(e.filename),n=r.length,a=e.comment,i=a&&eZ(a),s=n!=e.filename.length||i&&a.length!=i.length,o=n+eq(e.extra)+30;if(n>65535)throw"filename too long";var l=new g(o);e$(l,0,e,r,s);var A=[l],u=function(){for(var e=0,r=A;e0){var n=Math.min(this.c,e.length),a=e.subarray(0,n);if(this.c-=n,this.d?this.d.push(a,!this.c):this.k[0].push(a),(e=e.subarray(n)).length)return this.push(e,t)}else{var i=0,s=0,o=void 0,l=void 0;this.p.length?e.length?((l=new g(this.p.length+e.length)).set(this.p),l.set(e,this.p.length)):l=this.p:l=e;for(var A=l.length,u=this.c,c=u&&this.d,h=this;ss+30+c+d){var f,B,p=[];h.k.unshift(p),i=2;var C=eE(l,s+18),m=eE(l,s+22),g=function(e,t){if(t){for(var r="",n=0;n=0&&(M.size=C,M.originalSize=m),h.onfile(M)}return"break"}if(u){if(0x8074b50==e)return o=s+=12+(-2==u&&8),i=3,h.c=0,"break";else if(0x2014b50==e)return o=s-=4,i=3,h.c=0,"break"}}();++s);if(this.p=en,u<0){var d=i?l.subarray(0,o-12-(-2==u&&8)-(0x8074b50==eE(l,o-16)&&4)):l.subarray(0,s);c?c.push(d,!!i):this.k[+(2==i)].push(d)}if(2&i)return this.push(l.subarray(s),t);this.p=l.subarray(s)}if(t){if(this.c)throw"invalid zip file";this.p=null}},e5.prototype.register=function(e){this.o[e.compression]=e};let e7=c.version>=152;class te extends p.DataTextureLoader{constructor(e){super(e),this.type=p.HalfFloatType}parse(e){let t={l:0,c:0,lc:0};function r(e,r,n,a,i){for(;n>(n-=e)&(1<>(n-=8),d=new Uint8Array([d])[0];if(c.value+d>h)return!1;for(var f=u[c.value-1];d-- >0;)u[c.value++]=f}else{if(!(c.value32767?t-65536:t}let A={a:0,b:0};function u(e,t){var r=l(e),n=l(t),a=r+(1&n)+(n>>1),i=a-n;A.a=a,A.b=i}function c(e,t){var r=65535&t,n=(65535&e)-(r>>1)&65535;A.a=r+n-32768&65535,A.b=n}function h(e,l,A,u,c,h){var d=A.value,f=I(l,A),B=I(l,A);A.value+=4;var p=I(l,A);if(A.value+=4,f<0||f>=65537||B<0||B>=65537)throw"Something wrong with HUF_ENCSIZE";for(var C=Array(65537),m=Array(16384),g=0;g<16384;g++)m[g]={},m[g].len=0,m[g].lit=0,m[g].p=null;var M=u-(A.value-d);if(!function(e,a,i,s,o,l){for(var A=0,u=0;s<=o;s++){if(a.value-a.value>i)return!1;r(6,A,u,e,a);var c=t.l;if(A=t.c,u=t.lc,l[s]=c,63==c){if(a.value-a.value>i)throw"Something wrong with hufUnpackEncTable";r(8,A,u,e,a);var h=t.l+6;if(A=t.c,u=t.lc,s+h>o+1)throw"Something wrong with hufUnpackEncTable";for(;h--;)l[s++]=0;s--}else if(c>=59){var h=c-59+2;if(s+h>o+1)throw"Something wrong with hufUnpackEncTable";for(;h--;)l[s++]=0;s--}}!function(e){for(var t=0;t<=58;++t)n[t]=0;for(var t=0;t<65537;++t)n[e[t]]+=1;for(var r=0,t=58;t>0;--t){var a=r+n[t]>>1;n[t]=r,r=a}for(var t=0;t<65537;++t){var i=e[t];i>0&&(e[t]=i|n[i]++<<6)}}(l)}(e,A,M,f,B,C),p>8*(u-(A.value-d)))throw"Something wrong with hufUncompress";!function(e,t,r,n){for(;t<=r;t++){var a=e[t]>>6,i=63&e[t];if(a>>i)throw"Invalid table entry";if(i>14){var s=n[a>>i-14];if(s.len)throw"Invalid table entry";if(s.lit++,s.p){var o=s.p;s.p=Array(s.lit);for(var l=0;l0;l--){var s=n[(a<<14-i)+A];if(s.len||s.p)throw"Invalid table entry";s.len=i,s.lit=t,A++}}}(C,f,B,m),function(e,t,r,n,l,A,u,c,h,d){for(var f=0,B=0,p=Math.trunc(l.value+(A+7)/8);l.value=14;){var C=t[f>>B-14&16383];if(C.len)B-=C.len,o(C.lit,u,f,B,r,n,l,h,d,c),f=s.c,B=s.lc;else{if(!C.p)throw"hufDecode issues";for(m=0;m=g&&e[C.p[m]]>>6==(f>>B-g&(1<>=M,B-=M;B>0;){var C=t[f<<14-B&16383];if(C.len)B-=C.len,o(C.lit,u,f,B,r,n,l,h,d,c),f=s.c,B=s.lc;else throw"hufDecode issues"}}(C,m,e,l,A,p,B,h,c,{value:0})}function d(e){for(var t=1;ti)&&(t[a++]=e[r++],!(a>i));){;t[a++]=e[n++]}}function B(e){for(var t=e.byteLength,r=[],n=0,a=new DataView(e);t>0;){var i=a.getInt8(n++);if(i<0){var s=-i;t-=s+1;for(var o=0;o=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(l<=d)for(var o=0;o>3]&1<<(7&n))&&(t[r++]=n);for(var a=r-1;r<65536;)t[r++]=0;return a}(a,f),p=I(t,r);h(e.array,t,r,p,n,i);for(var o=0;oa?a:r,h=1;h<=l;)h<<=1;for(h>>=1,d=h,h>>=1;h>=1;){for(var d,f,B,p,C,m=0,g=0+i*(a-d),M=i*h,v=i*d,F=n*h,E=n*d;m<=g;m+=v){for(var y=m,I=m+n*(r-d);y<=I;y+=E){var G=y+F,R=y+M,b=R+F;o?(u(e[y+t],e[R+t]),f=A.a,p=A.b,u(e[G+t],e[b+t]),B=A.a,C=A.b,u(f,B),e[y+t]=A.a,e[G+t]=A.b,u(p,C)):(c(e[y+t],e[R+t]),f=A.a,p=A.b,c(e[G+t],e[b+t]),B=A.a,C=A.b,c(f,B),e[y+t]=A.a,e[G+t]=A.b,c(p,C)),e[R+t]=A.a,e[b+t]=A.b}if(r&h){var R=y+M;o?u(e[y+t],e[R+t]):c(e[y+t],e[R+t]),f=A.a,e[R+t]=A.b,e[y+t]=f}}if(a&h)for(var y=m,I=m+n*(r-d);y<=I;y+=E){var G=y+F;o?u(e[y+t],e[G+t]):c(e[y+t],e[G+t]),f=A.a,e[G+t]=A.b,e[y+t]=f}d=h,h>>=1}}(n,C.start+m,C.nx,C.size,C.ny,C.nx*C.size,B);for(var g=i,M=0;M0;){var o=E(t.buffer,r),l=R(t,r),A=l>>2&3,u=new Int8Array([(l>>4)-1])[0],c=R(t,r);i.push({name:o,index:u,type:c,compression:A}),s-=o.length+3}for(var d=U.channels,f=Array(e.channels),C=0;C=0&&(v.idx[y.index]=F),m.offset=F)}if(a.acCompressedSize>0)switch(a.acCompression){case 0:var I=new Uint16Array(a.totalAcUncompressedCount);h(e.array,t,r,a.acCompressedSize,I,a.totalAcUncompressedCount);break;case 1:var G=e.array.slice(r.value,r.value+a.totalAcUncompressedCount),D=eN(G),I=new Uint16Array(D.buffer);r.value+=a.totalAcUncompressedCount}if(a.dcCompressedSize>0){var T=new Uint16Array(g({array:e.array,offset:r,size:a.dcCompressedSize}).buffer);r.value+=a.dcCompressedSize}if(a.rleRawSize>0){var G=e.array.slice(r.value,r.value+a.rleCompressedSize),D=eN(G),x=B(D.buffer);r.value+=a.rleCompressedSize}for(var J=0,L=Array(f.length),C=0;C>8==255?a+=255&n:(r[a]=n,a++),e.value++}(f,n,m[e]),v=m[e],(F=C[e])[0]=w(v[0]),F[1]=w(v[1]),F[2]=w(v[5]),F[3]=w(v[6]),F[4]=w(v[14]),F[5]=w(v[15]),F[6]=w(v[27]),F[7]=w(v[28]),F[8]=w(v[2]),F[9]=w(v[4]),F[10]=w(v[7]),F[11]=w(v[13]),F[12]=w(v[16]),F[13]=w(v[26]),F[14]=w(v[29]),F[15]=w(v[42]),F[16]=w(v[3]),F[17]=w(v[8]),F[18]=w(v[12]),F[19]=w(v[17]),F[20]=w(v[25]),F[21]=w(v[30]),F[22]=w(v[41]),F[23]=w(v[43]),F[24]=w(v[9]),F[25]=w(v[11]),F[26]=w(v[18]),F[27]=w(v[24]),F[28]=w(v[31]),F[29]=w(v[40]),F[30]=w(v[44]),F[31]=w(v[53]),F[32]=w(v[10]),F[33]=w(v[19]),F[34]=w(v[23]),F[35]=w(v[32]),F[36]=w(v[39]),F[37]=w(v[45]),F[38]=w(v[52]),F[39]=w(v[54]),F[40]=w(v[20]),F[41]=w(v[22]),F[42]=w(v[33]),F[43]=w(v[38]),F[44]=w(v[46]),F[45]=w(v[51]),F[46]=w(v[55]),F[47]=w(v[60]),F[48]=w(v[21]),F[49]=w(v[34]),F[50]=w(v[37]),F[51]=w(v[47]),F[52]=w(v[50]),F[53]=w(v[56]),F[54]=w(v[59]),F[55]=w(v[61]),F[56]=w(v[35]),F[57]=w(v[36]),F[58]=w(v[48]),F[59]=w(v[49]),F[60]=w(v[57]),F[61]=w(v[58]),F[62]=w(v[62]),F[63]=w(v[63]),function(e){let t=.5*Math.cos(3.14159/16),r=.5*Math.cos(3.14159/8),n=.5*Math.cos(3*3.14159/16),a=.5*Math.cos(3*3.14159/8);for(var i=[,,,,],s=[,,,,],o=[,,,,],l=[,,,,],A=0;A<8;++A){var u=8*A;i[0]=r*e[u+2],i[1]=a*e[u+2],i[2]=r*e[u+6],i[3]=a*e[u+6],s[0]=t*e[u+1]+n*e[u+3]+.2777854612564676*e[u+5]+.09754573032714427*e[u+7],s[1]=n*e[u+1]-.09754573032714427*e[u+3]-t*e[u+5]-.2777854612564676*e[u+7],s[2]=.2777854612564676*e[u+1]-t*e[u+3]+.09754573032714427*e[u+5]+n*e[u+7],s[3]=.09754573032714427*e[u+1]-.2777854612564676*e[u+3]+n*e[u+5]-t*e[u+7],o[0]=.35355362513961314*(e[u+0]+e[u+4]),o[3]=.35355362513961314*(e[u+0]-e[u+4]),o[1]=i[0]+i[3],o[2]=i[1]-i[2],l[0]=o[0]+o[1],l[1]=o[3]+o[2],l[2]=o[3]-o[2],l[3]=o[0]-o[1],e[u+0]=l[0]+s[0],e[u+1]=l[1]+s[1],e[u+2]=l[2]+s[2],e[u+3]=l[3]+s[3],e[u+4]=l[3]-s[3],e[u+5]=l[2]-s[2],e[u+6]=l[1]-s[1],e[u+7]=l[0]-s[0]}for(var c=0;c<8;++c)i[0]=r*e[16+c],i[1]=a*e[16+c],i[2]=r*e[48+c],i[3]=a*e[48+c],s[0]=t*e[8+c]+n*e[24+c]+.2777854612564676*e[40+c]+.09754573032714427*e[56+c],s[1]=n*e[8+c]-.09754573032714427*e[24+c]-t*e[40+c]-.2777854612564676*e[56+c],s[2]=.2777854612564676*e[8+c]-t*e[24+c]+.09754573032714427*e[40+c]+n*e[56+c],s[3]=.09754573032714427*e[8+c]-.2777854612564676*e[24+c]+n*e[40+c]-t*e[56+c],o[0]=.35355362513961314*(e[c]+e[32+c]),o[3]=.35355362513961314*(e[c]-e[32+c]),o[1]=i[0]+i[3],o[2]=i[1]-i[2],l[0]=o[0]+o[1],l[1]=o[3]+o[2],l[2]=o[3]-o[2],l[3]=o[0]-o[1],e[0+c]=l[0]+s[0],e[8+c]=l[1]+s[1],e[16+c]=l[2]+s[2],e[24+c]=l[3]+s[3],e[32+c]=l[3]-s[3],e[40+c]=l[2]-s[2],e[48+c]=l[1]-s[1],e[56+c]=l[0]-s[0]}(C[e])}for(var I=C,G=0;G<64;++G){var R=I[0][G],b=I[1][G],D=I[2][G];I[0][G]=R+1.5747*D,I[1][G]=R-.1873*b-.4682*D,I[2][G]=R+1.8556*b}for(let t=0;t<3;++t)!function(e,t,r){for(var n,a=0;a<64;++a){t[r+a]=p.DataUtils.toHalfFloat((n=e[a])<=1?Math.sign(n)*Math.pow(Math.abs(n),2.2):Math.sign(n)*Math.pow(9.025013291561939,Math.abs(n)-1))}}(C[t],g[t],64*e)}let i=0;for(let n=0;n<3;++n){let a=r[e.idx[n]].type;for(let e=8*t;e<8*t+E;++e){i=M[n][e];for(let t=0;t>10,r=1023&e;return(e>>15?-1:1)*(t?31===t?r?NaN:1/0:Math.pow(2,t-15)*(1+r/1024):r/1024*6103515625e-14)}function H(e,t){var r=e.getUint16(t.value,!0);return t.value+=2,r}function x(e,t){return w(H(e,t))}let J=new DataView(e),L=new Uint8Array(e),S={value:0},U=function(e,t,r){let n={};if(0x1312f76!=e.getUint32(0,!0))throw"THREE.EXRLoader: provided file doesn't appear to be in OpenEXR format.";n.version=e.getUint8(4);let a=e.getUint8(5);n.spec={singleTile:!!(2&a),longName:!!(4&a),deepFormat:!!(8&a),multiPart:!!(16&a)},r.value=8;for(var i=!0;i;){var s=E(t,r);if(0==s)i=!1;else{var o=E(t,r),l=I(e,r),A=function(e,t,r,n,a){var i,s,o,l,A,u,c;if("string"===n||"stringvector"===n||"iccProfile"===n)return i=new TextDecoder().decode(new Uint8Array(t).slice(r.value,r.value+a)),r.value=r.value+a,i;if("chlist"===n)return function(e,t,r,n){for(var a=r.value,i=[];r.valueO.height?O.height-t:O.scanlineBlockSize;let r=O.size=O.height)break;for(let e=0;e{let n;switch(e){case A.UnsignedByteType:n=new Uint8ClampedArray(t*r*4);break;case A.HalfFloatType:n=new Uint16Array(t*r*4);break;case A.UnsignedIntType:n=new Uint32Array(t*r*4);break;case A.ByteType:n=new Int8Array(t*r*4);break;case A.ShortType:n=new Int16Array(t*r*4);break;case A.IntType:n=new Int32Array(t*r*4);break;case A.FloatType:n=new Float32Array(t*r*4);break;default:throw Error("Unsupported data type")}return n};class tn{_renderer;_rendererIsDisposable=!1;_material;_scene;_camera;_quad;_renderTarget;_width;_height;_type;_colorSpace;_supportsReadPixels=!0;constructor(e){this._width=e.width,this._height=e.height,this._type=e.type,this._colorSpace=e.colorSpace;const r={format:A.RGBAFormat,depthBuffer:!1,stencilBuffer:!1,type:this._type,colorSpace:this._colorSpace,anisotropy:e.renderTargetOptions?.anisotropy!==void 0?e.renderTargetOptions?.anisotropy:1,generateMipmaps:e.renderTargetOptions?.generateMipmaps!==void 0&&e.renderTargetOptions?.generateMipmaps,magFilter:e.renderTargetOptions?.magFilter!==void 0?e.renderTargetOptions?.magFilter:A.LinearFilter,minFilter:e.renderTargetOptions?.minFilter!==void 0?e.renderTargetOptions?.minFilter:A.LinearFilter,samples:e.renderTargetOptions?.samples!==void 0?e.renderTargetOptions?.samples:void 0,wrapS:e.renderTargetOptions?.wrapS!==void 0?e.renderTargetOptions?.wrapS:A.ClampToEdgeWrapping,wrapT:e.renderTargetOptions?.wrapT!==void 0?e.renderTargetOptions?.wrapT:A.ClampToEdgeWrapping};if(this._material=e.material,e.renderer?this._renderer=e.renderer:(this._renderer=tn.instantiateRenderer(),this._rendererIsDisposable=!0),this._scene=new A.Scene,this._camera=new A.OrthographicCamera,this._camera.position.set(0,0,10),this._camera.left=-.5,this._camera.right=.5,this._camera.top=.5,this._camera.bottom=-.5,this._camera.updateProjectionMatrix(),!((e,r,n,a)=>{if(void 0!==t)return t;let i=new A.WebGLRenderTarget(1,1,a);r.setRenderTarget(i);let s=new A.Mesh(new A.PlaneGeometry,new A.MeshBasicMaterial({color:0xffffff}));r.render(s,n),r.setRenderTarget(null);let o=tr(e,i.width,i.height);return r.readRenderTargetPixels(i,0,0,i.width,i.height,o),i.dispose(),s.geometry.dispose(),s.material.dispose(),t=0!==o[0]})(this._type,this._renderer,this._camera,r)){let e;this._type===A.HalfFloatType&&(e=this._renderer.extensions.has("EXT_color_buffer_float")?A.FloatType:void 0),void 0!==e?(console.warn(`This browser does not support reading pixels from ${this._type} RenderTargets, switching to ${A.FloatType}`),this._type=e):(this._supportsReadPixels=!1,console.warn("This browser dos not support toArray or toDataTexture, calls to those methods will result in an error thrown"))}this._quad=new A.Mesh(new A.PlaneGeometry,this._material),this._quad.geometry.computeBoundingBox(),this._scene.add(this._quad),this._renderTarget=new A.WebGLRenderTarget(this.width,this.height,r),this._renderTarget.texture.mapping=e.renderTargetOptions?.mapping!==void 0?e.renderTargetOptions?.mapping:A.UVMapping}static instantiateRenderer(){let e=new tt.WebGLRenderer;return e.setSize(128,128),e}render=()=>{this._renderer.setRenderTarget(this._renderTarget);try{this._renderer.render(this._scene,this._camera)}catch(e){throw this._renderer.setRenderTarget(null),e}this._renderer.setRenderTarget(null)};toArray(){if(!this._supportsReadPixels)throw Error("Can't read pixels in this browser");let e=tr(this._type,this._width,this._height);return this._renderer.readRenderTargetPixels(this._renderTarget,0,0,this._width,this._height,e),e}toDataTexture(e){let t=new A.DataTexture(this.toArray(),this.width,this.height,A.RGBAFormat,this._type,e?.mapping||A.UVMapping,e?.wrapS||A.ClampToEdgeWrapping,e?.wrapT||A.ClampToEdgeWrapping,e?.magFilter||A.LinearFilter,e?.minFilter||A.LinearFilter,e?.anisotropy||1,A.LinearSRGBColorSpace);return t.generateMipmaps=e?.generateMipmaps!==void 0&&e?.generateMipmaps,t}disposeOnDemandRenderer(){this._renderer.setRenderTarget(null),this._rendererIsDisposable&&(this._renderer.dispose(),this._renderer.forceContextLoss())}dispose(e){this.disposeOnDemandRenderer(),e&&this.renderTarget.dispose(),this.material instanceof A.ShaderMaterial&&Object.values(this.material.uniforms).forEach(e=>{e.value instanceof A.Texture&&e.value.dispose()}),Object.values(this.material).forEach(e=>{e instanceof A.Texture&&e.dispose()}),this.material.dispose(),this._quad.geometry.dispose()}get width(){return this._width}set width(e){this._width=e,this._renderTarget.setSize(this._width,this._height)}get height(){return this._height}set height(e){this._height=e,this._renderTarget.setSize(this._width,this._height)}get renderer(){return this._renderer}get renderTarget(){return this._renderTarget}set renderTarget(e){this._renderTarget=e,this._width=e.width,this._height=e.height}get material(){return this._material}get type(){return this._type}get colorSpace(){return this._colorSpace}}var ta=A;class ti extends Error{}class ts extends Error{}let to=(e,t,r)=>{let n=RegExp(`${t}="([^"]*)"`,"i").exec(e);if(n)return n[1];let a=RegExp(`<${t}[^>]*>([\\s\\S]*?)`,"i").exec(e);if(a){let e=a[1].match(/([^<]*)<\/rdf:li>/g);return e&&3===e.length?e.map(e=>e.replace(/<\/?rdf:li>/g,"")):a[1].trim()}if(void 0!==r)return r;throw Error(`Can't find ${t} in gainmap metadata`)};class tl{options;constructor(e){this.options={debug:!!e&&void 0!==e.debug&&e.debug,extractFII:!e||void 0===e.extractFII||e.extractFII,extractNonFII:!e||void 0===e.extractNonFII||e.extractNonFII}}extract(e){return new Promise((t,r)=>{let n,a=this.options.debug,i=new DataView(e.buffer);if(65496!==i.getUint16(0))return void r(Error("Not a valid jpeg"));let s=i.byteLength,o=2,l=0;for(;o250)return void r(Error(`Found no marker after ${l} loops 😵`));if(255!==i.getUint8(o))return void r(Error(`Not a valid marker at offset 0x${o.toString(16)}, found: 0x${i.getUint8(o).toString(16)}`));if(n=i.getUint8(o+1),a&&console.log(`Marker: ${n.toString(16)}`),226===n){a&&console.log("Found APP2 marker (0xffe2)");let e=o+4;if(0x4d504600===i.getUint32(e)){let n,a=e+4;if(18761===i.getUint16(a))n=!1;else{if(19789!==i.getUint16(a))return void r(Error("No valid endianness marker found in TIFF header"));n=!0}if(42!==i.getUint16(a+2,!n))return void r(Error("Not valid TIFF data! (no 0x002A marker)"));let s=i.getUint32(a+4,!n);if(s<8)return void r(Error("Not valid TIFF data! (First offset less than 8)"));let o=a+s,l=i.getUint16(o,!n),A=o+2,u=0;for(let e=A;e{let t=(e=>{let t,r=(t="u">typeof TextDecoder?new TextDecoder().decode(e):e.toString()).indexOf("",r),n=t.slice(r,e+10);try{let e=to(n,"hdrgm:GainMapMin","0"),t=to(n,"hdrgm:GainMapMax"),r=to(n,"hdrgm:Gamma","1"),a=to(n,"hdrgm:OffsetSDR","0.015625"),i=to(n,"hdrgm:OffsetHDR","0.015625"),s=/hdrgm:HDRCapacityMin="([^"]*)"/.exec(n),o=s?s[1]:"0",l=/hdrgm:HDRCapacityMax="([^"]*)"/.exec(n);if(!l)throw Error("Incomplete gainmap metadata");let A=l[1];return{gainMapMin:Array.isArray(e)?e.map(e=>parseFloat(e)):[parseFloat(e),parseFloat(e),parseFloat(e)],gainMapMax:Array.isArray(t)?t.map(e=>parseFloat(e)):[parseFloat(t),parseFloat(t),parseFloat(t)],gamma:Array.isArray(r)?r.map(e=>parseFloat(e)):[parseFloat(r),parseFloat(r),parseFloat(r)],offsetSdr:Array.isArray(a)?a.map(e=>parseFloat(e)):[parseFloat(a),parseFloat(a),parseFloat(a)],offsetHdr:Array.isArray(i)?i.map(e=>parseFloat(e)):[parseFloat(i),parseFloat(i),parseFloat(i)],hdrCapacityMin:parseFloat(o),hdrCapacityMax:parseFloat(A)}}catch(e){}r=t.indexOf("new Promise((t,r)=>{let n=document.createElement("img");n.onload=()=>{t(n)},n.onerror=e=>{r(e)},n.src=URL.createObjectURL(e)});class tc extends ta.Loader{_renderer;_renderTargetOptions;_internalLoadingManager;_config;constructor(e,t){super(t),this._config=e,e.renderer&&(this._renderer=e.renderer),this._internalLoadingManager=new ta.LoadingManager}setRenderer(e){return this._renderer=e,this}setRenderTargetOptions(e){return this._renderTargetOptions=e,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: A Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");let e=this._config.createMaterial({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new ta.Texture,sdr:new ta.Texture});return this._config.createQuadRenderer({width:16,height:16,type:ta.HalfFloatType,colorSpace:ta.LinearSRGBColorSpace,material:e,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async processImages(e,t,r){let n,a,i=t?new Blob([t],{type:"image/jpeg"}):void 0,s=new Blob([e],{type:"image/jpeg"}),o=!1;if("u"new tB(e),createQuadRenderer:e=>new tn(e)},t)}async render(e,t,r,n){let{sdrImage:a,gainMapImage:i,needsFlip:s}=await this.processImages(r,n,"flipY"),{gainMap:o,sdr:l}=this.createTextures(a,i,s);this.updateQuadRenderer(e,a,o,l,t),e.render()}}class tC extends tp{load([e,t,r],n,a,i){let s,o,l,A=this.prepareQuadRenderer(),u=async()=>{if(s&&o&&l){try{await this.render(A,l,s,o)}catch(n){this.manager.itemError(e),this.manager.itemError(t),this.manager.itemError(r),"function"==typeof i&&i(n),A.disposeOnDemandRenderer();return}"function"==typeof n&&n(A),this.manager.itemEnd(e),this.manager.itemEnd(t),this.manager.itemEnd(r),A.disposeOnDemandRenderer()}},c=!0,h=0,d=0,f=!0,B=0,p=0,C=!0,m=0,g=0,M=()=>{"function"==typeof a&&a(new ProgressEvent("progress",{lengthComputable:c&&f&&C,loaded:d+p+g,total:h+B+m}))};this.manager.itemStart(e),this.manager.itemStart(t),this.manager.itemStart(r);let v=new th.FileLoader(this._internalLoadingManager);v.setResponseType("arraybuffer"),v.setRequestHeader(this.requestHeader),v.setPath(this.path),v.setWithCredentials(this.withCredentials),v.load(e,async e=>{if("string"==typeof e)throw Error("Invalid sdr buffer");s=e,await u()},e=>{c=e.lengthComputable,d=e.loaded,h=e.total,M()},t=>{this.manager.itemError(e),"function"==typeof i&&i(t)});let F=new th.FileLoader(this._internalLoadingManager);F.setResponseType("arraybuffer"),F.setRequestHeader(this.requestHeader),F.setPath(this.path),F.setWithCredentials(this.withCredentials),F.load(t,async e=>{if("string"==typeof e)throw Error("Invalid gainmap buffer");o=e,await u()},e=>{f=e.lengthComputable,p=e.loaded,B=e.total,M()},e=>{this.manager.itemError(t),"function"==typeof i&&i(e)});let E=new th.FileLoader(this._internalLoadingManager);return E.setRequestHeader(this.requestHeader),E.setPath(this.path),E.setWithCredentials(this.withCredentials),E.load(r,async e=>{if("string"!=typeof e)throw Error("Invalid metadata string");l=JSON.parse(e),await u()},e=>{C=e.lengthComputable,g=e.loaded,m=e.total,M()},e=>{this.manager.itemError(r),"function"==typeof i&&i(e)}),A}}class tm extends tp{load(e,t,r,n){let a=this.prepareQuadRenderer(),i=new th.FileLoader(this._internalLoadingManager);return i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setPath(this.path),i.setWithCredentials(this.withCredentials),this.manager.itemStart(e),i.load(e,async r=>{let i,s,o;if("string"==typeof r)throw Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");let l=new Uint8Array(r);try{let e=await tA(l);i=e.sdr,s=e.gainMap,o=e.metadata}catch(t){if(t instanceof ts||t instanceof ti)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),o={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},i=l;else throw t}try{await this.render(a,o,i.buffer,s?.buffer)}catch(t){this.manager.itemError(e),"function"==typeof n&&n(t),a.disposeOnDemandRenderer();return}"function"==typeof t&&t(a),this.manager.itemEnd(e),a.disposeOnDemandRenderer()},r,t=>{this.manager.itemError(e),"function"==typeof n&&n(t)}),a}}let tg={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},tM="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",tv=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"];function tF({files:e=tv,path:t="",preset:r,colorSpace:i,extensions:s}={}){r&&(tI(r),e=tg[r],t=tM);let o=Array.isArray(e),{extension:l,isCubemap:u}=tG(e),c=tR(l);if(!c)throw Error("useEnvironment: Unrecognized file extension: "+e);let h=(0,a.useThree)(e=>e.gl);(0,n.useLayoutEffect)(()=>{("webp"===l||"jpg"===l||"jpeg"===l)&&h.domElement.addEventListener("webglcontextlost",function(){d.useLoader.clear(c,o?[e]:e)},{once:!0})},[e,h.domElement]);let f=(0,d.useLoader)(c,o?[e]:e,e=>{("webp"===l||"jpg"===l||"jpeg"===l)&&e.setRenderer(h),null==e.setPath||e.setPath(t),s&&s(e)}),B=o?f[0]:f;if("jpg"===l||"jpeg"===l||"webp"===l){var p;B=null==(p=B.renderTarget)?void 0:p.texture}return B.mapping=u?A.CubeReflectionMapping:A.EquirectangularReflectionMapping,B.colorSpace=null!=i?i:u?"srgb":"srgb-linear",B}let tE={files:tv,path:"",preset:void 0,extensions:void 0};tF.preload=e=>{let t={...tE,...e},{files:r,path:n=""}=t,{preset:a,extensions:i}=t;a&&(tI(a),r=tg[a],n=tM);let{extension:s}=tG(r);if("webp"===s||"jpg"===s||"jpeg"===s)throw Error("useEnvironment: Preloading gainmaps is not supported");let o=tR(s);if(!o)throw Error("useEnvironment: Unrecognized file extension: "+r);d.useLoader.preload(o,Array.isArray(r)?[r]:r,e=>{null==e.setPath||e.setPath(n),i&&i(e)})};let ty={files:tv,preset:void 0};function tI(e){if(!(e in tg))throw Error("Preset must be one of: "+Object.keys(tg).join(", "))}function tG(e){var t;let r=Array.isArray(e)&&6===e.length,n=Array.isArray(e)&&3===e.length&&e.some(e=>e.endsWith("json")),a=Array.isArray(e)?e[0]:e;return{extension:r?"cube":n?"webp":a.startsWith("data:application/exr")?"exr":a.startsWith("data:application/hdr")?"hdr":a.startsWith("data:image/jpeg")?"jpg":null==(t=a.split(".").pop())||null==(t=t.split("?"))||null==(t=t.shift())?void 0:t.toLowerCase(),isCubemap:r,isGainmap:n}}function tR(e){return"cube"===e?A.CubeTextureLoader:"hdr"===e?B:"exr"===e?te:"jpg"===e||"jpeg"===e?tm:"webp"===e?tC:null}function tb(e,t,r,n,a={}){var i,s,l,A,u;let c;a={backgroundBlurriness:0,backgroundIntensity:1,backgroundRotation:[0,0,0],environmentIntensity:1,environmentRotation:[0,0,0],...a};let h=(c=u=t||r).current&&c.current.isScene?u.current:u,d=h.background,f=h.environment,B={backgroundBlurriness:h.backgroundBlurriness,backgroundIntensity:h.backgroundIntensity,backgroundRotation:null!=(i=null==(s=h.backgroundRotation)||null==s.clone?void 0:s.clone())?i:[0,0,0],environmentIntensity:h.environmentIntensity,environmentRotation:null!=(l=null==(A=h.environmentRotation)||null==A.clone?void 0:A.clone())?l:[0,0,0]};return"only"!==e&&(h.environment=n),e&&(h.background=n),(0,o.applyProps)(h,a),()=>{"only"!==e&&(h.environment=f),e&&(h.background=d),(0,o.applyProps)(h,B)}}function tD({scene:e,background:t=!1,map:r,...i}){let s=(0,a.useThree)(e=>e.scene);return n.useLayoutEffect(()=>{if(r)return tb(t,e,s,r,i)}),null}function tT({background:e=!1,scene:t,blur:r,backgroundBlurriness:i,backgroundIntensity:s,backgroundRotation:o,environmentIntensity:l,environmentRotation:A,...u}){let c=tF(u),h=(0,a.useThree)(e=>e.scene);return n.useLayoutEffect(()=>tb(e,t,h,c,{backgroundBlurriness:null!=r?r:i,backgroundIntensity:s,backgroundRotation:o,environmentIntensity:l,environmentRotation:A})),n.useEffect(()=>()=>{c.dispose()},[c]),null}function tw({children:e,near:t=.1,far:r=1e3,resolution:o=256,frames:l=1,map:u,background:c=!1,blur:h,backgroundBlurriness:d,backgroundIntensity:f,backgroundRotation:B,environmentIntensity:p,environmentRotation:C,scene:m,files:g,path:M,preset:v,extensions:F}){let E=(0,a.useThree)(e=>e.gl),y=(0,a.useThree)(e=>e.scene),I=n.useRef(null),[G]=n.useState(()=>new A.Scene),R=n.useMemo(()=>{let e=new A.WebGLCubeRenderTarget(o);return e.texture.type=A.HalfFloatType,e},[o]);n.useEffect(()=>()=>{R.dispose()},[R]),n.useLayoutEffect(()=>{if(1===l){let e=E.autoClear;E.autoClear=!0,I.current.update(E,G),E.autoClear=e}return tb(c,m,y,R.texture,{backgroundBlurriness:null!=h?h:d,backgroundIntensity:f,backgroundRotation:B,environmentIntensity:p,environmentRotation:C})},[e,G,R.texture,m,y,c,l,E]);let b=1;return(0,i.useFrame)(()=>{if(l===1/0||b(0,l.extend)({GroundProjectedEnvImpl:h}),[]),n.useEffect(()=>()=>{o.dispose()},[o]);let u=n.useMemo(()=>[A],[A]),c=null==(t=e.ground)?void 0:t.height,d=null==(a=e.ground)?void 0:a.radius,f=null!=(i=null==(s=e.ground)?void 0:s.scale)?i:1e3;return n.createElement(n.Fragment,null,n.createElement(tD,(0,r.default)({},e,{map:A})),n.createElement("groundProjectedEnvImpl",{args:u,scale:f,height:c,radius:d}))}tF.clear=e=>{let t={...ty,...e},{files:r}=t,{preset:n}=t;n&&(tI(n),r=tg[n]);let{extension:a}=tG(r),i=tR(a);if(!i)throw Error("useEnvironment: Unrecognized file extension: "+r);d.useLoader.clear(i,Array.isArray(r)?[r]:r)},e.s(["Environment",0,function(e){return e.ground?n.createElement(tH,e):e.map?n.createElement(tD,e):e.children?n.createElement(tw,e):n.createElement(tT,e)}],43257)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0cbrtnt1~j.f_.js b/build/.next/static/chunks/0cbrtnt1~j.f_.js new file mode 100644 index 0000000..102ac15 --- /dev/null +++ b/build/.next/static/chunks/0cbrtnt1~j.f_.js @@ -0,0 +1,517 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,1517,e=>{"use strict";let t,r;var i=e.i(43476),n=e.i(71645),s=e.i(75056),a=e.i(25234),o=e.i(28600),l=e.i(31067),c=e.i(90072),d=e.i(68911);let u=n.forwardRef(function({args:[e=1,t=1,r=1]=[],radius:i=.05,steps:s=1,smoothness:a=4,bevelSegments:o=4,creaseAngle:c=.4,children:d,...u},m){return n.createElement("mesh",(0,l.default)({ref:m},u),n.createElement(f,{args:[e,t,r],radius:i,steps:s,smoothness:a,bevelSegments:o,creaseAngle:c}),d)}),f=n.forwardRef(function({args:[e=1,t=1,r=1]=[],radius:i=.05,steps:s=1,smoothness:a=4,bevelSegments:o=4,creaseAngle:u=.4,...f},m){let p=n.useMemo(()=>{let r,n;return r=new c.Shape,n=i-1e-5,r.absarc(1e-5,1e-5,1e-5,-Math.PI/2,-Math.PI,!0),r.absarc(1e-5,t-2*n,1e-5,Math.PI,Math.PI/2,!0),r.absarc(e-2*n,t-2*n,1e-5,Math.PI/2,0,!0),r.absarc(e-2*n,1e-5,1e-5,0,-Math.PI/2,!0),r},[e,t,i]),h=n.useMemo(()=>({depth:r-2*i,bevelEnabled:!0,bevelSegments:2*o,steps:s,bevelSize:i-1e-5,bevelThickness:i,curveSegments:a}),[r,i,a,o,s]),v=n.useRef(null);return n.useLayoutEffect(()=>{v.current&&(v.current.center(),(0,d.toCreasedNormals)(v.current,u))},[p,h,u]),n.useImperativeHandle(m,()=>v.current),n.createElement("extrudeGeometry",(0,l.default)({ref:v,args:[p,h]},f))});var m=c,p=c;let h=new p.Box3,v=new p.Vector3;class x extends p.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry",this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new p.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new p.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(e){let t=this.attributes.instanceStart,r=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),r.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));let r=new p.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new p.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceEnd",new p.InterleavedBufferAttribute(r,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e,t=3){let r;e instanceof Float32Array?r=e:Array.isArray(e)&&(r=new Float32Array(e));let i=new p.InstancedInterleavedBuffer(r,2*t,1);return this.setAttribute("instanceColorStart",new p.InterleavedBufferAttribute(i,t,0)),this.setAttribute("instanceColorEnd",new p.InterleavedBufferAttribute(i,t,t)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new p.WireframeGeometry(e.geometry)),this}fromLineSegments(e){let t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new p.Box3);let e=this.attributes.instanceStart,t=this.attributes.instanceEnd;void 0!==e&&void 0!==t&&(this.boundingBox.setFromBufferAttribute(e),h.setFromBufferAttribute(t),this.boundingBox.union(h))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new p.Sphere),null===this.boundingBox&&this.computeBoundingBox();let e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){let r=this.boundingSphere.center;this.boundingBox.getCenter(r);let i=0;for(let n=0,s=e.count;n + #include + #include + #include + + uniform float linewidth; + uniform vec2 resolution; + + attribute vec3 instanceStart; + attribute vec3 instanceEnd; + + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + varying vec4 vLineColor; + attribute vec4 instanceColorStart; + attribute vec4 instanceColorEnd; + #else + varying vec3 vLineColor; + attribute vec3 instanceColorStart; + attribute vec3 instanceColorEnd; + #endif + #endif + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #ifdef USE_DASH + + uniform float dashScale; + attribute float instanceDistanceStart; + attribute float instanceDistanceEnd; + varying float vLineDistance; + + #endif + + void trimSegment( const in vec4 start, inout vec4 end ) { + + // trim end segment so it terminates between the camera plane and the near plane + + // conservative estimate of the near plane + float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column + float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column + float nearEstimate = - 0.5 * b / a; + + float alpha = ( nearEstimate - start.z ) / ( end.z - start.z ); + + end.xyz = mix( start.xyz, end.xyz, alpha ); + + } + + void main() { + + #ifdef USE_COLOR + + vLineColor = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; + + #endif + + #ifdef USE_DASH + + vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd; + vUv = uv; + + #endif + + float aspect = resolution.x / resolution.y; + + // camera space + vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); + vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); + + #ifdef WORLD_UNITS + + worldStart = start.xyz; + worldEnd = end.xyz; + + #else + + vUv = uv; + + #endif + + // special case for perspective projection, and segments that terminate either in, or behind, the camera plane + // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space + // but we need to perform ndc-space calculations in the shader, so we must address this issue directly + // perhaps there is a more elegant solution -- WestLangley + + bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column + + if ( perspective ) { + + if ( start.z < 0.0 && end.z >= 0.0 ) { + + trimSegment( start, end ); + + } else if ( end.z < 0.0 && start.z >= 0.0 ) { + + trimSegment( end, start ); + + } + + } + + // clip space + vec4 clipStart = projectionMatrix * start; + vec4 clipEnd = projectionMatrix * end; + + // ndc space + vec3 ndcStart = clipStart.xyz / clipStart.w; + vec3 ndcEnd = clipEnd.xyz / clipEnd.w; + + // direction + vec2 dir = ndcEnd.xy - ndcStart.xy; + + // account for clip-space aspect ratio + dir.x *= aspect; + dir = normalize( dir ); + + #ifdef WORLD_UNITS + + // get the offset direction as perpendicular to the view vector + vec3 worldDir = normalize( end.xyz - start.xyz ); + vec3 offset; + if ( position.y < 0.5 ) { + + offset = normalize( cross( start.xyz, worldDir ) ); + + } else { + + offset = normalize( cross( end.xyz, worldDir ) ); + + } + + // sign flip + if ( position.x < 0.0 ) offset *= - 1.0; + + float forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) ); + + // don't extend the line if we're rendering dashes because we + // won't be rendering the endcaps + #ifndef USE_DASH + + // extend the line bounds to encompass endcaps + start.xyz += - worldDir * linewidth * 0.5; + end.xyz += worldDir * linewidth * 0.5; + + // shift the position of the quad so it hugs the forward edge of the line + offset.xy -= dir * forwardOffset; + offset.z += 0.5; + + #endif + + // endcaps + if ( position.y > 1.0 || position.y < 0.0 ) { + + offset.xy += dir * 2.0 * forwardOffset; + + } + + // adjust for linewidth + offset *= linewidth * 0.5; + + // set the world position + worldPos = ( position.y < 0.5 ) ? start : end; + worldPos.xyz += offset; + + // project the worldpos + vec4 clip = projectionMatrix * worldPos; + + // shift the depth of the projected points so the line + // segments overlap neatly + vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; + clip.z = clipPose.z * clip.w; + + #else + + vec2 offset = vec2( dir.y, - dir.x ); + // undo aspect ratio adjustment + dir.x /= aspect; + offset.x /= aspect; + + // sign flip + if ( position.x < 0.0 ) offset *= - 1.0; + + // endcaps + if ( position.y < 0.0 ) { + + offset += - dir; + + } else if ( position.y > 1.0 ) { + + offset += dir; + + } + + // adjust for linewidth + offset *= linewidth; + + // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ... + offset /= resolution.y; + + // select end + vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd; + + // back to clip space + offset *= clip.w; + + clip.xy += offset; + + #endif + + gl_Position = clip; + + vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation + + #include + #include + #include + + } + `,fragmentShader:` + uniform vec3 diffuse; + uniform float opacity; + uniform float linewidth; + + #ifdef USE_DASH + + uniform float dashOffset; + uniform float dashSize; + uniform float gapSize; + + #endif + + varying float vLineDistance; + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #include + #include + #include + #include + + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + varying vec4 vLineColor; + #else + varying vec3 vLineColor; + #endif + #endif + + vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { + + float mua; + float mub; + + vec3 p13 = p1 - p3; + vec3 p43 = p4 - p3; + + vec3 p21 = p2 - p1; + + float d1343 = dot( p13, p43 ); + float d4321 = dot( p43, p21 ); + float d1321 = dot( p13, p21 ); + float d4343 = dot( p43, p43 ); + float d2121 = dot( p21, p21 ); + + float denom = d2121 * d4343 - d4321 * d4321; + + float numer = d1343 * d4321 - d1321 * d4343; + + mua = numer / denom; + mua = clamp( mua, 0.0, 1.0 ); + mub = ( d1343 + d4321 * ( mua ) ) / d4343; + mub = clamp( mub, 0.0, 1.0 ); + + return vec2( mua, mub ); + + } + + void main() { + + #include + + #ifdef USE_DASH + + if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps + + if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX + + #endif + + float alpha = opacity; + + #ifdef WORLD_UNITS + + // Find the closest points on the view ray and the line segment + vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; + vec3 lineDir = worldEnd - worldStart; + vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); + + vec3 p1 = worldStart + lineDir * params.x; + vec3 p2 = rayEnd * params.y; + vec3 delta = p1 - p2; + float len = length( delta ); + float norm = len / linewidth; + + #ifndef USE_DASH + + #ifdef USE_ALPHA_TO_COVERAGE + + float dnorm = fwidth( norm ); + alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); + + #else + + if ( norm > 0.5 ) { + + discard; + + } + + #endif + + #endif + + #else + + #ifdef USE_ALPHA_TO_COVERAGE + + // artifacts appear on some hardware if a derivative is taken within a conditional + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + float dlen = fwidth( len2 ); + + if ( abs( vUv.y ) > 1.0 ) { + + alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); + + } + + #else + + if ( abs( vUv.y ) > 1.0 ) { + + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + + if ( len2 > 1.0 ) discard; + + } + + #endif + + #endif + + vec4 diffuseColor = vec4( diffuse, alpha ); + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + diffuseColor *= vLineColor; + #else + diffuseColor.rgb *= vLineColor; + #endif + #endif + + #include + + gl_FragColor = diffuseColor; + + #include + #include <${j.version>=154?"colorspace_fragment":"encodings_fragment"}> + #include + #include + + } + `,clipping:!0}),this.isLineMaterial=!0,this.onBeforeCompile=function(){this.transparent?this.defines.USE_LINE_COLOR_ALPHA="1":delete this.defines.USE_LINE_COLOR_ALPHA},Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(e){!0===e?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashed:{enumerable:!0,get:function(){return"USE_DASH"in this.defines},set(e){!!e!="USE_DASH"in this.defines&&(this.needsUpdate=!0),!0===e?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},alphaToCoverage:{enumerable:!0,get:function(){return"USE_ALPHA_TO_COVERAGE"in this.defines},set:function(e){!!e!="USE_ALPHA_TO_COVERAGE"in this.defines&&(this.needsUpdate=!0),!0===e?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}}let S=j.version>=125?"uv1":"uv2",M=new m.Vector4,w=new m.Vector3,E=new m.Vector3,A=new m.Vector4,_=new m.Vector4,U=new m.Vector4,z=new m.Vector3,R=new m.Matrix4,P=new m.Line3,D=new m.Vector3,I=new m.Box3,L=new m.Sphere,C=new m.Vector4;function B(e,t,i){return C.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),C.multiplyScalar(1/C.w),C.x=r/i.width,C.y=r/i.height,C.applyMatrix4(e.projectionMatrixInverse),C.multiplyScalar(1/C.w),Math.abs(Math.max(C.x,C.y))}class F extends m.Mesh{constructor(e=new x,t=new b({color:0xffffff*Math.random()})){super(e,t),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){let e=this.geometry,t=e.attributes.instanceStart,r=e.attributes.instanceEnd,i=new Float32Array(2*t.count);for(let e=0,n=0,s=t.count;ef&&_.z>f)continue;if(A.z>f){let e=A.z-_.z,t=(A.z-f)/e;A.lerp(_,t)}else if(_.z>f){let e=_.z-A.z,t=(_.z-f)/e;_.lerp(A,t)}A.applyMatrix4(s),_.applyMatrix4(s),A.multiplyScalar(1/A.w),_.multiplyScalar(1/_.w),A.x*=a.x/2,A.y*=a.y/2,_.x*=a.x/2,_.y*=a.y/2,P.start.copy(A),P.start.z=0,P.end.copy(_),P.end.z=0;let l=P.closestPointToPointParameter(z,!0);P.at(l,D);let u=m.MathUtils.lerp(A.z,_.z,l),p=u>=-1&&u<=1,h=z.distanceTo(D)<.5*r;if(p&&h){P.start.fromBufferAttribute(c,i),P.end.fromBufferAttribute(d,i),P.start.applyMatrix4(o),P.end.applyMatrix4(o);let r=new m.Vector3,s=new m.Vector3;t.distanceSqToSegment(P.start,P.end,s,r),n.push({point:s,pointOnLine:r,distance:t.origin.distanceTo(s),object:e,face:null,faceIndex:i,uv:null,[S]:null})}}}(this,o,i))}}onBeforeRender(e){let t=this.material.uniforms;t&&t.resolution&&(e.getViewport(M),this.material.uniforms.resolution.value.set(M.z,M.w))}}class T extends x{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(e){let t=e.length-3,r=new Float32Array(2*t);for(let i=0;ie.size),v=n.useMemo(()=>a?new F:new k,[a]),[g]=n.useState(()=>new b),y=(null==r||null==(m=r[0])?void 0:m.length)===4?4:3,j=n.useMemo(()=>{let i=a?new x:new T,n=e.map(e=>{let t=Array.isArray(e);return e instanceof c.Vector3||e instanceof c.Vector4?[e.x,e.y,e.z]:e instanceof c.Vector2?[e.x,e.y,0]:t&&3===e.length?[e[0],e[1],e[2]]:t&&2===e.length?[e[0],e[1],0]:e});if(i.setPositions(n.flat()),r){t=0xffffff;let e=r.map(e=>e instanceof c.Color?e.toArray():e);i.setColors(e.flat(),y)}return i},[e,a,r,y]);return n.useLayoutEffect(()=>{v.computeLineDistances()},[e,v]),n.useLayoutEffect(()=>{d?g.defines.USE_DASH="":delete g.defines.USE_DASH,g.needsUpdate=!0},[d,g]),n.useEffect(()=>()=>{j.dispose(),g.dispose()},[j]),n.createElement("primitive",(0,l.default)({object:v,ref:f},u),n.createElement("primitive",{object:j,attach:"geometry"}),n.createElement("primitive",(0,l.default)({object:g,attach:"material",color:t,vertexColors:!!r,resolution:[h.width,h.height],linewidth:null!=(p=null!=i?i:s)?p:1,dashed:d,transparent:4===y},u)))});var O=c,N=e.i(67335);let V=parseInt(c.REVISION.replace(/\D+/g,""));class H extends O.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},pixelRatio:{value:1}},vertexShader:` + uniform float pixelRatio; + uniform float time; + attribute float size; + attribute float speed; + attribute float opacity; + attribute vec3 noise; + attribute vec3 color; + varying vec3 vColor; + varying float vOpacity; + + void main() { + vec4 modelPosition = modelMatrix * vec4(position, 1.0); + modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2; + modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2; + modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2; + vec4 viewPosition = viewMatrix * modelPosition; + vec4 projectionPostion = projectionMatrix * viewPosition; + gl_Position = projectionPostion; + gl_PointSize = size * 25. * pixelRatio; + gl_PointSize *= (1.0 / - viewPosition.z); + vColor = color; + vOpacity = opacity; + } + `,fragmentShader:` + varying vec3 vColor; + varying float vOpacity; + void main() { + float distanceToCenter = distance(gl_PointCoord, vec2(0.5)); + float strength = 0.05 / distanceToCenter - 0.1; + gl_FragColor = vec4(vColor, strength * vOpacity); + #include + #include <${V>=154?"colorspace_fragment":"encodings_fragment"}> + } + `})}get time(){return this.uniforms.time.value}set time(e){this.uniforms.time.value=e}get pixelRatio(){return this.uniforms.pixelRatio.value}set pixelRatio(e){this.uniforms.pixelRatio.value=e}}let W=e=>e&&e.constructor===Float32Array,$=e=>e instanceof O.Vector2||e instanceof O.Vector3||e instanceof O.Vector4,q=e=>Array.isArray(e)?e:$(e)?e.toArray():[e,e,e];function Y(e,t,r){return n.useMemo(()=>{if(void 0!==t)if(W(t))return t;else{if(t instanceof O.Color){let r=Array.from({length:3*e},()=>[t.r,t.g,t.b]).flat();return Float32Array.from(r)}if($(t)||Array.isArray(t)){let r=Array.from({length:3*e},()=>q(t)).flat();return Float32Array.from(r)}return Float32Array.from({length:e},()=>t)}return Float32Array.from({length:e},r)},[t])}let K=n.forwardRef(({noise:e=1,count:t=100,speed:r=1,opacity:i=1,scale:s=1,size:c,color:d,children:u,...f},m)=>{n.useMemo(()=>(0,N.extend)({SparklesImplMaterial:H}),[]);let p=n.useRef(null),h=(0,o.useThree)(e=>e.viewport.dpr),v=q(s),x=n.useMemo(()=>Float32Array.from(Array.from({length:t},()=>v.map(O.MathUtils.randFloatSpread)).flat()),[t,...v]),g=Y(t,c,Math.random),y=Y(t,i),j=Y(t,r),b=Y(3*t,e),S=Y(void 0===d?3*t:t,W(d)?d:new O.Color(d),()=>1);return(0,a.useFrame)(e=>{p.current&&p.current.material&&(p.current.material.time=e.clock.elapsedTime)}),n.useImperativeHandle(m,()=>p.current,[]),n.createElement("points",(0,l.default)({key:`particle-${t}-${JSON.stringify(s)}`},f,{ref:p}),n.createElement("bufferGeometry",null,n.createElement("bufferAttribute",{attach:"attributes-position",args:[x,3]}),n.createElement("bufferAttribute",{attach:"attributes-size",args:[g,1]}),n.createElement("bufferAttribute",{attach:"attributes-opacity",args:[y,1]}),n.createElement("bufferAttribute",{attach:"attributes-speed",args:[j,1]}),n.createElement("bufferAttribute",{attach:"attributes-color",args:[S,3]}),n.createElement("bufferAttribute",{attach:"attributes-noise",args:[b,3]})),u||n.createElement("sparklesImplMaterial",{transparent:!0,pixelRatio:h,depthWrite:!1}))});var Z=e.i(60099),J=e.i(78140),X=e.i(68834);let Q=0,ee=(0,X.create)(e=>(c.DefaultLoadingManager.onStart=(t,r,i)=>{e({active:!0,item:t,loaded:r,total:i,progress:(r-Q)/(i-Q)*100})},c.DefaultLoadingManager.onLoad=()=>{e({active:!1})},c.DefaultLoadingManager.onError=t=>e(e=>({errors:[...e.errors,t]})),c.DefaultLoadingManager.onProgress=(t,r,i)=>{r===i&&(Q=i),e({active:!0,item:t,loaded:r,total:i,progress:(r-Q)/(i-Q)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0})),et={uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:` + varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + } + `,fragmentShader:` + uniform sampler2D tDiffuse; + uniform float h; + + varying vec2 vUv; + + void main() { + + vec4 sum = vec4( 0.0 ); + + sum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051; + sum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918; + sum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245; + sum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633; + sum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531; + sum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245; + sum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918; + sum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051; + + gl_FragColor = sum; + + } + `},er={uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:` + varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + } + `,fragmentShader:` + + uniform sampler2D tDiffuse; + uniform float v; + + varying vec2 vUv; + + void main() { + + vec4 sum = vec4( 0.0 ); + + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918; + sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051; + + gl_FragColor = sum; + + } + `},ei=n.forwardRef(({scale:e=10,frames:t=1/0,opacity:r=1,width:i=1,height:s=1,blur:d=1,near:u=0,far:f=10,resolution:m=512,smooth:p=!0,color:h="#000000",depthWrite:v=!1,renderOrder:x,...g},y)=>{let j,b,S=n.useRef(null),M=(0,o.useThree)(e=>e.scene),w=(0,o.useThree)(e=>e.gl),E=n.useRef(null);i*=Array.isArray(e)?e[0]:e||1,s*=Array.isArray(e)?e[1]:e||1;let[A,_,U,z,R,P,D]=n.useMemo(()=>{let e=new c.WebGLRenderTarget(m,m),t=new c.WebGLRenderTarget(m,m);t.texture.generateMipmaps=e.texture.generateMipmaps=!1;let r=new c.PlaneGeometry(i,s).rotateX(Math.PI/2),n=new c.Mesh(r),a=new c.MeshDepthMaterial;a.depthTest=a.depthWrite=!1,a.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new c.Color(h)}},e.fragmentShader=e.fragmentShader.replace("void main() {",`uniform vec3 ucolor; + void main() { + `),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};let o=new c.ShaderMaterial(et),l=new c.ShaderMaterial(er);return l.depthTest=o.depthTest=!1,[e,r,a,n,o,l,t]},[m,i,s,e,h]),I=e=>{z.visible=!0,z.material=R,R.uniforms.tDiffuse.value=A.texture,R.uniforms.h.value=e/256,w.setRenderTarget(D),w.render(z,E.current),z.material=P,P.uniforms.tDiffuse.value=D.texture,P.uniforms.v.value=e/256,w.setRenderTarget(A),w.render(z,E.current),z.visible=!1},L=0;return(0,a.useFrame)(()=>{E.current&&(t===1/0||LS.current,[]),n.createElement("group",(0,l.default)({"rotation-x":Math.PI/2},g,{ref:S}),n.createElement("mesh",{renderOrder:x,geometry:_,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},n.createElement("meshBasicMaterial",{transparent:!0,map:A.texture,opacity:r,depthWrite:v})),n.createElement("orthographicCamera",{ref:E,args:[-i/2,i/2,s/2,-s/2,u,f]}))});var en=e.i(43257),es=e.i(24205);let ea=n.forwardRef(({light:e,args:t,map:r,toneMapped:i=!1,color:s="white",form:a="rect",intensity:o=1,scale:d=1,target:u=[0,0,0],children:f,...m},p)=>{let h=n.useRef(null);return n.useImperativeHandle(p,()=>h.current,[]),n.useLayoutEffect(()=>{f||m.material||((0,es.applyProps)(h.current.material,{color:s}),h.current.material.color.multiplyScalar(o))},[s,o,f,m.material]),n.useLayoutEffect(()=>{m.rotation||h.current.quaternion.identity(),u&&!m.rotation&&("boolean"==typeof u?h.current.lookAt(0,0,0):h.current.lookAt(Array.isArray(u)?new c.Vector3(...u):u))},[u,m.rotation]),d=Array.isArray(d)&&2===d.length?[d[0],d[1],1]:d,n.createElement("mesh",(0,l.default)({ref:h,scale:d},m),"circle"===a?n.createElement("ringGeometry",{args:t||[0,.5,64]}):"ring"===a?n.createElement("ringGeometry",{args:t||[.25,.5,64]}):"rect"===a||"plane"===a?n.createElement("planeGeometry",{args:t||[1,1]}):"box"===a?n.createElement("boxGeometry",{args:t||[1,1,1]}):n.createElement(a,{args:t}),f||n.createElement("meshBasicMaterial",{toneMapped:i,map:r,side:c.DoubleSide}),e&&n.createElement("pointLight",(0,l.default)({castShadow:!0},e)))});function eo({all:e,scene:t,camera:r}){let i=(0,o.useThree)(({gl:e})=>e),s=(0,o.useThree)(({camera:e})=>e),a=(0,o.useThree)(({scene:e})=>e);return n.useLayoutEffect(()=>{let n=[];e&&(t||a).traverse(e=>{!1===e.visible&&(n.push(e),e.visible=!0)}),i.compile(t||a,r||s);let o=new c.WebGLCubeRenderTarget(128);new c.CubeCamera(.01,1e5,o).update(i,t||a),o.dispose(),n.forEach(e=>e.visible=!1)},[]),null}var el=e.i(79877),ec=e.i(33623),ed=e.i(48228);let eu="#eef1f6",ef="#22C55E",em="#8B5CF6",ep="#3B82F6",eh="#F59E0B",ev="#C01227";function ex(){let e=(0,o.useThree)(e=>e.gl),t=(0,n.useRef)(null),r=(0,n.useRef)({t:0,frames:0,mount:0,firstFrame:0,nav:0});return(0,n.useEffect)(()=>{let e=r.current;e.mount=performance.now();let i=performance.getEntriesByType("navigation")[0];e.nav=i?Math.round(i.loadEventEnd||i.domContentLoadedEventEnd):0;let n=document.createElement("div");return n.style.cssText="position:fixed;top:10px;left:10px;z-index:99999;font:11px/1.5 ui-monospace,monospace;background:rgba(0,0,0,.82);color:#39ff14;padding:8px 11px;border-radius:7px;white-space:pre;pointer-events:none",document.body.appendChild(n),t.current=n,()=>{n.remove()}},[]),(0,a.useFrame)((i,n)=>{let s=r.current;if(!s.firstFrame&&s.mount&&(s.firstFrame=performance.now()-s.mount),s.frames++,s.t+=n,s.t>=.5&&t.current){let r=e.info.render,i=e.info.memory;t.current.textContent=`FPS ${(s.frames/s.t).toFixed(0)} +draws ${r.calls}${r.calls<100?" ✓":" ⚠"} +triangles ${r.triangles.toLocaleString()} +geometries ${i.geometries} +textures ${i.textures} +programs ${e.info.programs?.length??0} +page load ${s.nav}ms +WF3 1st fr ${Math.round(s.firstFrame)}ms`,s.frames=0,s.t=0}}),null}function eg({progress:e,reduced:t,isMobile:r}){let i=(0,n.useRef)(new c.Vector3(...(0,ed.cameraFor)(0).look));return(0,a.useFrame)((n,s)=>{let a=(e.current??0)*(ed.N-1),{pos:o,look:l}=(0,ed.cameraFor)(a),c=n.clock.elapsedTime,d=+!!r,u=o[0]*(1-.25*d)+.22*Math.sin(.22*c),f=o[1]+1.1*d+.1*Math.sin(.3*c),m=o[2]+3*d,p=t?1:1-Math.pow(.0025,s),h=n.camera;h.position.x+=(u-h.position.x)*p,h.position.y+=(f-h.position.y)*p,h.position.z+=(m-h.position.z)*p,i.current.x+=(l[0]-i.current.x)*p,i.current.y+=(l[1]-i.current.y)*p,i.current.z+=(l[2]-i.current.z)*p,h.lookAt(i.current)}),null}function ey(e,t,r){let i=(0,n.useRef)([]);return(0,n.useEffect)(()=>{r||(i.current=[])},[r]),(0,a.useFrame)(()=>{if(!r)return;let n=(t.current??0)*(ed.N-1),s=c.MathUtils.clamp(1-(Math.abs(n-e)-.2)/.3,0,1);for(let e of i.current)e.style.opacity=String(s)}),e=>{e&&!i.current.includes(e)&&i.current.push(e)}}function ej({position:e,color:t,size:r=.1,pulse:s=!1}){let o=(0,n.useRef)(null);return(0,a.useFrame)(t=>{o.current&&o.current.scale.setScalar(1+.2*Math.sin(2*t.clock.elapsedTime+e[0]))}),(0,i.jsxs)("group",{position:e,children:[(0,i.jsxs)("mesh",{children:[(0,i.jsx)("sphereGeometry",{args:[r,16,16]}),(0,i.jsx)("meshStandardMaterial",{color:t,emissive:t,emissiveIntensity:1,toneMapped:!1})]}),s&&(0,i.jsxs)("mesh",{ref:o,rotation:[-Math.PI/2,0,0],position:[0,-(.6*r),0],children:[(0,i.jsx)("ringGeometry",{args:[1.5*r,1.8*r,24]}),(0,i.jsx)("meshBasicMaterial",{color:t,transparent:!0,opacity:.5,side:c.DoubleSide,toneMapped:!1})]})]})}function eb({curve:e,color:t,speed:r=.4,offset:s=0,size:o=.06}){let l=(0,n.useRef)(null);return(0,a.useFrame)(t=>{l.current&&l.current.position.copy(e.getPoint((t.clock.elapsedTime*r+s)%1))}),(0,i.jsxs)("mesh",{ref:l,children:[(0,i.jsx)("sphereGeometry",{args:[o,8,8]}),(0,i.jsx)("meshBasicMaterial",{color:t,toneMapped:!1})]})}function eS(e,t){return new c.LineCurve3(new c.Vector3(...e),new c.Vector3(...t))}let eM={bike:"/models/scooter.glb",auto:"/models/auto_rickshaw.glb",truck:"/models/truck.glb",van:"/models/van.glb"},ew={bike:{size:1,rotY:.72*Math.PI},auto:{size:.92,rotY:.72*Math.PI},truck:{size:1.2,rotY:.72*Math.PI},van:{size:1.02,rotY:.72*Math.PI}};function eE(e,t){let r=e.clone(!0),i=[];r.traverse(e=>{if(/wheel|tyre|tire|\brim\b/i.test(e.name)&&i.push(e),!e.isMesh)return;e.castShadow=!0,e.receiveShadow=!1;let t=e.material,r=e=>{"transmission"in e&&e.transmission>0&&(e.transmission=0,e.transparent=!1,e.opacity=1),"envMapIntensity"in e&&(e.envMapIntensity=.4),e.needsUpdate=!0};Array.isArray(t)?t.forEach(r):r(t)});let n=new c.Box3().setFromObject(r),s=new c.Vector3;n.getSize(s);let a=new c.Vector3;n.getCenter(a);let o=t/Math.max(s.x,s.y,s.z,1e-4);return r.scale.setScalar(o),r.position.set(-a.x*o,-n.min.y*o,-a.z*o),{root:r,wheels:i}}function eA({kind:e,awake:t=!0}){let r=ew[e],{scene:s}=(0,J.useGLTF)(eM[e]),{root:o}=(0,n.useMemo)(()=>eE(s,r.size),[s,r]),l=(0,n.useRef)(null);return(0,a.useFrame)(r=>{let i=l.current;if(!i||!t)return;let n=r.clock.elapsedTime;switch(e){case"bike":i.position.y=.025*Math.abs(Math.sin(3*n)),i.rotation.z=.012*Math.sin(3*n);break;case"auto":i.rotation.z=.045*Math.sin(1.6*n),i.position.x=.02*Math.sin(1.6*n);break;case"truck":i.position.y=.012*Math.sin(+n),i.rotation.x=.006*Math.sin(.8*n);break;default:i.position.y=.05+.03*Math.sin(1.3*n)}}),(0,i.jsx)("group",{ref:l,rotation:[0,r.rotY,0],children:(0,i.jsx)("primitive",{object:o})})}function e_({route:e,reduced:t,i:r,progress:s,awake:o=!0}){let{scene:l}=(0,J.useGLTF)(eM.truck),d=(0,n.useMemo)(()=>eE(l,.85),[l]),u=(0,n.useRef)([]);(0,n.useEffect)(()=>{u.current=d.wheels},[d]);let f=(0,n.useRef)(null),m=(0,n.useRef)(null),p=(0,n.useMemo)(()=>new c.Quaternion,[]),h=(0,n.useMemo)(()=>new c.Euler,[]),v=(0,n.useRef)(0);return(0,a.useFrame)((i,n)=>{let a=f.current;if(!a||!o)return;let l=(s.current??0)*(ed.N-1),d=c.MathUtils.clamp(l-(r-.5),0,1),x=e.getPointAt(d);a.position.set(x.x,.02,x.z);let g=e.getPointAt(Math.min(1,d+.02)),y=g.x-x.x,j=g.z-x.z;if(y*y+j*j>1e-7&&(h.set(0,Math.atan2(-j,y)+0,0),p.setFromEuler(h),a.quaternion.slerp(p,t?1:1-Math.pow(6e-4,n))),!t){let e=Math.abs(d-v.current),t=u.current;for(let r=0;rJ.useGLTF.preload(e));let eU=[{id:"A",veh:"EV Bike",icon:"🚲",x:-2,kind:"bike"},{id:"B",veh:"Auto",icon:"🛺",x:-.67,kind:"auto"},{id:"C",veh:"Cargo Truck",icon:"🚚",x:.67,kind:"truck"},{id:"D",veh:"EV Van",icon:"🚐",x:2,kind:"van"}];function ez({curve:e,offset:t}){let r=(0,n.useRef)(null),s=(0,n.useRef)(null);return(0,a.useFrame)(i=>{let n=(.3*i.clock.elapsedTime+t)%1;r.current&&(r.current.position.copy(e.getPoint(n)),r.current.rotation.y=6*n),s.current&&(s.current.opacity=n>.9?(1-n)*10:n<.08?12*n:1)}),(0,i.jsxs)("mesh",{ref:r,children:[(0,i.jsx)("boxGeometry",{args:[.16,.12,.16]}),(0,i.jsx)("meshStandardMaterial",{ref:s,color:"#ffffff",emissive:ef,emissiveIntensity:.6,transparent:!0,metalness:.1,roughness:.5,toneMapped:!1})]})}function eR({rider:e,register:t,awake:r,focused:s}){return(0,i.jsxs)("group",{position:[e.x,0,.1],children:[(0,i.jsxs)("mesh",{position:[0,.014,0],rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("ringGeometry",{args:[.52,.64,36]}),(0,i.jsx)("meshBasicMaterial",{color:ef,transparent:!0,opacity:.6,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsxs)("mesh",{position:[0,.008,0],rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("circleGeometry",{args:[.52,36]}),(0,i.jsx)("meshBasicMaterial",{color:ef,transparent:!0,opacity:.08,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsx)("group",{position:[0,.02,0],children:(0,i.jsx)(n.Suspense,{fallback:null,children:(0,i.jsx)(eA,{kind:e.kind,awake:r})})}),s&&(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[0,1.5,0],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsxs)("div",{className:"dm-st3d-chip",ref:t,children:[(0,i.jsx)("span",{className:"dm-st3d-chip__ico",children:e.icon}),(0,i.jsxs)("span",{className:"dm-st3d-chip__txt",children:[(0,i.jsxs)("b",{children:["Rider ",e.id]}),e.veh]})]})})]})}let eP=[3.3,.45,-.7],eD=[0,.55,-1.4],eI=n.default.memo(function({i:e,progress:t,reduced:r,awake:s,focused:o}){let l=ey(e,t,s),d=(0,n.useRef)(null),u=(0,n.useRef)(null);(0,a.useFrame)((e,t)=>{if(s){if(d.current)if(r)d.current.textContent="59";else{let t=e.clock.elapsedTime%3.6;d.current.textContent=String(Math.min(59,Math.round(t/2.4*59)))}u.current&&!r&&(u.current.rotation.z+=.5*t)}});let f=(0,n.useMemo)(()=>eS(eP,eD),[]),m=(0,n.useMemo)(()=>eU.map(e=>eS(eD,[e.x,.12,.1])),[]);return(0,i.jsxs)("group",{position:(0,ed.districtPosition)(e),visible:s,children:[(0,i.jsx)(ej,{position:eP,color:ef,size:.12}),(0,i.jsx)(G,{points:f.getPoints(2),color:ef,lineWidth:1.8,transparent:!0,opacity:.5,toneMapped:!1}),s&&!r&&[0,.5].map(e=>(0,i.jsx)(ez,{curve:f,offset:e},e)),(0,i.jsxs)("group",{position:[0,0,-1.4],children:[(0,i.jsxs)("mesh",{position:[0,.02,0],rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("ringGeometry",{args:[.95,1.12,44]}),(0,i.jsx)("meshBasicMaterial",{color:ef,transparent:!0,opacity:.5,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsxs)("mesh",{position:[0,.1,0],children:[(0,i.jsx)("cylinderGeometry",{args:[.72,.86,.2,6]}),(0,i.jsx)("meshStandardMaterial",{color:"#102a1d",metalness:.4,roughness:.45,emissive:ef,emissiveIntensity:.12})]}),(0,i.jsxs)("mesh",{position:[0,.55,0],children:[(0,i.jsx)("icosahedronGeometry",{args:[.32,1]}),(0,i.jsx)("meshStandardMaterial",{color:ef,emissive:ef,emissiveIntensity:1.2,toneMapped:!1,flatShading:!0})]}),(0,i.jsxs)("mesh",{ref:u,position:[0,.55,0],rotation:[Math.PI/2.4,0,0],children:[(0,i.jsx)("torusGeometry",{args:[.5,.025,10,40]}),(0,i.jsx)("meshStandardMaterial",{color:ef,emissive:ef,emissiveIntensity:1,toneMapped:!1})]})]}),m.map((e,t)=>(0,i.jsxs)("group",{children:[(0,i.jsx)(G,{points:e.getPoints(2),color:ef,lineWidth:1.6,transparent:!0,opacity:.45,toneMapped:!1}),s&&!r&&(0,i.jsx)(eb,{curve:e,color:ef,speed:.55,offset:.22*t})]},t)),(0,i.jsx)(ei,{position:[0,.02,.1],scale:[7.5,2.6],resolution:512,blur:2.6,far:1.2,opacity:.4,frames:1,color:"#1e293b"}),eU.map(e=>(0,i.jsx)(eR,{rider:e,register:l,awake:s,focused:o},e.id)),o&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[eP[0],eP[1]+.5,eP[2]],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsx)("div",{className:"dm-st3d-tag",style:{"--tc":ef},ref:l,children:"📄 orders.csv"})}),(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[0,1.8,-1.4],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsxs)("div",{className:"dm-st3d-count",ref:l,children:[(0,i.jsx)("span",{ref:d,children:"0"})," Orders"]})}),(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[0,1.32,-1.4],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsx)("div",{className:"dm-st3d-tag",style:{"--tc":ef},ref:l,children:"🤖 AI Assignment Hub"})})]})]})}),eL=[{name:"EV Aware",unified:!0},{name:"Multi Trip",unified:!0},{name:"Time Aware",unified:!0},{name:"Balanced",unified:!1},{name:"Fuel Saver",unified:!1},{name:"Proximity",unified:!1}],eC=[0,1.45,-2.7],eB=n.default.memo(function({i:e,progress:t,reduced:r,awake:s,focused:o}){let l=ey(e,t,s),d=(0,n.useRef)(null),u=(0,n.useRef)(null);(0,a.useFrame)((e,t)=>{!r&&s&&(d.current&&(d.current.rotation.z+=.6*t),u.current&&(u.current.rotation.y+=.4*t))});let f=(0,n.useMemo)(()=>eL.map((e,t)=>{let r=-.3+.18*Math.abs(t-2.5),i=[-3.4+1.36*t,.62,r];return{...e,end:i,curve:eS(eC,i)}}),[]);return(0,i.jsxs)("group",{position:(0,ed.districtPosition)(e),visible:s,children:[(0,i.jsxs)("mesh",{position:[0,.06,-.6],children:[(0,i.jsx)("cylinderGeometry",{args:[5.4,5.6,.12,56]}),(0,i.jsx)("meshStandardMaterial",{color:"#161b30",metalness:.5,roughness:.42,emissive:em,emissiveIntensity:.07})]}),(0,i.jsxs)("mesh",{position:[0,.13,-.6],rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("ringGeometry",{args:[5.2,5.42,64]}),(0,i.jsx)("meshBasicMaterial",{color:em,transparent:!0,opacity:.4,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsxs)("mesh",{position:[0,.65,-2.7],children:[(0,i.jsx)("cylinderGeometry",{args:[.4,.62,1.2,24]}),(0,i.jsx)("meshStandardMaterial",{color:"#2a3350",metalness:.5,roughness:.4})]}),(0,i.jsxs)("mesh",{ref:u,position:eC,children:[(0,i.jsx)("icosahedronGeometry",{args:[.6,1]}),(0,i.jsx)("meshStandardMaterial",{color:em,emissive:em,emissiveIntensity:1.3,toneMapped:!1,flatShading:!0})]}),(0,i.jsxs)("mesh",{ref:d,position:eC,rotation:[Math.PI/2.4,0,0],children:[(0,i.jsx)("torusGeometry",{args:[.98,.03,10,44]}),(0,i.jsx)("meshStandardMaterial",{color:em,emissive:em,emissiveIntensity:1.1,toneMapped:!1})]}),o&&(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[0,2.5,-2.7],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsx)("div",{className:"dm-st3d-tag",style:{"--tc":em},ref:l,children:"🤖 AI Engine"})}),f.map((e,t)=>{let n=e.unified?em:"#a99bd6";return(0,i.jsxs)("group",{children:[(0,i.jsx)(G,{points:e.curve.getPoints(2),color:n,lineWidth:e.unified?2.4:1.6,transparent:!0,opacity:e.unified?.7:.5,toneMapped:!1}),s&&!r&&(0,i.jsx)(eb,{curve:e.curve,color:n,speed:.5,offset:.16*t,size:e.unified?.075:.06}),(0,i.jsxs)("mesh",{position:[e.end[0],.135,e.end[2]],rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("ringGeometry",{args:[.34,.44,28]}),(0,i.jsx)("meshBasicMaterial",{color:n,transparent:!0,opacity:e.unified?.6:.4,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsx)(ej,{position:e.end,color:n,size:e.unified?.15:.11}),o&&(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[e.end[0],e.end[1]+.62,e.end[2]],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsx)("div",{className:`dm-st3d-tag ${e.unified?"is-u":"is-muted"}`,style:{"--tc":e.unified?em:"#94a3b8"},ref:l,children:e.name})})]},e.name)})]})}),eF=[-2.9,1.9],eT=[[-1.5,-2.6],[.1,-1],[1.7,-2.3],[2.7,.3],[.9,1.5],[-.6,.5]],ek=[{t:"Route Optimization",p:[-2.7,2.5,-.4]},{t:"Battery Validation",p:[2.6,2.9,-1.2]},{t:"SLA Validation",p:[-2.3,2,1.6]},{t:"Feasibility Check",p:[2.5,1.7,1.8]}],eG=["Route Node A",null,"Route Node B",null,"Route Node C","📦 Delivery"];function eO({pos:e,i:t,progress:r}){let s=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,a.useFrame)(e=>{let i=(r.current??0)*(ed.N-1),n=c.MathUtils.clamp(i-(t-.5),0,1);if(s.current&&o.current)if(n>.85){let t=e.clock.elapsedTime%1.1/1.1;s.current.scale.setScalar(1+3*t),o.current.opacity=(1-t)*.6}else o.current.opacity=0}),(0,i.jsxs)("mesh",{ref:s,position:e,rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("ringGeometry",{args:[.2,.3,32]}),(0,i.jsx)("meshBasicMaterial",{ref:o,color:ep,transparent:!0,opacity:0,side:c.DoubleSide,toneMapped:!1})]})}function eN({pos:e,i:t,progress:r}){let s=(0,n.useRef)(null);return(0,a.useFrame)(()=>{let e=(r.current??0)*(ed.N-1),i=c.MathUtils.clamp(e-(t-.5),0,1);s.current&&(s.current.style.opacity=i>.9?"1":"0")}),(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:e,zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsx)("div",{className:"dm-st3d-tag is-win",style:{"--tc":ep,opacity:0},ref:s,children:"✓ Delivered"})})}let eV=n.default.memo(function({i:e,progress:t,reduced:r,awake:s,focused:a}){let o=ey(e,t,s),l=(0,n.useMemo)(()=>{let e=[eF,...eT].map(([e,t])=>new c.Vector3(e,.12,t));return new c.CatmullRomCurve3(e,!1,"catmullrom",.2)},[]),d=(0,n.useMemo)(()=>l.getPoints(100),[l]),u=eT[eT.length-1];return(0,i.jsxs)("group",{position:(0,ed.districtPosition)(e),visible:s,children:[(0,i.jsx)(G,{points:d,color:ep,lineWidth:2.6,transparent:!0,opacity:.8,toneMapped:!1}),(0,i.jsx)(n.Suspense,{fallback:null,children:(0,i.jsx)(e_,{route:l,reduced:r,i:e,progress:t,awake:s})}),(0,i.jsxs)("group",{position:[eF[0],0,eF[1]],children:[(0,i.jsxs)("mesh",{position:[0,.02,0],rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("ringGeometry",{args:[.62,.74,36]}),(0,i.jsx)("meshBasicMaterial",{color:ep,transparent:!0,opacity:.5,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsxs)("mesh",{position:[0,.13,0],children:[(0,i.jsx)("cylinderGeometry",{args:[.5,.58,.26,6]}),(0,i.jsx)("meshStandardMaterial",{color:"#0f2036",emissive:ep,emissiveIntensity:.15,metalness:.4,roughness:.45})]}),(0,i.jsx)(ej,{position:[0,.52,0],color:ep,size:.14})]}),eT.map(([e,t],r)=>{let n=r===eT.length-1;return(0,i.jsxs)("group",{position:[e,0,t],children:[(0,i.jsxs)("mesh",{position:[0,.02,0],rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("ringGeometry",{args:[.16,.23,20]}),(0,i.jsx)("meshBasicMaterial",{color:ep,transparent:!0,opacity:.55,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsxs)("mesh",{position:[0,.3,0],children:[(0,i.jsx)("cylinderGeometry",{args:[.03,.03,.6,8]}),(0,i.jsx)("meshStandardMaterial",{color:ep,emissive:ep,emissiveIntensity:.4})]}),(0,i.jsx)(ej,{position:[0,.66,0],color:ep,size:n?.16:.12})]},r)}),s&&(0,i.jsx)(eO,{pos:[u[0],.02,u[1]],i:e,progress:t}),a&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[eF[0],1.05,eF[1]],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsx)("div",{className:"dm-st3d-tag",style:{"--tc":ep},ref:o,children:"🏢 Dispatch Hub"})}),eT.map(([e,t],r)=>{let n=eG[r];return n?(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[e,1.06,t],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsx)("div",{className:"dm-st3d-tag",style:{"--tc":ep},ref:o,children:n})},r):null}),(0,i.jsx)(eN,{pos:[u[0],1.42,u[1]],i:e,progress:t}),ek.map(e=>(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:e.p,zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsxs)("div",{className:"dm-st3d-tag",style:{"--tc":ep},ref:o,children:["✓ ",e.t]})},e.t)),(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[0,3.2,-.4],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsxs)("div",{className:"dm-st3d-score",style:{"--tc":ep},ref:o,children:["🗺️ Route optimized · ",(0,i.jsx)("b",{children:"−18%"})," distance"]})})]})]})}),eH=[{n:"Fulfillment",v:88,a:-.66},{n:"SLA Compliance",v:95,a:-.22},{n:"Efficiency",v:92,a:.22},{n:"Battery",v:100,a:.66}],eW=n.default.memo(function({i:e,progress:t,awake:r,focused:s}){let a=ey(e,t,r),o=(0,n.useMemo)(()=>eH.map(e=>{let t=[3.6*Math.sin(e.a),1.5,-1.4+(1-Math.cos(e.a))*3.6];return{...e,p:t,rotY:-e.a}}),[]);return(0,i.jsxs)("group",{position:(0,ed.districtPosition)(e),visible:r,children:[(0,i.jsxs)("mesh",{position:[0,.45,1.4],rotation:[-.12,0,0],children:[(0,i.jsx)("boxGeometry",{args:[5.6,.18,1.5]}),(0,i.jsx)("meshStandardMaterial",{color:"#dfe4f1",metalness:.4,roughness:.4})]}),(0,i.jsxs)("mesh",{position:[0,.12,.9],children:[(0,i.jsx)("boxGeometry",{args:[5.2,.24,.6]}),(0,i.jsx)("meshStandardMaterial",{color:"#cdd5e6",metalness:.3,roughness:.5})]}),o.map(e=>(0,i.jsxs)("group",{position:e.p,rotation:[0,e.rotY,0],children:[(0,i.jsx)(u,{args:[1.7,1.15,.06],radius:.06,smoothness:2,children:(0,i.jsx)("meshStandardMaterial",{color:"#ffffff",emissive:eh,emissiveIntensity:.18,metalness:.1,roughness:.4,transparent:!0,opacity:.92})}),s&&(0,i.jsx)(Z.Html,{center:!0,distanceFactor:8,position:[0,0,.05],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsxs)("div",{className:"dm-st3d-kpi",style:{"--tc":eh},ref:a,children:[(0,i.jsx)("span",{className:"dm-st3d-kpi__n",children:e.n}),(0,i.jsxs)("span",{className:"dm-st3d-kpi__v",children:[e.v,(0,i.jsx)("i",{children:"%"})]}),(0,i.jsx)("span",{className:"dm-st3d-kpi__bar",children:(0,i.jsx)("i",{style:{width:`${e.v}%`}})})]})})]},e.n)),s&&(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[0,3.1,-.4],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsxs)("div",{className:"dm-st3d-score",style:{"--tc":eh},ref:a,children:["Performance Grade ",(0,i.jsx)("b",{children:"A"})," · 4.5 / 5"]})})]})}),e$=[{n:"EV Aware",v:88,x:-2.4,win:!0},{n:"Multi Trip",v:79,x:-.8,win:!1},{n:"Balanced",v:71,x:.8,win:!1},{n:"Proximity",v:64,x:2.4,win:!1}];function eq({p:e,register:t,focused:r}){let n=.6+e.v/100*2.2,s=e.win?ev:"#94a3b8";return(0,i.jsxs)("group",{position:[e.x,0,-.6],children:[(0,i.jsxs)("mesh",{position:[0,n/2+.1,0],children:[(0,i.jsx)("boxGeometry",{args:[1,n,1]}),(0,i.jsx)("meshStandardMaterial",{color:s,emissive:s,emissiveIntensity:e.win?.7:.15,metalness:.2,roughness:.4,transparent:!0,opacity:e.win?.96:.7,toneMapped:!1})]}),r&&(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[0,n+.45,0],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsxs)("div",{className:`dm-st3d-tag ${e.win?"is-win":"is-muted"}`,style:{"--tc":s},ref:t,children:[(0,i.jsxs)("b",{children:[e.v,"%"]})," ",e.n]})})]})}let eY=n.default.memo(function({i:e,progress:t,reduced:r,isMobile:s,awake:o,focused:l}){let d=ey(e,t,o),u=(0,n.useRef)(null);return(0,a.useFrame)(e=>{u.current&&!r&&o&&(u.current.position.y=.6+.88*2.2+.95+.08*Math.sin(1.4*e.clock.elapsedTime),u.current.rotation.y+=.01)}),(0,i.jsxs)("group",{position:(0,ed.districtPosition)(e),visible:o,children:[(0,i.jsxs)("mesh",{position:[0,.05,-.6],children:[(0,i.jsx)("cylinderGeometry",{args:[4.3,4.5,.12,48]}),(0,i.jsx)("meshStandardMaterial",{color:"#1d1622",metalness:.5,roughness:.42,emissive:ev,emissiveIntensity:.06})]}),(0,i.jsxs)("mesh",{position:[0,.12,-.6],rotation:[-Math.PI/2,0,0],children:[(0,i.jsx)("ringGeometry",{args:[4.1,4.32,56]}),(0,i.jsx)("meshBasicMaterial",{color:ev,transparent:!0,opacity:.35,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsxs)("mesh",{position:[-2.4,.14,-.6],children:[(0,i.jsx)("cylinderGeometry",{args:[.85,.9,.14,28]}),(0,i.jsx)("meshStandardMaterial",{color:ev,emissive:ev,emissiveIntensity:.9,toneMapped:!1})]}),e$.map(e=>(0,i.jsx)(eq,{p:e,register:d,focused:l},e.n)),(0,i.jsxs)("mesh",{position:[-2.4,3,-.6],children:[(0,i.jsx)("coneGeometry",{args:[1,2.6,28,1,!0]}),(0,i.jsx)("meshBasicMaterial",{color:ev,transparent:!0,opacity:.07,side:c.DoubleSide,toneMapped:!1})]}),(0,i.jsxs)("group",{ref:u,position:[-2.4,3.5,-.6],children:[(0,i.jsxs)("mesh",{position:[0,.18,0],children:[(0,i.jsx)("sphereGeometry",{args:[.26,24,12,0,2*Math.PI,0,Math.PI/1.7]}),(0,i.jsx)("meshStandardMaterial",{color:"#FFD45A",emissive:"#FFB020",emissiveIntensity:1.2,metalness:.6,roughness:.25,toneMapped:!1})]}),(0,i.jsxs)("mesh",{position:[0,-.06,0],children:[(0,i.jsx)("cylinderGeometry",{args:[.05,.05,.24,10]}),(0,i.jsx)("meshStandardMaterial",{color:"#FFD45A",emissive:"#FFB020",emissiveIntensity:1,toneMapped:!1})]}),(0,i.jsxs)("mesh",{position:[0,-.22,0],children:[(0,i.jsx)("cylinderGeometry",{args:[.18,.22,.1,16]}),(0,i.jsx)("meshStandardMaterial",{color:"#FFD45A",emissive:"#FFB020",emissiveIntensity:1,toneMapped:!1})]})]}),o&&!r&&(0,i.jsx)(K,{count:s?12:16,scale:[5,4,4],position:[-2.4,2.6,-.6],size:3.2,speed:.5,opacity:.9,color:"#ff9aa9"}),l&&(0,i.jsx)(Z.Html,{center:!0,distanceFactor:9,position:[.7,3,-.6],zIndexRange:[20,0],pointerEvents:"none",children:(0,i.jsxs)("div",{className:"dm-st3d-winner3d",ref:d,children:[(0,i.jsx)("span",{className:"dm-st3d-winner3d__top",children:"🏆 Best Strategy"}),(0,i.jsx)("span",{className:"dm-st3d-winner3d__name",children:"EV Aware"}),(0,i.jsxs)("span",{className:"dm-st3d-winner3d__row",children:[(0,i.jsx)("b",{children:"88%"})," Performance Score"]}),(0,i.jsxs)("span",{className:"dm-st3d-winner3d__row",children:[(0,i.jsx)("b",{children:"52/59"})," Orders Fulfilled"]})]})})]})});function eK(){let e=(0,n.useMemo)(()=>{let e=[];for(let t=0;te.getPoints(110),[e]);return(0,i.jsxs)("group",{children:[(0,i.jsx)(G,{points:t,color:"#9aa6c4",lineWidth:2,transparent:!0,opacity:.5,toneMapped:!1}),[0,.33,.66].map(t=>(0,i.jsx)(eb,{curve:e,color:"#c7cee0",speed:.06,offset:t,size:.09},t))]})}function eZ(){let e=-(13*(ed.N-1))/2,t=(0,n.useMemo)(()=>{let e=new c.CanvasTexture(function(){let e=document.createElement("canvas");e.width=e.height=256;let t=e.getContext("2d");t.fillStyle="#e7ebf3",t.fillRect(0,0,256,256),t.strokeStyle="#d3dae8",t.lineWidth=1.5;for(let e=0;e<=8;e++){let r=e/8*256+.5;t.beginPath(),t.moveTo(r,0),t.lineTo(r,256),t.stroke(),t.beginPath(),t.moveTo(0,r),t.lineTo(256,r),t.stroke()}return t.strokeStyle="#c0cadd",t.lineWidth=3,t.strokeRect(0,0,256,256),e}());return e.wrapS=e.wrapT=c.RepeatWrapping,e.repeat.set(52,52),e.colorSpace=c.SRGBColorSpace,e.anisotropy=4,e},[]);return(0,i.jsxs)("mesh",{rotation:[-Math.PI/2,0,0],position:[0,-.02,e],children:[(0,i.jsx)("planeGeometry",{args:[120,(ed.N+3)*13]}),(0,i.jsx)("meshStandardMaterial",{map:t,color:"#ffffff",metalness:.05,roughness:.92})]})}function eJ({onReady:e}){let{active:t,progress:r,errors:i=[]}=ee(),s=(0,o.useThree)(e=>e.gl),l=(0,o.useThree)(e=>e.scene),c=(0,o.useThree)(e=>e.camera),d=(0,n.useRef)(!1),u=(0,n.useRef)(!1),f=(0,n.useRef)(!1),m=(0,n.useRef)(0),p=(0,n.useRef)(0),h=(0,n.useRef)(0),[v,x]=(0,n.useState)(!1);(0,n.useEffect)(()=>{h.current=performance.now();let e=setInterval(()=>{performance.now()-h.current>3e3&&(x(!0),clearInterval(e))},200);return()=>clearInterval(e)},[]);let g=!t&&r>=100||i&&i.length>0||v;return(0,n.useEffect)(()=>{if(!d.current&&!u.current&&!f.current&&g){u.current=!0;try{let e="function"==typeof s.getContext&&!!s.getContext()?.getExtension?.("KHR_parallel_shader_compile");("function"==typeof s.compileAsync&&e?s.compileAsync(l,c):Promise.resolve().then(()=>s.compile(l,c))).catch(e=>{console.warn("StrategyCanvas compileAsync rejected:",e)}).finally(()=>{f.current=!0})}catch(e){console.warn("StrategyCanvas compile sync error:",e),f.current=!0}}},[g,c,s,l]),(0,a.useFrame)(()=>{if(d.current||!f.current)return;p.current++;let t=s.info.render;m.current=t.calls>=12&&t.triangles>=500?m.current+1:0,(m.current>=4||p.current>=30||v)&&(d.current=!0,requestAnimationFrame(()=>e?.()))}),null}function eX({progress:e,reduced:t,isMobile:r,stage:s,active:a,perf:o,onReady:l}){let c=e=>1>=Math.abs(e-s),[d,u]=(0,n.useState)(!1);(0,n.useEffect)(()=>{a&&u(!0)},[a]);let f=d&&!t&&!r;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("color",{attach:"background",args:[eu]}),(0,i.jsx)("fog",{attach:"fog",args:[eu,12,40]}),(0,i.jsx)("ambientLight",{intensity:.55}),(0,i.jsx)("hemisphereLight",{args:["#ffffff","#dfe4ee",.5]}),(0,i.jsx)("directionalLight",{position:[6,12,8],intensity:.7}),(0,i.jsx)("directionalLight",{position:[-7,5,4],intensity:.22,color:"#cdd6ff"}),(0,i.jsxs)(en.Environment,{resolution:64,frames:1,children:[(0,i.jsx)(ea,{intensity:.5,position:[0,6,-3],scale:[12,6,1]}),(0,i.jsx)(ea,{intensity:.3,position:[-6,3,4],scale:[6,6,1],color:"#dfe6ff"}),(0,i.jsx)(ea,{intensity:.3,position:[6,2,2],scale:[5,5,1],color:"#ffffff"})]}),(0,i.jsx)(eg,{progress:e,reduced:t,isMobile:r}),(0,i.jsx)(eZ,{}),(0,i.jsx)(eK,{}),(0,i.jsx)(eI,{i:0,progress:e,reduced:t,awake:c(0),focused:0===s}),(0,i.jsx)(eB,{i:1,progress:e,reduced:t,awake:c(1),focused:1===s}),(0,i.jsx)(eV,{i:2,progress:e,reduced:t,awake:c(2),focused:2===s}),(0,i.jsx)(eW,{i:3,progress:e,awake:c(3),focused:3===s}),(0,i.jsx)(eY,{i:4,progress:e,reduced:t,isMobile:r,awake:c(4),focused:4===s}),f&&(0,i.jsx)(K,{count:16,scale:[18,7,13*ed.N],position:[0,3,-(13*(ed.N-1))/2],size:2,speed:.22,opacity:.35,color:"#9aa6c4"}),f&&(0,i.jsx)(el.EffectComposer,{multisampling:0,children:(0,i.jsx)(el.Bloom,{mipmapBlur:!0,intensity:.7,luminanceThreshold:.74,luminanceSmoothing:.06,radius:.68,kernelSize:ec.KernelSize.SMALL})}),(0,i.jsx)(eo,{all:!0}),(0,i.jsx)(eJ,{onReady:l}),o&&(0,i.jsx)(ex,{})]})}e.s(["default",0,function({progress:e,reduced:t=!1,isMobile:r=!1,active:n=!0,stage:a=0,ready:o=!1,onReady:l}){let c=new URLSearchParams(window.location.search).has("perf");return(0,i.jsx)(s.Canvas,{dpr:[1,r?1:1.25],camera:{position:[0,4,8.2],fov:50,near:.1,far:120},gl:{antialias:!1,powerPreference:"high-performance",alpha:!1},frameloop:n||!o?"always":"never",children:(0,i.jsx)(eX,{progress:e,reduced:t,isMobile:r,stage:a,active:n,perf:c,onReady:l})})}],1517)},20927,e=>{e.n(e.i(1517))}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0ckcqe5on274m.js b/build/.next/static/chunks/0ckcqe5on274m.js new file mode 100644 index 0000000..70db684 --- /dev/null +++ b/build/.next/static/chunks/0ckcqe5on274m.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,64083,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(75056),i=e.i(25234),o=e.i(28600),s=e.i(79877),a=e.i(33623);let l="#020617",c="#00E5FF",u="#22C55E",h="#EF4444",p=(e,t,r)=>e+(t-e)*r;function m(e,t,r){let n,i=(n=(r-e)/(t-e||1))<0?0:n>1?1:n;return i*i*(3-2*i)}function f(e,t,r,n){return p(e,t,1-Math.exp(-r*n))}function d(e){let t=43758.5453*Math.sin(127.1*e+311.7);return t-Math.floor(t)}var g=e.i(90072);let x=new g.Color(c),j=new g.Color(h),M=new g.Color(u),y=Array.from({length:5},(e,t)=>{let r=t/5*Math.PI*2+.3,n=7+3*d(7*t+1),i=Math.cos(r)*n,o=Math.sin(r)*n;return new g.Vector3(i,.1,o)}),v=r.default.memo(function({progress:e}){let n=(0,r.useRef)(null),o=(0,r.useRef)([]),s=(0,r.useRef)([]),a=(0,r.useRef)([]),l=(0,r.useRef)(0),u=(0,r.useMemo)(()=>y.map(e=>{let t=[new g.Vector3(0,.15,0),new g.Vector3(.5*e.x,.6,.5*e.z),new g.Vector3(e.x,.15,e.z)];return new g.CatmullRomCurve3(t).getPoints(24)}),[]);return(0,i.useFrame)((t,r)=>{let i=e.current??0;l.current=f(l.current,i,3,r);let c=l.current,u=t.clock.elapsedTime;n.current&&(n.current.position.y=.04*Math.sin(1.2*u)),o.current.forEach((e,t)=>{e&&(e.rotation.y=u*(.8+.2*t))}),s.current.forEach((e,t)=>{if(e){let r=m(.45,.8,c);e.color.copy(j).lerp(t%2==0?x:M,r),e.opacity=p(.12,.7,r)*(.8+.2*Math.sin(4*u-.5*t))}}),a.current.forEach((e,t)=>{if(e){let r=m(.5,.82,c);e.color.copy(j).lerp(t%2==0?x:M,r),e.opacity=p(.06,.22,r)*(.85+.15*Math.sin(3*u-t))}})}),(0,t.jsxs)("group",{children:[(0,t.jsx)("gridHelper",{args:[60,48,c,c],position:[0,-.01,0],children:(0,t.jsx)("lineBasicMaterial",{attach:"material",color:c,transparent:!0,opacity:.05})}),u.map((e,r)=>(0,t.jsxs)("line",{children:[(0,t.jsx)("bufferGeometry",{children:(0,t.jsx)("float32BufferAttribute",{attach:"attributes-position",args:[new Float32Array(e.flatMap(e=>[e.x,e.y,e.z])),3]})}),(0,t.jsx)("lineBasicMaterial",{ref:e=>{s.current[r]=e},transparent:!0,opacity:.15,depthWrite:!1})]},`corr${r}`)),(0,t.jsxs)("group",{ref:n,position:[0,0,0],children:[(0,t.jsxs)("mesh",{position:[0,.35,0],children:[(0,t.jsx)("boxGeometry",{args:[2.2,.7,1.8]}),(0,t.jsx)("meshBasicMaterial",{color:"#0B1220"})]}),(0,t.jsxs)("mesh",{position:[0,.35,0],children:[(0,t.jsx)("boxGeometry",{args:[2.2,.7,1.8]}),(0,t.jsx)("meshBasicMaterial",{color:c,wireframe:!0,transparent:!0,opacity:.65})]}),[-.6,0,.6].map((e,r)=>(0,t.jsxs)("mesh",{position:[e,.18,.91],children:[(0,t.jsx)("boxGeometry",{args:[.3,.35,.06]}),(0,t.jsx)("meshBasicMaterial",{color:c,transparent:!0,opacity:.8})]},r)),(0,t.jsxs)("mesh",{position:[0,.85,0],children:[(0,t.jsx)("boxGeometry",{args:[1.2,.3,1]}),(0,t.jsx)("meshBasicMaterial",{color:c,transparent:!0,opacity:.15})]}),(0,t.jsxs)("mesh",{position:[0,.85,0],children:[(0,t.jsx)("boxGeometry",{args:[1.2,.3,1]}),(0,t.jsx)("meshBasicMaterial",{color:c,wireframe:!0,transparent:!0,opacity:.9})]}),[-.4,.4].map((e,r)=>(0,t.jsxs)("mesh",{position:[e,.71,-.4],rotation:[.15,0,0],children:[(0,t.jsx)("boxGeometry",{args:[.5,.03,.6]}),(0,t.jsx)("meshBasicMaterial",{color:"#1e293b"})]},r)),(0,t.jsxs)("group",{position:[0,1,0],children:[(0,t.jsxs)("mesh",{position:[0,.4,0],children:[(0,t.jsx)("cylinderGeometry",{args:[.03,.03,.8,8]}),(0,t.jsx)("meshBasicMaterial",{color:c})]}),(0,t.jsxs)("mesh",{position:[0,.8,0],children:[(0,t.jsx)("sphereGeometry",{args:[.12,16,16]}),(0,t.jsx)("meshBasicMaterial",{color:"#ffffff"})]})]}),(0,t.jsxs)("mesh",{rotation:[-Math.PI/2,0,0],position:[0,.02,0],children:[(0,t.jsx)("ringGeometry",{args:[1.8,2.2,32]}),(0,t.jsx)("meshBasicMaterial",{color:c,transparent:!0,opacity:.3,blending:g.AdditiveBlending})]})]})]})}),b=new g.Vector3(0,.5,0);function A(e){return new g.CatmullRomCurve3(e,!1,"catmullrom",.5)}let B=null;function w(){if(B)return B;let e=[],t=[];for(let r=0;r<5;r++){let n=r/5*Math.PI*2+.3,i=7+3*d(7*r+1),o=Math.cos(n)*i,s=Math.sin(n)*i,a=2+Math.floor(2*d(7*r+2)),l=[b.clone()];l.push(new g.Vector3(.35*o,.45+1.4,.35*s));let c=[];for(let e=0;e{if(!a.current||!l.current)return;let t=s/4*e.clock.elapsedTime%1;a.current.scale.setScalar(.4+t*(o-.4)),l.current.opacity=.72*Math.sin((1-t)*Math.PI)}),(0,t.jsxs)("mesh",{ref:a,position:[e.x,.03,e.z],rotation:[-Math.PI/2,0,0],children:[(0,t.jsx)("ringGeometry",{args:[.22,.28,24]}),(0,t.jsx)("meshBasicMaterial",{ref:l,color:n,transparent:!0,opacity:0,depthWrite:!1,blending:g.AdditiveBlending})]})}),P=new g.Vector3,S=new g.Vector3,G=r.default.memo(function({progress:e,chaoticCurves:n}){let o=4*n.length,s=(0,r.useRef)([]),a=(0,r.useRef)([]),l=(0,r.useMemo)(()=>Array.from({length:o},(e,t)=>d(13*t+3)),[o]),c=(0,r.useMemo)(()=>Array.from({length:2*n.length},(e,t)=>t%2/2),[n.length]);return(0,i.useFrame)(t=>{let r=1-m(.48,.6,e.current??0),i=r>.01;if(s.current.forEach(e=>{e&&(e.visible=i)}),a.current.forEach(e=>{e&&(e.visible=i)}),!i)return;let u=t.clock.elapsedTime;for(let e=0;e{let t=e.material;t&&"opacity"in t&&(t.opacity=.5*r*Math.sin(o*Math.PI))})}}),(0,t.jsxs)("group",{children:[Array.from({length:o}).map((e,r)=>(0,t.jsxs)("mesh",{ref:e=>{s.current[r]=e},visible:!1,children:[(0,t.jsx)("sphereGeometry",{args:[.06,6,6]}),(0,t.jsx)("meshBasicMaterial",{color:h,transparent:!0,opacity:0,depthWrite:!1,blending:g.AdditiveBlending})]},`cp-${r}`)),Array.from({length:2*n.length}).map((e,r)=>(0,t.jsx)("group",{ref:e=>{a.current[r]=e},visible:!1,children:(0,t.jsxs)("mesh",{rotation:[Math.PI/2,0,0],children:[(0,t.jsx)("coneGeometry",{args:[.06,.16,4]}),(0,t.jsx)("meshBasicMaterial",{color:h,transparent:!0,opacity:0,depthWrite:!1,blending:g.AdditiveBlending})]})},`cc-${r}`))]})}),E=new g.Vector3,T=new g.Vector3,k=r.default.memo(function({progress:e,optimizedCurves:n}){let o=6*n.length,s=(0,r.useRef)([]),a=(0,r.useRef)([]),l=(0,r.useRef)([]),h=(0,r.useMemo)(()=>Array.from({length:o},(e,t)=>d(17*t+4)),[o]),p=(0,r.useMemo)(()=>Array.from({length:3*n.length},(e,t)=>t%3/3),[n.length]);return(0,i.useFrame)(t=>{let r=m(.52,.7,e.current??0),i=r>.01;if(s.current.forEach(e=>{e&&(e.visible=i)}),a.current.forEach(e=>{e&&(e.visible=i)}),l.current.forEach(e=>{e&&(e.visible=i)}),!i)return;let c=t.clock.elapsedTime;for(let e=0;e{let t=e.material;t&&"opacity"in t&&(t.opacity=.85*r*Math.sin(o*Math.PI))})}for(let e=0;e{let n=Math.floor(r/6)%2==0?c:u;return(0,t.jsxs)("mesh",{ref:e=>{s.current[r]=e},visible:!1,children:[(0,t.jsx)("sphereGeometry",{args:[.05,8,8]}),(0,t.jsx)("meshBasicMaterial",{color:n,transparent:!0,opacity:0,depthWrite:!1,blending:g.AdditiveBlending})]},`op-${r}`)}),Array.from({length:3*n.length}).map((e,r)=>{let n=Math.floor(r/3)%2==0?c:u;return(0,t.jsx)("group",{ref:e=>{a.current[r]=e},visible:!1,children:(0,t.jsxs)("mesh",{rotation:[Math.PI/2,0,0],children:[(0,t.jsx)("coneGeometry",{args:[.07,.2,4]}),(0,t.jsx)("meshBasicMaterial",{color:n,transparent:!0,opacity:0,depthWrite:!1,blending:g.AdditiveBlending})]})},`oc-${r}`)}),n.map((e,r)=>(0,t.jsxs)("mesh",{ref:e=>{l.current[r]=e},visible:!1,children:[(0,t.jsx)("sphereGeometry",{args:[.07,12,12]}),(0,t.jsx)("meshBasicMaterial",{color:r%2==0?c:u,transparent:!0,opacity:0,depthWrite:!1,blending:g.AdditiveBlending})]},`pulse-${r}`))]})}),z=r.default.memo(function({progress:e,reduced:n=!1,isMobile:o=!1}){let{chaotic:s,optimized:a,chaosNodes:l,optimizedNodes:p}=(0,r.useMemo)(()=>w(),[]),f=(0,r.useRef)([]),d=(0,r.useRef)([]),x=(0,r.useRef)(null),j=(0,r.useRef)(null),M=(e,t)=>{if(!e.index)return;let r=Math.max(0,36*Math.floor(e.index.count*t/36));e.setDrawRange(0,r)};return(0,i.useFrame)(t=>{let r=e.current??0,n=t.clock.elapsedTime,i=1-m(.4,.56,r),o=(1-m(.38,.55,r))*.85,s=.7+.18*Math.sin(7*n);for(let e of f.current)e?.geo&&(M(e.geo,i),e.mat&&(e.mat.opacity=o*s));let a=m(.55,.74,r),l=m(.55,.66,r);for(let e=0;e(0,t.jsxs)("mesh",{frustumCulled:!1,children:[(0,t.jsx)("tubeGeometry",{ref:e=>{e&&(f.current[r]={...f.current[r]??{},geo:e})},args:[e.curve,120,.08,6,!1]}),(0,t.jsx)("meshBasicMaterial",{ref:e=>{e&&(f.current[r]={...f.current[r]??{},mat:e})},color:h,transparent:!0,opacity:.85,depthWrite:!1,blending:n?g.NormalBlending:g.AdditiveBlending})]},`c${r}`)),a.map((e,r)=>(0,t.jsxs)("mesh",{frustumCulled:!1,children:[(0,t.jsx)("tubeGeometry",{ref:e=>{e&&(d.current[r]={...d.current[r]??{},geo:e})},args:[e.curve,120,.1,6,!1]}),(0,t.jsx)("meshBasicMaterial",{ref:e=>{e&&(d.current[r]={...d.current[r]??{},mat:e})},color:r%2==0?c:u,transparent:!0,opacity:0,depthWrite:!1,blending:n?g.NormalBlending:g.AdditiveBlending})]},`o${r}`)),(0,t.jsx)("group",{ref:x,children:l.map((e,r)=>(0,t.jsxs)("group",{children:[(0,t.jsxs)("mesh",{position:e,children:[(0,t.jsx)("sphereGeometry",{args:[.18,12,12]}),(0,t.jsx)("meshBasicMaterial",{color:h,transparent:!0,opacity:.9,blending:g.AdditiveBlending})]}),(0,t.jsx)(R,{position:e,color:h})]},`cn-group-${r}`))}),(0,t.jsx)("group",{ref:j,scale:1e-4,children:p.map((e,r)=>(0,t.jsxs)("group",{children:[(0,t.jsxs)("mesh",{position:e,children:[(0,t.jsx)("sphereGeometry",{args:[.15,14,14]}),(0,t.jsx)("meshBasicMaterial",{color:u,transparent:!0,opacity:.95,blending:g.AdditiveBlending})]}),(0,t.jsx)(R,{position:e,color:u,maxScale:1.8,pulseSpeed:3})]},`on-group-${r}`))}),!o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(G,{progress:e,chaoticCurves:s.map(e=>e.curve)}),(0,t.jsx)(k,{progress:e,optimizedCurves:a.map(e=>e.curve)})]})]})}),V=new g.Vector3,C=new g.Vector3,I=new g.Vector3,F=r.default.memo(function({texture:e,tint:r,width:n,aspect:i}){let o=n/i;return(0,t.jsxs)("mesh",{position:[0,o/2.4,0],children:[(0,t.jsx)("planeGeometry",{args:[n,o]}),(0,t.jsx)("meshBasicMaterial",{map:e,color:r,transparent:!0,depthWrite:!1,side:g.DoubleSide,toneMapped:!1})]})}),$=new g.Vector3(0,.5,0),W=r.default.memo(function({progress:e,reduced:n=!1}){let{chaotic:o,optimized:s}=(0,r.useMemo)(()=>w(),[]),a=["truck","van","bike"],l=(0,r.useMemo)(()=>Array.from({length:7},(e,t)=>({curve:o[t%o.length].curve,type:a[t%3],speed:.018+.03*d(5*t+1),offset:d(5*t+2),color:h,nodes:o[t%o.length].nodes||[]})),[o]),p=(0,r.useMemo)(()=>Array.from({length:5},(e,t)=>({curve:s[t%s.length].curve,type:a[t%3],speed:.05+.025*d(7*t+1),offset:d(7*t+2),color:t%2==0?c:u,nodes:s[t%s.length].nodes||[]})),[s]),f=(0,r.useRef)([]),x=(0,r.useRef)([]),j=(0,r.useRef)([]),M=(0,r.useMemo)(()=>{let e=new g.TextureLoader().load("/images/truck.png");return e.colorSpace=g.SRGBColorSpace,e.anisotropy=8,e},[]),y=1080/948,v=(0,r.useRef)([]),b=(0,r.useRef)([]),A=(e,t,r,n,i,o)=>{if(!e||!t?.curve)return;let s=o>.02;if(e.visible=s,!s)return;let a=r[n];(void 0===a||Number.isNaN(a))&&(a=r[n]=t.offset??0),t.curve.getPointAt(a,V);let l=V.distanceTo($);t.nodes&&t.nodes.length>0&&t.nodes.forEach(e=>{let t=V.distanceTo(e);t{let t=e.material;t&&"opacity"in t&&(t.opacity=o*B(e))})},B=e=>{let t=e.material;return!t||t.map||t.wireframe||t.color&&0xffffff===t.color.getHex()||t.color&&0xef4444===t.color.getHex()?1:.2};return(0,i.useFrame)((t,r)=>{v.current.length!==l.length&&(v.current=l.map(e=>e.offset)),b.current.length!==p.length&&(b.current=p.map(e=>e.offset));let n=e.current??0,i=t.clock.elapsedTime,o=Math.min(.06,r),s=m(.1,.22,n)*(1-m(.7,.82,n))*(.85+.1*Math.sin(6*i)),a=m(.68,.82,n),c=t.camera;for(let e=0;e(0,t.jsx)("group",{ref:e=>{f.current[r]=e},children:(0,t.jsx)(F,{texture:M,tint:"#ff5a5a",width:1.61,aspect:y})},`cv${r}`)),p.map((e,r)=>(0,t.jsx)("group",{visible:!1,ref:e=>{x.current[r]=e},children:(0,t.jsx)(F,{texture:M,tint:"#d7dce4",width:1.75,aspect:y})},`ov${r}`)),p.map((e,r)=>Array.from({length:16},(i,o)=>(0,t.jsxs)("mesh",{visible:!1,ref:e=>{j.current[16*r+o]=e},children:[(0,t.jsx)("sphereGeometry",{args:[.1,8,8]}),(0,t.jsx)("meshBasicMaterial",{color:e.color,transparent:!0,opacity:0,depthWrite:!1,blending:n?g.NormalBlending:g.AdditiveBlending})]},`ot-${r}-${o}`)))]})}),N=r.default.memo(function({offset:e,index:n,progress:o,color:s}){let a=(0,r.useRef)(null),l=(0,r.useRef)(null),c=(0,r.useRef)([]),u=(0,r.useMemo)(()=>Array.from({length:3},(e,t)=>t/3),[]);(0,i.useFrame)(t=>{let r=o.current??0,i=t.clock.elapsedTime,s=m(.2,.4,r)*(1-m(.72,.85,r)),h=s>.01;a.current&&(a.current.visible=h),l.current&&h&&(l.current.opacity=s*(.15+.08*Math.sin(12*i+n))),c.current.forEach((t,r)=>{if(!t||(t.visible=h,!h))return;let o=.8+.4*d(5*n+r),a=(u[r]+o/3*i)%1;t.position.copy(e).multiplyScalar(a),t.material.opacity=s*Math.sin(a*Math.PI)*.8;let l=.04+.015*Math.sin(8*i+r);t.scale.setScalar(l/.06)})});let h=(0,r.useMemo)(()=>{let t=new g.BufferGeometry,r=new Float32Array([0,0,0,e.x,e.y,e.z]);return t.setAttribute("position",new g.BufferAttribute(r,3)),t},[e]);return(0,t.jsxs)("group",{children:[(0,t.jsx)("lineSegments",{ref:a,geometry:h,children:(0,t.jsx)("lineBasicMaterial",{ref:l,color:s,transparent:!0,opacity:0,depthWrite:!1,blending:g.AdditiveBlending})}),Array.from({length:3}).map((e,r)=>(0,t.jsxs)("mesh",{ref:e=>{c.current[r]=e},visible:!1,children:[(0,t.jsx)("sphereGeometry",{args:[.06,8,8]}),(0,t.jsx)("meshBasicMaterial",{color:s,transparent:!0,opacity:0,depthWrite:!1,blending:g.AdditiveBlending})]},r))]})}),Y=r.default.memo(function({progress:e}){let n=(0,r.useRef)(null),o=(0,r.useMemo)(()=>Array.from({length:5},(e,t)=>{let r=t/5*Math.PI*2+.3,n=7+3*d(7*t+1),i=Math.cos(r)*n,o=Math.sin(r)*n;return new g.Vector3(i,-3.3,o)}),[]);return(0,i.useFrame)(e=>{let t=e.clock.elapsedTime;n.current&&(n.current.position.y=3.4+.12*Math.sin(.8*t))}),(0,t.jsxs)("group",{ref:n,position:[0,3.4,0],children:[(0,t.jsxs)("mesh",{children:[(0,t.jsx)("sphereGeometry",{args:[.06,12,12]}),(0,t.jsx)("meshBasicMaterial",{color:u,blending:g.AdditiveBlending})]}),o.map((r,n)=>(0,t.jsx)(N,{offset:r,index:n,progress:e,color:n%2==0?c:u},`calc-beam-${n}`))]})}),D={radiusStart:17,radiusEnd:13,heightStart:9,heightEnd:6.5,lookAtY:2.4,fov:50},H={radiusStart:19,radiusEnd:15,heightStart:9.5,heightEnd:7,lookAtY:2.6,fov:54},K={radiusStart:16,radiusEnd:12,heightStart:8.5,heightEnd:6,lookAtY:2.3,fov:58};function U({progress:e,framing:t}){let n=(0,r.useRef)(0),s=(0,o.useThree)(e=>e.camera);return(0,r.useEffect)(()=>{"fov"in s&&(s.fov=t.fov,s.updateProjectionMatrix())},[s,t.fov]),(0,i.useFrame)((r,i)=>{let o=e.current??0;n.current=f(n.current,o,1.5,i);let s=n.current,a=r.clock.elapsedTime,l=p(t.radiusStart,t.radiusEnd,s),c=p(-.5,.45,s)+.02*a,u=p(t.heightStart,t.heightEnd,s)+.3*Math.sin(.4*a),h=r.camera;h.position.x=Math.sin(c)*l,h.position.z=Math.cos(c)*l,h.position.y=u,h.lookAt(0,t.lookAtY,0)}),null}let L=r.default.memo(function({progress:e,reduced:r=!1,isMobile:i=!1,isTablet:o=!1,active:c=!0}){let u=i?K:o?H:D;return(0,t.jsxs)(n.Canvas,{flat:!0,dpr:[1,i||r?1.25:1.5],camera:{position:[0,u.heightStart,u.radiusStart],fov:u.fov,near:.1,far:120},gl:{antialias:!i,powerPreference:"high-performance",alpha:!1},frameloop:c?"always":"never",children:[(0,t.jsx)("color",{attach:"background",args:[l]}),(0,t.jsx)("fog",{attach:"fog",args:[l,18,52]}),(0,t.jsx)("ambientLight",{intensity:.6}),(0,t.jsx)(U,{progress:e,framing:u}),(0,t.jsx)(v,{progress:e,count:i?48:90,reduced:r}),(0,t.jsx)(z,{progress:e,reduced:r,isMobile:i}),(0,t.jsx)(W,{progress:e,reduced:r}),(0,t.jsx)(Y,{progress:e,reduced:r}),!r&&(0,t.jsx)(s.EffectComposer,{multisampling:2*!i,children:(0,t.jsx)(s.Bloom,{mipmapBlur:!0,intensity:i?.5:1,luminanceThreshold:.15,luminanceSmoothing:.04,radius:i?.55:.75,kernelSize:a.KernelSize.MEDIUM})})]})});e.s(["default",0,L],64083)},29539,e=>{e.n(e.i(64083))}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0d09zs~9jbu5_.js b/build/.next/static/chunks/0d09zs~9jbu5_.js new file mode 100644 index 0000000..0490cd2 --- /dev/null +++ b/build/.next/static/chunks/0d09zs~9jbu5_.js @@ -0,0 +1,208 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56305,t=>{"use strict";let e,i,s;var n,r=t.i(43476),o=t.i(71645),a=t.i(70703);let l=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],h=new Set([...l,"pathRotation"]),u=(t,e,i)=>i>e?e:i"number"==typeof t,parse:parseFloat,transform:t=>t},c={...d,transform:t=>u(0,1,t)},p={...d,default:1},m=t=>Math.round(1e5*t)/1e5,f=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,g=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,y=(t,e)=>i=>!!("string"==typeof i&&g.test(i)&&i.startsWith(t)||e&&null!=i&&Object.prototype.hasOwnProperty.call(i,e)),v=(t,e,i)=>s=>{if("string"!=typeof s)return s;let[n,r,o,a]=s.match(f);return{[t]:parseFloat(n),[e]:parseFloat(r),[i]:parseFloat(o),alpha:void 0!==a?parseFloat(a):1}},x={...d,transform:t=>Math.round(u(0,255,t))},b={test:y("rgb","red"),parse:v("red","green","blue"),transform:({red:t,green:e,blue:i,alpha:s=1})=>"rgba("+x.transform(t)+", "+x.transform(e)+", "+x.transform(i)+", "+m(c.transform(s))+")"},w={test:y("#"),parse:function(t){let e="",i="",s="",n="";return t.length>5?(e=t.substring(1,3),i=t.substring(3,5),s=t.substring(5,7),n=t.substring(7,9)):(e=t.substring(1,2),i=t.substring(2,3),s=t.substring(3,4),n=t.substring(4,5),e+=e,i+=i,s+=s,n+=n),{red:parseInt(e,16),green:parseInt(i,16),blue:parseInt(s,16),alpha:n?parseInt(n,16)/255:1}},transform:b.transform},T=t=>({test:e=>"string"==typeof e&&e.endsWith(t)&&1===e.split(" ").length,parse:parseFloat,transform:e=>`${e}${t}`}),S=T("deg"),P=T("%"),k=T("px"),A=T("vh"),E=T("vw"),M={...P,parse:t=>P.parse(t)/100,transform:t=>P.transform(100*t)},V={test:y("hsl","hue"),parse:v("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:i,alpha:s=1})=>"hsla("+Math.round(t)+", "+P.transform(m(e))+", "+P.transform(m(i))+", "+m(c.transform(s))+")"},C={test:t=>b.test(t)||w.test(t)||V.test(t),parse:t=>b.test(t)?b.parse(t):V.test(t)?V.parse(t):w.parse(t),transform:t=>"string"==typeof t?t:t.hasOwnProperty("red")?b.transform(t):V.transform(t),getAnimatableNone:t=>{let e=C.parse(t);return e.alpha=0,C.transform(e)}},j=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,R="number",D="color",L=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function _(t){let e=t.toString(),i=[],s={color:[],number:[],var:[]},n=[],r=0,o=e.replace(L,t=>(C.test(t)?(s.color.push(r),n.push(D),i.push(C.parse(t))):t.startsWith("var(")?(s.var.push(r),n.push("var"),i.push(t)):(s.number.push(r),n.push(R),i.push(parseFloat(t))),++r,"${}")).split("${}");return{values:i,split:o,indexes:s,types:n}}function B({split:t,types:e}){let i=t.length;return s=>{let n="";for(let r=0;r0},parse:function(t){return _(t).values},createTransformer:function(t){return B(_(t))},getAnimatableNone:function(t){let e=_(t);return B(e)(e.values.map((t,i)=>((t,e)=>"number"==typeof t?e?.trim().endsWith("/")?t:0:"number"==typeof t?0:C.test(t)?C.getAnimatableNone(t):t)(t,e.split[i])))}},I=new Set(["brightness","contrast","saturate","opacity"]);function N(t){let[e,i]=t.slice(0,-1).split("(");if("drop-shadow"===e)return t;let[s]=i.match(f)||[];if(!s)return t;let n=i.replace(s,""),r=+!!I.has(e);return s!==i&&(r*=100),e+"("+r+n+")"}let O=/\b([a-z-]*)\(.*?\)/gu,z={...F,getAnimatableNone:t=>{let e=t.match(O);return e?e.map(N).join(" "):t}},U={...F,getAnimatableNone:t=>{let e=F.parse(t);return F.createTransformer(t)(e.map(t=>"number"==typeof t?0:"object"==typeof t?{...t,alpha:1}:t))}},W={...d,transform:Math.round},$={borderWidth:k,borderTopWidth:k,borderRightWidth:k,borderBottomWidth:k,borderLeftWidth:k,borderRadius:k,borderTopLeftRadius:k,borderTopRightRadius:k,borderBottomRightRadius:k,borderBottomLeftRadius:k,width:k,maxWidth:k,height:k,maxHeight:k,top:k,right:k,bottom:k,left:k,inset:k,insetBlock:k,insetBlockStart:k,insetBlockEnd:k,insetInline:k,insetInlineStart:k,insetInlineEnd:k,padding:k,paddingTop:k,paddingRight:k,paddingBottom:k,paddingLeft:k,paddingBlock:k,paddingBlockStart:k,paddingBlockEnd:k,paddingInline:k,paddingInlineStart:k,paddingInlineEnd:k,margin:k,marginTop:k,marginRight:k,marginBottom:k,marginLeft:k,marginBlock:k,marginBlockStart:k,marginBlockEnd:k,marginInline:k,marginInlineStart:k,marginInlineEnd:k,fontSize:k,backgroundPositionX:k,backgroundPositionY:k,rotate:S,pathRotation:S,rotateX:S,rotateY:S,rotateZ:S,scale:p,scaleX:p,scaleY:p,scaleZ:p,skew:S,skewX:S,skewY:S,distance:k,translateX:k,translateY:k,translateZ:k,x:k,y:k,z:k,perspective:k,transformPerspective:k,opacity:c,originX:M,originY:M,originZ:k,zIndex:W,fillOpacity:c,strokeOpacity:c,numOctaves:W},H={...$,color:C,backgroundColor:C,outlineColor:C,fill:C,stroke:C,borderColor:C,borderTopColor:C,borderRightColor:C,borderBottomColor:C,borderLeftColor:C,filter:z,WebkitFilter:z,mask:U,WebkitMask:U},Y=t=>H[t],X=()=>({translate:0,scale:1,origin:0,originPoint:0}),K=()=>({x:X(),y:X()}),G=()=>({min:0,max:0}),q=()=>({x:G(),y:G()}),Z=t=>!!(t&&t.getVelocity),J=new Set(["width","height","top","left","right","bottom",...l]),Q=t=>e=>e.test(t),tt=[d,k,P,S,E,A,{test:t=>"auto"===t,parse:t=>t}],te=t=>tt.find(Q(t));var ti=t.i(47167);let ts=()=>{},tn=()=>{};ti.default;let tr=t=>e=>"string"==typeof e&&e.startsWith(t),to=tr("--"),ta=tr("var(--"),tl=t=>!!ta(t)&&th.test(t.split("/*")[0].trim()),th=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function tu(t){return"string"==typeof t&&t.split("/*")[0].includes("var(--")}let td=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,tc=t=>180*t/Math.PI,tp=t=>tf(tc(Math.atan2(t[1],t[0]))),tm={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:tp,rotateZ:tp,skewX:t=>tc(Math.atan(t[1])),skewY:t=>tc(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},tf=t=>((t%=360)<0&&(t+=360),t),tg=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),ty=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),tv={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:tg,scaleY:ty,scale:t=>(tg(t)+ty(t))/2,rotateX:t=>tf(tc(Math.atan2(t[6],t[5]))),rotateY:t=>tf(tc(Math.atan2(-t[2],t[0]))),rotateZ:tp,rotate:tp,skewX:t=>tc(Math.atan(t[4])),skewY:t=>tc(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function tx(t){return+!!t.includes("scale")}function tb(t,e){let i,s;if(!t||"none"===t)return tx(e);let n=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(n)i=tv,s=n;else{let e=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);i=tm,s=e}if(!s)return tx(e);let r=i[e],o=s[1].split(",").map(tw);return"function"==typeof r?r(o):o[r]}function tw(t){return parseFloat(t.trim())}let tT=t=>t===d||t===k,tS=new Set(["x","y","z"]),tP=l.filter(t=>!tS.has(t)),tk={width:({x:t},{paddingLeft:e="0",paddingRight:i="0",boxSizing:s})=>{let n=t.max-t.min;return"border-box"===s?n:n-parseFloat(e)-parseFloat(i)},height:({y:t},{paddingTop:e="0",paddingBottom:i="0",boxSizing:s})=>{let n=t.max-t.min;return"border-box"===s?n:n-parseFloat(e)-parseFloat(i)},top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:(t,{transform:e})=>tb(e,"x"),y:(t,{transform:e})=>tb(e,"y")};tk.translateX=tk.x,tk.translateY=tk.y;let tA=t=>t,tE={},tM=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function tV(t,e){let i=!1,s=!0,n={delta:0,timestamp:0,isProcessing:!1},r=()=>i=!0,o=tM.reduce((t,i)=>(t[i]=function(t,e){let i=new Set,s=new Set,n=!1,r=!1,o=new WeakSet,a={delta:0,timestamp:0,isProcessing:!1},l=0;function h(e){o.has(e)&&(u.schedule(e),t()),l++,e(a)}let u={schedule:(t,e=!1,r=!1)=>{let a=r&&n?i:s;return e&&o.add(t),a.add(t),t},cancel:t=>{s.delete(t),o.delete(t)},process:t=>{if(a=t,n){r=!0;return}n=!0;let o=i;i=s,s=o,i.forEach(h),e,l=0,i.clear(),n=!1,r&&(r=!1,u.process(t))}};return u}(r,e?i:void 0),t),{}),{setup:a,read:l,resolveKeyframes:h,preUpdate:u,update:d,preRender:c,render:p,postRender:m}=o,f=()=>{let r=tE.useManualTiming,o=r?n.timestamp:performance.now();i=!1,r||(n.delta=s?1e3/60:Math.max(Math.min(o-n.timestamp,40),1)),n.timestamp=o,n.isProcessing=!0,a.process(n),l.process(n),h.process(n),u.process(n),d.process(n),c.process(n),p.process(n),m.process(n),n.isProcessing=!1,i&&e&&(s=!1,t(f))};return{schedule:tM.reduce((e,r)=>{let a=o[r];return e[r]=(e,r=!1,o=!1)=>(!i&&(i=!0,s=!0,n.isProcessing||t(f)),a.schedule(e,r,o)),e},{}),cancel:t=>{for(let e=0;etypeof requestAnimationFrame?requestAnimationFrame:tA,!0),tL=new Set,t_=!1,tB=!1,tF=!1;function tI(){if(tB){let t=Array.from(tL).filter(t=>t.needsMeasurement),e=new Set(t.map(t=>t.element)),i=new Map;e.forEach(t=>{let e,s=(e=[],tP.forEach(i=>{let s=t.getValue(i);void 0!==s&&(e.push([i,s.get()]),s.set(+!!i.startsWith("scale")))}),e);s.length&&(i.set(t,s),t.render())}),t.forEach(t=>t.measureInitialState()),e.forEach(t=>{t.render();let e=i.get(t);e&&e.forEach(([e,i])=>{t.getValue(e)?.set(i)})}),t.forEach(t=>t.measureEndState()),t.forEach(t=>{void 0!==t.suspendedScrollY&&window.scrollTo(0,t.suspendedScrollY)})}tB=!1,t_=!1,tL.forEach(t=>t.complete(tF)),tL.clear()}function tN(){tL.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(tB=!0)})}class tO{constructor(t,e,i,s,n,r=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=e,this.name=i,this.motionValue=s,this.element=n,this.isAsync=r}scheduleResolve(){this.state="scheduled",this.isAsync?(tL.add(this),t_||(t_=!0,tC.read(tN),tC.resolveKeyframes(tI))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:t,name:e,element:i,motionValue:s}=this;if(null===t[0]){let n=s?.get(),r=t[t.length-1];if(void 0!==n)t[0]=n;else if(i&&e){let s=i.readValue(e,r);null!=s&&(t[0]=s)}void 0===t[0]&&(t[0]=r),s&&void 0===n&&s.set(t[0])}for(let e=1;e{t.getValue(e).set(i)}),this.resolveNoneKeyframes()}}let tH=t=>1e3*t;function tY(t,e){-1===t.indexOf(e)&&t.push(e)}function tX(t,e){let i=t.indexOf(e);i>-1&&t.splice(i,1)}class tK{constructor(){this.subscriptions=[]}add(t){return tY(this.subscriptions,t),()=>tX(this.subscriptions,t)}notify(t,e,i){let s=this.subscriptions.length;if(s)if(1===s)this.subscriptions[0](t,e,i);else for(let n=0;n(void 0===e&&(e=t()),e)}let tZ={};function tJ(t,e){let i=tq(t);return()=>tZ[e]??i()}let tQ=tJ(()=>void 0!==window.ScrollTimeline,"scrollTimeline"),t0=t=>null!==t;function t1(t,{repeat:e,repeatType:i="loop"},s,n=1){let r=t.filter(t0),o=n<0||e&&"loop"!==i&&e%2==1?0:r.length-1;return o&&void 0!==s?s:r[o]}class t2{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,e){return this.finished.then(t,e)}}let t5={layout:0,mainThread:0,waapi:0},t3=t=>Array.isArray(t)&&"number"==typeof t[0],t4=tJ(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0},"linearEasing"),t9=(t,e,i=10)=>{let s="",n=Math.max(Math.round(e/i),2);for(let e=0;e`cubic-bezier(${t}, ${e}, ${i}, ${s})`,t8={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:t6([0,.65,.55,1]),circOut:t6([.55,0,1,.45]),backIn:t6([.31,.01,.66,-.59]),backOut:t6([.33,1.53,.69,.99])};function t7(t){return"function"==typeof t&&"applyToOptions"in t}class et extends t2{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:e,name:i,keyframes:s,pseudoElement:n,allowFlatten:r=!1,finalKeyframe:o,onComplete:a}=t;this.isPseudoElement=!!n,this.allowFlatten=r,this.options=t,tn("string"!=typeof t.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const l=function({type:t,...e}){return t7(t)&&t4()?t.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}(t);this.animation=function(t,e,i,{delay:s=0,duration:n=300,repeat:r=0,repeatType:o="loop",ease:a="easeOut",times:l}={},h){let u={[e]:i};l&&(u.offset=l);let d=function t(e,i){if(e)return"function"==typeof e?t4()?t9(e,i):"ease-out":t3(e)?t6(e):Array.isArray(e)?e.map(e=>t(e,i)||t8.easeOut):t8[e]}(a,n);Array.isArray(d)&&(u.easing=d);let c={delay:s,duration:n,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:r+1,direction:"reverse"===o?"alternate":"normal"};h&&(c.pseudoElement=h);let p=t.animate(u,c);return p}(e,i,s,l,n),!1===l.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!n){let t=t1(s,this.options,o,this.speed);this.updateMotionValue&&this.updateMotionValue(t),tG(e,i,t),this.animation.cancel()}a?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(t){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:t}=this;"idle"!==t&&"finished"!==t&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let t=this.options?.element;!this.isPseudoElement&&t?.isConnected&&this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get iterationDuration(){let{delay:t=0}=this.options||{};return this.duration+t/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(t){let e=null!==this.finishedTime;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=tH(t),e&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,rangeStart:e,rangeEnd:i,observe:s}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&tQ())?(this.animation.timeline=t,e&&(this.animation.rangeStart=e),i&&(this.animation.rangeEnd=i),tA):s(this)}}let ee=new Set(["opacity","clipPath","filter","transform"]),{schedule:ei}=tV(queueMicrotask,!1);function es(){e=void 0}let en={now:()=>(void 0===e&&en.set(tR.isProcessing||tE.useManualTiming?tR.timestamp:performance.now()),e),set:t=>{e=t,queueMicrotask(es)}},er=(t,e)=>e?1e3/e*t:0,eo={current:void 0};class ea{constructor(t,e={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=t=>{let e=en.now();if(this.updatedAt!==e&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(t),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let t of this.dependents)t.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=e.owner}setCurrent(t){this.current=t,this.updatedAt=en.now(),null===this.canTrackVelocity&&void 0!==t&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,e){this.events[t]||(this.events[t]=new tK);let i=this.events[t].add(e);return"change"===t?()=>{i(),tC.read(()=>{this.events.change.getSize()||this.stop()})}:i}clearListeners(){for(let t in this.events)this.events[t].clear()}attach(t,e){this.passiveEffect=t,this.stopPassiveEffect=e}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,e,i){this.set(e),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-i}jump(t,e=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,e&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return eo.current&&eo.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let t=en.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||t-this.updatedAt>30)return 0;let e=Math.min(this.updatedAt-this.prevUpdatedAt,30);return er(parseFloat(this.current)-parseFloat(this.prevFrameValue),e)}start(t){return this.stop(),new Promise(e=>{this.hasAnimated=!0,this.animation=t(e),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function el(t,e){return new ea(t,e)}let eh=[...tt,C,F],eu=new WeakMap;function ed(t){return null!==t&&"object"==typeof t&&"function"==typeof t.start}function ec(t){return"string"==typeof t||Array.isArray(t)}let ep=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],em=["initial",...ep];function ef(t){return ed(t.animate)||em.some(e=>ec(t[e]))}function eg(t){return!!(ef(t)||t.variants)}let ey={current:null},ev={current:!1},ex="u">typeof window;function eb(t){let e=[{},{}];return t?.values.forEach((t,i)=>{e[0][i]=t.get(),e[1][i]=t.getVelocity()}),e}function ew(t,e,i,s){if("function"==typeof e){let[n,r]=eb(s);e=e(void 0!==i?i:t.custom,n,r)}if("string"==typeof e&&(e=t.variants&&t.variants[e]),"function"==typeof e){let[n,r]=eb(s);e=e(void 0!==i?i:t.custom,n,r)}return e}let eT=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],eS={};class eP{scrapeMotionValuesFromProps(t,e,i){return{}}constructor({parent:t,props:e,presenceContext:i,reducedMotionConfig:s,skipAnimations:n,blockInitialAnimation:r,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=tO,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let t=en.now();this.renderScheduledAtthis.bindToMotionValue(e,t)),"never"===this.reducedMotionConfig?this.shouldReduceMotion=!1:"always"===this.reducedMotionConfig?this.shouldReduceMotion=!0:(ev.current||function(){if(ev.current=!0,ex)if(window.matchMedia){let t=window.matchMedia("(prefers-reduced-motion)"),e=()=>ey.current=t.matches;t.addEventListener("change",e),e()}else ey.current=!1}(),this.shouldReduceMotion=ey.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){for(let t in this.projection&&this.projection.unmount(),tj(this.notifyUpdate),tj(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this),this.events)this.events[t].clear();for(let t in this.features){let e=this.features[t];e&&(e.unmount(),e.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,e){let i;if(this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)(),e.accelerate&&ee.has(t)&&this.current instanceof HTMLElement){let{factory:i,keyframes:s,times:n,ease:r,duration:o}=e.accelerate,a=new et({element:this.current,name:t,keyframes:s,times:n,ease:r,duration:tH(o)}),l=i(a);this.valueSubscriptions.set(t,()=>{l(),a.cancel()});return}let s=h.has(t);s&&this.onBindTransform&&this.onBindTransform();let n=e.on("change",e=>{this.latestValues[t]=e,this.props.onUpdate&&tC.preRender(this.notifyUpdate),s&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});"u">typeof window&&window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,t,e)),this.valueSubscriptions.set(t,()=>{n(),i&&i()})}sortNodePosition(t){return this.current&&this.sortInstanceNodePosition&&this.type===t.type?this.sortInstanceNodePosition(this.current,t.current):0}updateFeatures(){let t="animation";for(t in eS){let e=eS[t];if(!e)continue;let{isEnabled:i,Feature:s}=e;if(!this.features[t]&&s&&i(this.props)&&(this.features[t]=new s(this)),this.features[t]){let e=this.features[t];e.isMounted?e.update():(e.mount(),e.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):q()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,e){this.latestValues[t]=e}update(t,e){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=e;for(let e=0;ee.variantChildren.delete(t)}addValue(t,e){let i=this.values.get(t);e!==i&&(i&&this.removeValue(t),this.bindToMotionValue(t,e),this.values.set(t,e),this.latestValues[t]=e.get())}removeValue(t){this.values.delete(t);let e=this.valueSubscriptions.get(t);e&&(e(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,e){if(this.props.values&&this.props.values[t])return this.props.values[t];let i=this.values.get(t);return void 0===i&&void 0!==e&&(i=el(null===e?void 0:e,{owner:this}),this.addValue(t,i)),i}readValue(t,e){let i=void 0===this.latestValues[t]&&this.current?this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options):this.latestValues[t];if(null!=i){let s,n;if("string"==typeof i&&(s=i,/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(s)||(n=i,/^0[^.\s]+$/u.test(n))))i=parseFloat(i);else{let s;s=i,!eh.find(Q(s))&&F.test(e)&&(i=tU(t,e))}this.setBaseTarget(t,Z(i)?i.get():i)}return Z(i)?i.get():i}setBaseTarget(t,e){this.baseTarget[t]=e}getBaseTarget(t){let e,{initial:i}=this.props;if("string"==typeof i||"object"==typeof i){let s=ew(this.props,i,this.presenceContext?.custom);s&&(e=s[t])}if(i&&void 0!==e)return e;let s=this.getBaseTargetFromProps(this.props,t);return void 0===s||Z(s)?void 0!==this.initialValues[t]&&void 0===e?void 0:this.baseTarget[t]:s}on(t,e){return this.events[t]||(this.events[t]=new tK),this.events[t].add(e)}notify(t,...e){this.events[t]&&this.events[t].notify(...e)}scheduleRenderMicrotask(){ei.render(this.render)}}class ek extends eP{constructor(){super(...arguments),this.KeyframeResolver=t$}sortInstanceNodePosition(t,e){return 2&t.compareDocumentPosition(e)?1:-1}getBaseTargetFromProps(t,e){let i=t.style;return i?i[e]:void 0}removeValueFromRenderState(t,{vars:e,style:i}){delete e[t],delete i[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:t}=this.props;Z(t)&&(this.childSubscription=t.on("change",t=>{this.current&&(this.current.textContent=`${t}`)}))}}function eA(t){return t.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}let eE=(t,e)=>e&&"number"==typeof t?e.transform(t):t,eM={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},eV=l.length;function eC(t,e,i){let{style:s,vars:n,transformOrigin:r}=t,o=!1,a=!1;for(let t in e){let i=e[t];if(h.has(t)){o=!0;continue}if(to(t)){n[t]=i;continue}{let e=eE(i,$[t]);t.startsWith("origin")?(a=!0,r[t]=e):s[t]=e}}if(!e.transform&&(o||i?s.transform=function(t,e,i){let s="",n=!0;for(let r=0;r"string"==typeof t&&"svg"===t.toLowerCase();function eF(t,{style:e,vars:i},s,n){let r,o=t.style;for(r in e)o[r]=e[r];for(r in n?.applyProjectionStyles(o,s),i)o.setProperty(r,i[r])}function eI(t,e){return e.max===e.min?0:t/(e.max-e.min)*100}let eN={correct:(t,e)=>{if(!e.target)return t;if("string"==typeof t)if(!k.test(t))return t;else t=parseFloat(t);let i=eI(t,e.target.x),s=eI(t,e.target.y);return`${i}% ${s}%`}},eO=(t,e,i)=>t+(e-t)*i,ez={borderRadius:{...eN,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:eN,borderTopRightRadius:eN,borderBottomLeftRadius:eN,borderBottomRightRadius:eN,boxShadow:{correct:(t,{treeScale:e,projectionDelta:i})=>{let s=F.parse(t);if(s.length>5)return t;let n=F.createTransformer(t),r=+("number"!=typeof s[0]),o=i.x.scale*e.x,a=i.y.scale*e.y;s[0+r]/=o,s[1+r]/=a;let l=eO(o,a,.5);return"number"==typeof s[2+r]&&(s[2+r]/=l),"number"==typeof s[3+r]&&(s[3+r]/=l),n(s)}}};function eU(t,{layout:e,layoutId:i}){return h.has(t)||t.startsWith("origin")||(e||void 0!==i)&&(!!ez[t]||"opacity"===t)}function eW(t,e,i){let s=t.style,n=e?.style,r={};if(!s)return r;for(let e in s)(Z(s[e])||n&&Z(n[e])||eU(e,t)||i?.getValue(e)?.liveStyle!==void 0)&&(r[e]=s[e]);return r}function e$(t,e,i){let s=eW(t,e,i);for(let i in t)(Z(t[i])||Z(e[i]))&&(s[-1!==l.indexOf(i)?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i]=t[i]);return s}class eH extends ek{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=q}getBaseTargetFromProps(t,e){return t[e]}readValueFromInstance(t,e){if(h.has(e)){let t=Y(e);return t&&t.default||0}return e=e_.has(e)?e:eA(e),t.getAttribute(e)}scrapeMotionValuesFromProps(t,e,i){return e$(t,e,i)}build(t,e,i){eL(t,e,this.isSVGTag,i.transformTemplate,i.style)}renderInstance(t,e,i,s){for(let i in eF(t,e,void 0,s),e.attrs)t.setAttribute(e_.has(i)?i:eA(i),e.attrs[i])}mount(t){this.isSVGTag=eB(t.tagName),super.mount(t)}}function eY({top:t,left:e,right:i,bottom:s}){return{x:{min:e,max:i},y:{min:t,max:s}}}function eX(t){return void 0===t||1===t}function eK({scale:t,scaleX:e,scaleY:i}){return!eX(t)||!eX(e)||!eX(i)}function eG(t){return eK(t)||eq(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function eq(t){var e,i;return(e=t.x)&&"0%"!==e||(i=t.y)&&"0%"!==i}function eZ(t,e,i,s,n){return void 0!==n&&(t=s+n*(t-s)),s+i*(t-s)+e}function eJ(t,e=0,i=1,s,n){t.min=eZ(t.min,e,i,s,n),t.max=eZ(t.max,e,i,s,n)}function eQ(t,{x:e,y:i}){eJ(t.x,e.translate,e.scale,e.originPoint),eJ(t.y,i.translate,i.scale,i.originPoint)}function e0(t,e){t.min+=e,t.max+=e}function e1(t,e,i,s,n=.5){let r=eO(t.min,t.max,n);eJ(t,e,i,r,s)}function e2(t,e){return"string"==typeof t?parseFloat(t)/100*(e.max-e.min):t}function e5(t,e,i){let s=i??t;e1(t.x,e2(e.x,s.x),e.scaleX,e.scale,e.originX),e1(t.y,e2(e.y,s.y),e.scaleY,e.scale,e.originY)}function e3(t,e){return eY(function(t,e){if(!e)return t;let i=e({x:t.left,y:t.top}),s=e({x:t.right,y:t.bottom});return{top:i.y,left:i.x,bottom:s.y,right:s.x}}(t.getBoundingClientRect(),e))}class e4 extends ek{constructor(){super(...arguments),this.type="html",this.renderInstance=eF}readValueFromInstance(t,e){if(h.has(e))return this.projection?.isProjecting?tx(e):((t,e)=>{let{transform:i="none"}=getComputedStyle(t);return tb(i,e)})(t,e);{let i=window.getComputedStyle(t),s=(to(e)?i.getPropertyValue(e):i[e])||0;return"string"==typeof s?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:e}){return e3(t,e)}build(t,e,i){eC(t,e,i.transformTemplate)}scrapeMotionValuesFromProps(t,e,i){return eW(t,e,i)}}let e9=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function e6(t){if("string"!=typeof t||t.includes("-"));else if(e9.indexOf(t)>-1||/[A-Z]/u.test(t))return!0;return!1}let e8=(0,o.createContext)({}),e7=(0,o.createContext)({strict:!1}),it=(0,o.createContext)({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"}),ie=(0,o.createContext)({});function ii(t){return Array.isArray(t)?t.join(" "):t}let is=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function ir(t,e,i){for(let s in e)Z(e[s])||eU(s,i)||(t[s]=e[s])}let io=()=>({...is(),attrs:{}}),ia=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function il(t){return t.startsWith("while")||t.startsWith("drag")&&"draggable"!==t||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||ia.has(t)}let ih=t=>!il(t);try{n=(()=>{let t=Error("Cannot find module '@emotion/is-prop-valid'");throw t.code="MODULE_NOT_FOUND",t})().default,"function"==typeof n&&(ih=t=>t.startsWith("on")?!il(t):n(t))}catch{}function iu(t){return Z(t)?t.get():t}let id=(0,o.createContext)(null);function ic(t){let e=(0,o.useRef)(null);return null===e.current&&(e.current=t()),e.current}let ip=t=>(e,i)=>{let s=(0,o.useContext)(ie),n=(0,o.useContext)(id),r=()=>(function({scrapeMotionValuesFromProps:t,createRenderState:e},i,s,n){return{latestValues:function(t,e,i,s){let n={},r=s(t,{});for(let t in r)n[t]=iu(r[t]);let{initial:o,animate:a}=t,l=ef(t),h=eg(t);e&&h&&!l&&!1!==t.inherit&&(void 0===o&&(o=e.initial),void 0===a&&(a=e.animate));let u=!!i&&!1===i.initial,d=(u=u||!1===o)?a:o;if(d&&"boolean"!=typeof d&&!ed(d)){let e=Array.isArray(d)?d:[d];for(let i=0;iiy[e].some(e=>!!t[e])};eS=t,iv=!0}(),eS}let ib=Symbol.for("motionComponentSymbol"),iw="data-"+eA("framerAppearId"),iT=(0,o.createContext)({});function iS(t){return t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,"current")}let iP="u">typeof window?o.useLayoutEffect:o.useEffect;function ik(t,{forwardMotionProps:e=!1,type:i}={},s,n){s&&function(t){let e=ix();for(let i in t)e[i]={...e[i],...t[i]};eS=e}(s);let a=i?"svg"===i:e6(t),l=a?ig:im;function h(i,s){var h;let u,d,c,p={...(0,o.useContext)(it),...i,layoutId:function({layoutId:t}){let e=(0,o.useContext)(e8).id;return e&&void 0!==t?e+"-"+t:t}(i)},{isStatic:m}=p,f=function(t){let{initial:e,animate:i}=function(t,e){if(ef(t)){let{initial:e,animate:i}=t;return{initial:!1===e||ec(e)?e:void 0,animate:ec(i)?i:void 0}}return!1!==t.inherit?e:{}}(t,(0,o.useContext)(ie));return(0,o.useMemo)(()=>({initial:e,animate:i}),[ii(e),ii(i)])}(i),g=l(i,m);if(!m&&"u">typeof window){(0,o.useContext)(e7).strict;let e=function(t){let{drag:e,layout:i}=ix();if(!e&&!i)return{};let s={...e,...i};return{MeasureLayout:e?.isEnabled(t)||i?.isEnabled(t)?s.MeasureLayout:void 0,ProjectionNode:s.ProjectionNode}}(p);u=e.MeasureLayout,f.visualElement=function(t,e,i,s,n,r){let{visualElement:a}=(0,o.useContext)(ie),l=(0,o.useContext)(e7),h=(0,o.useContext)(id),u=(0,o.useContext)(it),d=u.reducedMotion,c=u.skipAnimations,p=(0,o.useRef)(null),m=(0,o.useRef)(!1);s=s||l.renderer,!p.current&&s&&(p.current=s(t,{visualState:e,parent:a,props:i,presenceContext:h,blockInitialAnimation:!!h&&!1===h.initial,reducedMotionConfig:d,skipAnimations:c,isSVG:r}),m.current&&p.current&&(p.current.manuallyAnimateOnMount=!0));let f=p.current,g=(0,o.useContext)(iT);f&&!f.projection&&n&&("html"===f.type||"svg"===f.type)&&function(t,e,i,s){let{layoutId:n,layout:r,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:h,layoutAnchor:u,layoutCrossfade:d}=e;t.projection=new i(t.latestValues,e["data-framer-portal-id"]?void 0:function t(e){if(e)return!1!==e.options.allowProjection?e.projection:t(e.parent)}(t.parent)),t.projection.setOptions({layoutId:n,layout:r,alwaysMeasureLayout:!!o||a&&iS(a),visualElement:t,animationType:"string"==typeof r?r:"both",initialPromotionConfig:s,crossfade:d,layoutScroll:l,layoutRoot:h,layoutAnchor:u})}(p.current,i,n,g);let y=(0,o.useRef)(!1);(0,o.useInsertionEffect)(()=>{f&&y.current&&f.update(i,h)});let v=i[iw],x=(0,o.useRef)(!!v&&"u">typeof window&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return iP(()=>{m.current=!0,f&&(y.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),f.scheduleRenderMicrotask(),x.current&&f.animationState&&f.animationState.animateChanges())}),(0,o.useEffect)(()=>{f&&(!x.current&&f.animationState&&f.animationState.animateChanges(),x.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),x.current=!1),f.enteringChildren=void 0)}),f}(t,g,p,n,e.ProjectionNode,a)}return(0,r.jsxs)(ie.Provider,{value:f,children:[u&&f.visualElement?(0,r.jsx)(u,{visualElement:f.visualElement,...p}):null,function(t,e,i,{latestValues:s},n,r=!1,a){let l=(a??e6(t)?function(t,e,i,s){let n=(0,o.useMemo)(()=>{let i=io();return eL(i,e,eB(s),t.transformTemplate,t.style),{...i.attrs,style:{...i.style}}},[e]);if(t.style){let e={};ir(e,t.style,t),n.style={...e,...n.style}}return n}:function(t,e){let i,s,n={},r=(i=t.style||{},ir(s={},i,t),Object.assign(s,function({transformTemplate:t},e){return(0,o.useMemo)(()=>{let i=is();return eC(i,e,t),Object.assign({},i.vars,i.style)},[e])}(t,e)),s);return t.drag&&!1!==t.dragListener&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=!0===t.drag?"none":`pan-${"x"===t.drag?"y":"x"}`),void 0===t.tabIndex&&(t.onTap||t.onTapStart||t.whileTap)&&(n.tabIndex=0),n.style=r,n})(e,s,n,t),h=function(t,e,i){let s={};for(let n in t)("values"!==n||"object"!=typeof t.values)&&!Z(t[n])&&(ih(n)||!0===i&&il(n)||!e&&!il(n)||t.draggable&&n.startsWith("onDrag"))&&(s[n]=t[n]);return s}(e,"string"==typeof t,r),u=t!==o.Fragment?{...h,...l,ref:i}:{},{children:d}=e,c=(0,o.useMemo)(()=>Z(d)?d.get():d,[d]);return(0,o.createElement)(t,{...u,children:c})}(t,i,(h=f.visualElement,d=(0,o.useRef)(s),(0,o.useInsertionEffect)(()=>{d.current=s}),c=(0,o.useRef)(null),(0,o.useCallback)(t=>{t&&g.onMount?.(t),h&&(t?h.mount(t):h.unmount());let e=d.current;if("function"==typeof e)if(t){let i=e(t);"function"==typeof i&&(c.current=i)}else c.current?(c.current(),c.current=null):e(t);else e&&(e.current=t)},[h])),g,m,e,a)]})}h.displayName=`motion.${"string"==typeof t?t:`create(${t.displayName??t.name??""})`}`;let u=(0,o.forwardRef)(h);return u[ib]=t,u}class iA{constructor(t){this.isMounted=!1,this.node=t}update(){}}function iE(t,e,i){let s=t.getProps();return ew(s,e,void 0!==i?i:s.custom,t)}function iM(t,e){if(t?.inherit&&e){let{inherit:i,...s}=t;return{...e,...s}}return t}function iV(t,e){let i=t?.[e]??t?.default??t;return i!==t?iM(i,t):i}let iC=t=>Array.isArray(t);function ij(t,e){let i=t.getValue("willChange");if(Z(i)&&i.add)return i.add(e);if(!i&&tE.WillChange){let i=new tE.WillChange("auto");t.addValue("willChange",i),i.add(e)}}let iR=(...t)=>t.reduce((t,e)=>i=>e(t(i)));function iD(t,e,i){return(i<0&&(i+=1),i>1&&(i-=1),i<1/6)?t+(e-t)*6*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function iL(t,e){return i=>i>0?e:t}let i_=(t,e,i)=>{let s=t*t,n=i*(e*e-s)+s;return n<0?0:Math.sqrt(n)},iB=[w,b,V];function iF(t){let e=iB.find(e=>e.test(t));if(ts(!!e,`'${t}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!e)return!1;let i=e.parse(t);return e===V&&(i=function({hue:t,saturation:e,lightness:i,alpha:s}){t/=360,i/=100;let n=0,r=0,o=0;if(e/=100){let s=i<.5?i*(1+e):i+e-i*e,a=2*i-s;n=iD(a,s,t+1/3),r=iD(a,s,t),o=iD(a,s,t-1/3)}else n=r=o=i;return{red:Math.round(255*n),green:Math.round(255*r),blue:Math.round(255*o),alpha:s}}(i)),i}let iI=(t,e)=>{let i=iF(t),s=iF(e);if(!i||!s)return iL(t,e);let n={...i};return t=>(n.red=i_(i.red,s.red,t),n.green=i_(i.green,s.green,t),n.blue=i_(i.blue,s.blue,t),n.alpha=eO(i.alpha,s.alpha,t),b.transform(n))},iN=new Set(["none","hidden"]);function iO(t,e){return i=>eO(t,e,i)}function iz(t){return"number"==typeof t?iO:"string"==typeof t?tl(t)?iL:C.test(t)?iI:i$:Array.isArray(t)?iU:"object"==typeof t?C.test(t)?iI:iW:iL}function iU(t,e){let i=[...t],s=i.length,n=t.map((t,i)=>iz(t)(t,e[i]));return t=>{for(let e=0;e{for(let e in s)i[e]=s[e](t);return i}}let i$=(t,e)=>{let i=F.createTransformer(e),s=_(t),n=_(e);if(!(s.indexes.var.length===n.indexes.var.length&&s.indexes.color.length===n.indexes.color.length&&s.indexes.number.length>=n.indexes.number.length))return ts(!0,`Complex values '${t}' and '${e}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),iL(t,e);if(iN.has(t)&&!n.values.length||iN.has(e)&&!s.values.length)return iN.has(t)?i=>i<=0?t:e:i=>i>=1?e:t;return iR(iU(function(t,e){let i=[],s={color:0,var:0,number:0};for(let n=0;n{let e=({timestamp:e})=>t(e);return{start:(t=!0)=>tC.update(e,t),stop:()=>tj(e),now:()=>tR.isProcessing?tR.timestamp:en.now()}};function iX(t){let e=0,i=t.next(e);for(;!i.done&&e<2e4;)e+=50,i=t.next(e);return e>=2e4?1/0:e}let iK=.01,iG=2,iq=.005,iZ=.5;function iJ(t,e){return t*Math.sqrt(1-e*e)}let iQ=["duration","bounce"],i0=["stiffness","damping","mass"];function i1(t,e){return e.some(e=>void 0!==t[e])}function i2(t=.3,e=.3){let i,s,n,r,o,a,l="object"!=typeof t?{visualDuration:t,keyframes:[0,1],bounce:e}:t,{restSpeed:h,restDelta:d}=l,c=l.keyframes[0],p=l.keyframes[l.keyframes.length-1],m={done:!1,value:c},{stiffness:f,damping:g,mass:y,duration:v,velocity:x,isResolvedFromDuration:b}=function(t){let e={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...t};if(!i1(t,i0)&&i1(t,iQ))if(e.velocity=0,t.visualDuration){let i=2*Math.PI/(1.2*t.visualDuration),s=i*i,n=2*u(.05,1,1-(t.bounce||0))*Math.sqrt(s);e={...e,mass:1,stiffness:s,damping:n}}else{let i=function({duration:t=800,bounce:e=.3,velocity:i=0,mass:s=1}){let n,r;ts(t<=tH(10),"Spring duration must be 10 seconds or less","spring-duration-limit");let o=1-e;o=u(.05,1,o),t=u(.01,10,t/1e3),o<1?(n=e=>{let s=e*o,n=s*t;return .001-(s-i)/iJ(e,o)*Math.exp(-n)},r=e=>{let s=e*o*t,r=Math.pow(o,2)*Math.pow(e,2)*t,a=Math.exp(-s),l=iJ(Math.pow(e,2),o);return(s*i+i-r)*a*(-n(e)+.001>0?-1:1)/l}):(n=e=>-.001+Math.exp(-e*t)*((e-i)*t+1),r=e=>t*t*(i-e)*Math.exp(-e*t));let a=function(t,e,i){let s=i;for(let i=1;i<12;i++)s-=t(s)/e(s);return s}(n,r,5/t);if(t=tH(t),isNaN(a))return{stiffness:100,damping:10,duration:t};{let e=Math.pow(a,2)*s;return{stiffness:e,damping:2*o*Math.sqrt(s*e),duration:t}}}({...t,velocity:0});(e={...e,...i,mass:1}).isResolvedFromDuration=!0}return e}({...l,velocity:-((l.velocity||0)/1e3)}),w=x||0,T=g/(2*Math.sqrt(f*y)),S=p-c,P=Math.sqrt(f/y)/1e3,k=5>Math.abs(S);if(h||(h=k?iK:iG),d||(d=k?iq:iZ),T<1)n=iJ(P,T),r=(w+T*P*S)/n,i=t=>p-Math.exp(-T*P*t)*(r*Math.sin(n*t)+S*Math.cos(n*t)),o=T*P*r+S*n,a=T*P*S-r*n,s=t=>Math.exp(-T*P*t)*(o*Math.sin(n*t)+a*Math.cos(n*t));else if(1===T){i=t=>p-Math.exp(-P*t)*(S+(w+P*S)*t);let t=w+P*S;s=e=>Math.exp(-P*e)*(P*t*e-w)}else{let t=P*Math.sqrt(T*T-1);i=e=>{let i=Math.exp(-T*P*e),s=Math.min(t*e,300);return p-i*((w+T*P*S)*Math.sinh(s)+t*S*Math.cosh(s))/t};let e=(w+T*P*S)/t,n=T*P*e-S*t,r=T*P*S-e*t;s=e=>{let i=Math.exp(-T*P*e),s=Math.min(t*e,300);return i*(n*Math.sinh(s)+r*Math.cosh(s))}}let A={calculatedDuration:b&&v||null,velocity:t=>tH(s(t)),next:t=>{if(!b&&T<1){let e=Math.exp(-T*P*t),i=Math.sin(n*t),s=Math.cos(n*t),l=p-e*(r*i+S*s);return m.done=Math.abs(tH(e*(o*i+a*s)))<=h&&Math.abs(p-l)<=d,m.value=m.done?p:l,m}let e=i(t);return b?m.done=t>=v:m.done=Math.abs(tH(s(t)))<=h&&Math.abs(p-e)<=d,m.value=m.done?p:e,m},toString:()=>{let t=Math.min(iX(A),2e4),e=t9(e=>A.next(t*e).value,t,30);return t+"ms "+e},toTransition:()=>{}};return A}function i5(t,e,i){let s=Math.max(e-5,0);return er(i-t(s),e-s)}function i3({keyframes:t,velocity:e=0,power:i=.8,timeConstant:s=325,bounceDamping:n=10,bounceStiffness:r=500,modifyTarget:o,min:a,max:l,restDelta:h=.5,restSpeed:u}){let d,c,p=t[0],m={done:!1,value:p},f=i*e,g=p+f,y=void 0===o?g:o(g);y!==g&&(f=y-p);let v=t=>-f*Math.exp(-t/s),x=t=>y+v(t),b=t=>{let e=v(t),i=x(t);m.done=Math.abs(e)<=h,m.value=m.done?y:i},w=t=>{let e;if(e=m.value,void 0!==a&&el){var i;d=t,c=i2({keyframes:[m.value,(i=m.value,void 0===a?l:void 0===l||Math.abs(a-i){let e=!1;return(c||void 0!==d||(e=!0,b(t),w(t)),void 0!==d&&t>=d)?c.next(t-d):(e||b(t),m)}}}i2.applyToOptions=t=>{let e=function(t,e=100,i){let s=i({...t,keyframes:[0,e]}),n=Math.min(iX(s),2e4);return{type:"keyframes",ease:t=>s.next(n*t).value/e,duration:n/1e3}}(t,100,i2);return t.ease=e.ease,t.duration=tH(e.duration),t.type="keyframes",t};let i4=(t,e,i)=>(((1-3*i+3*e)*t+(3*i-6*e))*t+3*e)*t;function i9(t,e,i,s){return t===e&&i===s?tA:n=>0===n||1===n?n:i4(function(t,e,i,s,n){let r,o,a=0;do(r=i4(o=e+(i-e)/2,s,n)-t)>0?i=o:e=o;while(Math.abs(r)>1e-7&&++a<12)return o}(n,0,1,t,i),e,s)}let i6=i9(.42,0,1,1),i8=i9(0,0,.58,1),i7=i9(.42,0,.58,1),st=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,se=t=>e=>1-t(1-e),si=i9(.33,1.53,.69,.99),ss=se(si),sn=st(ss),sr=t=>t>=1?1:(t*=2)<1?.5*ss(t):.5*(2-Math.pow(2,-10*(t-1))),so=t=>1-Math.sin(Math.acos(t)),sa=se(so),sl=st(so),sh={linear:tA,easeIn:i6,easeInOut:i7,easeOut:i8,circIn:so,circInOut:sl,circOut:sa,backIn:ss,backInOut:sn,backOut:si,anticipate:sr},su=t=>{if(t3(t)){tn(4===t.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[e,i,s,n]=t;return i9(e,i,s,n)}return"string"==typeof t?(tn(void 0!==sh[t],`Invalid easing type '${t}'`,"invalid-easing-type"),sh[t]):t},sd=(t,e,i)=>{let s=e-t;return s?(i-t)/s:1};function sc(t,e,{clamp:i=!0,ease:s,mixer:n}={}){let r=t.length;if(tn(r===e.length,"Both input and output ranges must be the same length","range-length"),1===r)return()=>e[0];if(2===r&&e[0]===e[1])return()=>e[1];let o=t[0]===t[1];t[0]>t[r-1]&&(t=[...t].reverse(),e=[...e].reverse());let a=function(t,e,i){let s=[],n=i||tE.mix||iH,r=t.length-1;for(let i=0;i{if(o&&i1)for(;sh(u(t[0],t[r-1],e)):h}function sp({duration:t=300,keyframes:e,times:i,ease:s="easeInOut"}){var n;let r,o=Array.isArray(s)&&"number"!=typeof s[0]?s.map(su):su(s),a={done:!1,value:e[0]},l=sc((n=i&&i.length===e.length?i:(!function(t,e){let i=t[t.length-1];for(let s=1;s<=e;s++){let n=sd(0,e,s);t.push(eO(i,1,n))}}(r=[0],e.length-1),r),n.map(e=>e*t)),e,{ease:Array.isArray(o)?o:e.map(()=>o||i7).splice(0,e.length-1)});return{calculatedDuration:t,next:e=>(a.value=l(e),a.done=e>=t,a)}}let sm={decay:i3,inertia:i3,tween:sp,keyframes:sp,spring:i2};function sf(t){"string"==typeof t.type&&(t.type=sm[t.type])}let sg=t=>t/100;class sy extends t2{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:t}=this.options;t&&t.updatedAt!==en.now()&&this.tick(en.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},t5.mainThread++,this.options=t,this.initAnimation(),this.play(),!1===t.autoplay&&this.pause()}initAnimation(){let{options:t}=this;sf(t);let{type:e=sp,repeat:i=0,repeatDelay:s=0,repeatType:n,velocity:r=0}=t,{keyframes:o}=t,a=e||sp;a!==sp&&"number"!=typeof o[0]&&(this.mixKeyframes=iR(sg,iH(o[0],o[1])),o=[0,100]);let l=a({...t,keyframes:o});"mirror"===n&&(this.mirroredGenerator=a({...t,keyframes:[...o].reverse(),velocity:-r})),null===l.calculatedDuration&&(l.calculatedDuration=iX(l));let{calculatedDuration:h}=l;this.calculatedDuration=h,this.resolvedDuration=h+s,this.totalDuration=this.resolvedDuration*(i+1)-s,this.generator=l}updateTime(t){let e=Math.round(t-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=e}tick(t,e=!1){let i,{generator:s,totalDuration:n,mixKeyframes:r,mirroredGenerator:o,resolvedDuration:a,calculatedDuration:l}=this;if(null===this.startTime)return s.next(0);let{delay:h=0,keyframes:d,repeat:c,repeatType:p,repeatDelay:m,type:f,onUpdate:g,finalKeyframe:y}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-n/this.speed,this.startTime)),e?this.currentTime=t:this.updateTime(t);let v=this.currentTime-h*(this.playbackSpeed>=0?1:-1),x=this.playbackSpeed>=0?v<0:v>n;this.currentTime=Math.max(v,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=n);let b=this.currentTime,w=s;if(c){let t=Math.min(this.currentTime,n)/a,e=Math.floor(t),i=t%1;!i&&t>=1&&(i=1),1===i&&e--,(e=Math.min(e,c+1))%2&&("reverse"===p?(i=1-i,m&&(i-=m/a)):"mirror"===p&&(w=o)),b=u(0,1,i)*a}x?(this.delayState.value=d[0],i=this.delayState):i=w.next(b),r&&!x&&(i.value=r(i.value));let{done:T}=i;x||null===l||(T=this.playbackSpeed>=0?this.currentTime>=n:this.currentTime<=0);let S=null===this.holdTime&&("finished"===this.state||"running"===this.state&&T);return S&&f!==i3&&(i.value=t1(d,this.options,y,this.speed)),g&&g(i.value),S&&this.finish(),i}then(t,e){return this.finished.then(t,e)}get duration(){return this.calculatedDuration/1e3}get iterationDuration(){let{delay:t=0}=this.options||{};return this.duration+t/1e3}get time(){return this.currentTime/1e3}set time(t){t=tH(t),this.currentTime=t,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=t,this.tick(t))}getGeneratorVelocity(){let t=this.currentTime;if(t<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(t);let e=this.generator.next(t).value;return i5(t=>this.generator.next(t).value,t,e)}get speed(){return this.playbackSpeed}set speed(t){let e=this.playbackSpeed!==t;e&&this.driver&&this.updateTime(en.now()),this.playbackSpeed=t,e&&this.driver&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:t=iY,startTime:e}=this.options;this.driver||(this.driver=t(t=>this.tick(t))),this.options.onPlay?.();let i=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=i):null!==this.holdTime?this.startTime=i-this.holdTime:this.startTime||(this.startTime=e??i),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(en.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null,t5.mainThread--}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}let sv={anticipate:sr,backInOut:sn,circInOut:sl};class sx extends et{constructor(t){!function(t){"string"==typeof t.ease&&t.ease in sv&&(t.ease=sv[t.ease])}(t),sf(t),super(t),void 0!==t.startTime&&!1!==t.autoplay&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){let{motionValue:e,onUpdate:i,onComplete:s,element:n,...r}=this.options;if(!e)return;if(void 0!==t)return void e.set(t);let o=new sy({...r,autoplay:!1}),a=Math.max(10,en.now()-this.startTime),l=u(0,10,a-10),h=o.sample(a).value,{name:d}=this.options;n&&d&&tG(n,d,h),e.setWithVelocity(o.sample(Math.max(0,a-l)).value,h,l),o.stop()}}let sb=(t,e)=>"zIndex"!==e&&!!("number"==typeof t||Array.isArray(t)||"string"==typeof t&&(F.test(t)||"0"===t)&&!t.startsWith("url("));function sw(t){t.duration=0,t.type="keyframes"}let sT=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/,sS=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),sP=tq(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class sk extends t2{constructor({autoplay:t=!0,delay:e=0,type:i="keyframes",repeat:s=0,repeatDelay:n=0,repeatType:r="loop",keyframes:o,name:a,motionValue:l,element:h,...u}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=en.now();const d={autoplay:t,delay:e,type:i,repeat:s,repeatDelay:n,repeatType:r,name:a,motionValue:l,element:h,...u},c=h?.KeyframeResolver||tO;this.keyframeResolver=new c(o,(t,e,i)=>this.onKeyframesResolved(t,e,d,!i),a,l,h),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,e,i,s){let n;this.keyframeResolver=void 0;let{name:r,type:o,velocity:a,delay:l,isHandoff:h,onUpdate:u}=i;this.resolvedAt=en.now();let d=!0;!function(t,e,i,s){let n=t[0];if(null===n)return!1;if("display"===e||"visibility"===e)return!0;let r=t[t.length-1],o=sb(n,e),a=sb(r,e);return ts(o===a,`You are trying to animate ${e} from "${n}" to "${r}". "${o?r:n}" is not an animatable value.`,"value-not-animatable"),!!o&&!!a&&(function(t){let e=t[0];if(1===t.length)return!0;for(let i=0;i40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:e,...i,keyframes:t},p=d&&!h&&function(t){let{motionValue:e,name:i,repeatDelay:s,repeatType:n,damping:r,type:o,keyframes:a}=t;if(!(e?.owner?.current instanceof HTMLElement))return!1;let{onUpdate:l,transformTemplate:h}=e.owner.getProps();return sP()&&i&&(ee.has(i)||sS.has(i)&&function(t){for(let e=0;e{this.notifyFinished()}).catch(tA),this.pendingTimeline&&(this.stopTimeline=n.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=n}get finished(){return this._animation?this.animation.finished:this._finished}then(t,e){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),tF=!0,tN(),tI(),tF=!1),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let sA={type:"spring",stiffness:500,damping:25,restSpeed:10},sE={type:"keyframes",duration:.8},sM={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},sV=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]),sC=(t,e,i,s={},n,r)=>o=>{let a=iV(s,t)||{},l=a.delay||s.delay||0,{elapsed:u=0}=s;u-=tH(l);let d={keyframes:Array.isArray(i)?i:[null,i],ease:"easeOut",velocity:e.getVelocity(),...a,delay:-u,onUpdate:t=>{e.set(t),a.onUpdate&&a.onUpdate(t)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:t,motionValue:e,element:r?void 0:n};!function(t){for(let e in t)if(!sV.has(e))return!0;return!1}(a)&&Object.assign(d,((t,{keyframes:e})=>e.length>2?sE:h.has(t)?t.startsWith("scale")?{type:"spring",stiffness:550,damping:0===e[1]?2*Math.sqrt(550):30,restSpeed:10}:sA:sM)(t,d)),d.duration&&(d.duration=tH(d.duration)),d.repeatDelay&&(d.repeatDelay=tH(d.repeatDelay)),void 0!==d.from&&(d.keyframes[0]=d.from);let c=!1;if(!1!==d.type&&(0!==d.duration||d.repeatDelay)||(sw(d),0===d.delay&&(c=!0)),(tE.instantAnimations||tE.skipAnimations||n?.shouldSkipAnimations||a.skipAnimations)&&(c=!0,sw(d),d.delay=0),d.allowFlatten=!a.type&&!a.ease,c&&!r&&void 0!==e.get()){let t=t1(d.keyframes,a);if(void 0!==t)return void tC.update(()=>{d.onUpdate(t),d.onComplete()})}return a.isSync?new sy(d):new sk(d)};function sj(t,e,{delay:i=0,transitionOverride:s,type:n}={}){let{transition:r,transitionEnd:o,...a}=e,l=t.getDefaultTransition();r=r?iM(r,l):l;let h=r?.reduceMotion,u=r?.skipAnimations;s&&(r=s);let d=[],c=n&&t.animationState&&t.animationState.getState()[n],p=r?.path;for(let e in p&&p.animateVisualElement(t,a,r,i,d),a){let s=t.getValue(e,t.latestValues[e]??null),n=a[e];if(void 0===n||c&&function({protectedKeys:t,needsAnimating:e},i){let s=t.hasOwnProperty(i)&&!0!==e[i];return e[i]=!1,s}(c,e))continue;let o={delay:i,...iV(r||{},e)};u&&(o.skipAnimations=!0);let l=s.get();if(void 0!==l&&!s.isAnimating()&&!Array.isArray(n)&&n===l&&!o.velocity){tC.update(()=>s.set(n));continue}let p=!1;if(window.MotionHandoffAnimation){let i=t.props[iw];if(i){let t=window.MotionHandoffAnimation(i,e,tC);null!==t&&(o.startTime=t,p=!0)}}ij(t,e);let m=h??t.shouldReduceMotion;s.start(sC(e,s,n,m&&J.has(e)?{type:!1}:o,t,p));let f=s.animation;f&&d.push(f)}if(o){let e=()=>tC.update(()=>{o&&function(t,e){let{transitionEnd:i={},transition:s={},...n}=iE(t,e)||{};for(let e in n={...n,...i}){var r;let i=iC(r=n[e])?r[r.length-1]||0:r;t.hasValue(e)?t.getValue(e).set(i):t.addValue(e,el(i))}}(t,o)});d.length?Promise.all(d).then(e):e()}return d}function sR(t,e,i,s=0,n=1){let r=Array.from(t).sort((t,e)=>t.sortNodePosition(e)).indexOf(e),o=t.size,a=(o-1)*s;return"function"==typeof i?i(r,o):1===n?r*s:a-r*s}function sD(t,e,i={}){let s=iE(t,e,"exit"===i.type?t.presenceContext?.custom:void 0),{transition:n=t.getDefaultTransition()||{}}=s||{};i.transitionOverride&&(n=i.transitionOverride);let r=s?()=>Promise.all(sj(t,s,i)):()=>Promise.resolve(),o=t.variantChildren&&t.variantChildren.size?(s=0)=>{let{delayChildren:r=0,staggerChildren:o,staggerDirection:a}=n;return function(t,e,i=0,s=0,n=0,r=1,o){let a=[];for(let l of t.variantChildren)l.notify("AnimationStart",e),a.push(sD(l,e,{...o,delay:i+("function"==typeof s?0:s)+sR(t.variantChildren,l,s,n,r)}).then(()=>l.notify("AnimationComplete",e)));return Promise.all(a)}(t,e,s,r,o,a,i)}:()=>Promise.resolve(),{when:a}=n;if(!a)return Promise.all([r(),o(i.delay)]);{let[t,e]="beforeChildren"===a?[r,o]:[o,r];return t().then(()=>e())}}let sL=em.length;function s_(t,e){if(!Array.isArray(e))return!1;let i=e.length;if(i!==t.length)return!1;for(let s=0;st.removeEventListener(e,i)}let sW={x:!1,y:!1};function s$(t){return t.max-t.min}function sH(t,e,i,s=.5){t.origin=s,t.originPoint=eO(e.min,e.max,t.origin),t.scale=s$(i)/s$(e),t.translate=eO(i.min,i.max,t.origin)-t.originPoint,(t.scale>=.9999&&t.scale<=1.0001||isNaN(t.scale))&&(t.scale=1),(t.translate>=-.01&&t.translate<=.01||isNaN(t.translate))&&(t.translate=0)}function sY(t,e,i,s){sH(t.x,e.x,i.x,s?s.originX:void 0),sH(t.y,e.y,i.y,s?s.originY:void 0)}function sX(t,e,i,s=0){t.min=(s?eO(i.min,i.max,s):i.min)+e.min,t.max=t.min+s$(e)}function sK(t,e,i,s=0){let n=s?eO(i.min,i.max,s):i.min;t.min=e.min-n,t.max=t.min+s$(e)}function sG(t,e,i,s){sK(t.x,e.x,i.x,s?.x),sK(t.y,e.y,i.y,s?.y)}let sq=t=>"object"==typeof t&&null!==t;function sZ(t){return sq(t)&&"ownerSVGElement"in t}function sJ(t,e,i){if(null==t)return[];if(t instanceof EventTarget)return[t];if("string"==typeof t){let s=document;e&&(s=e.current);let n=i?.[t]??s.querySelectorAll(t);return n?Array.from(n):[]}return Array.from(t).filter(t=>null!=t)}let sQ=new WeakMap,s0=(t,e,i)=>(s,n)=>n&&n[0]?n[0][t+"Size"]:sZ(s)&&"getBBox"in s?s.getBBox()[e]:s[i],s1=s0("inline","width","offsetWidth"),s2=s0("block","height","offsetHeight");function s5({target:t,borderBoxSize:e}){sQ.get(t)?.forEach(i=>{i(t,{get width(){return s1(t,e)},get height(){return s2(t,e)}})})}function s3(t){t.forEach(s5)}let s4=new Set;function s9(t,e){let n;return"function"==typeof t?(s4.add(t),s||(s=()=>{let t={get width(){return window.innerWidth},get height(){return window.innerHeight}};s4.forEach(e=>e(t))},window.addEventListener("resize",s)),()=>{s4.delete(t),s4.size||"function"!=typeof s||(window.removeEventListener("resize",s),s=void 0)}):(!i&&"u">typeof ResizeObserver&&(i=new ResizeObserver(s3)),(n=sJ(t)).forEach(t=>{let s=sQ.get(t);s||(s=new Set,sQ.set(t,s)),s.add(e),i?.observe(t)}),()=>{n.forEach(t=>{let s=sQ.get(t);s?.delete(e),s?.size||i?.unobserve(t)})})}let s6=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]),s8=new Set(["INPUT","SELECT","TEXTAREA"]),s7=t=>"mouse"===t.pointerType?"number"!=typeof t.button||t.button<=0:!1!==t.isPrimary;function nt(t){return{point:{x:t.pageX,y:t.pageY}}}function ne(t,e,i,s){return sU(t,e,t=>s7(t)&&i(t,nt(t)),s)}let ni=({current:t})=>t?t.ownerDocument.defaultView:null,ns=(t,e)=>Math.abs(t-e),nn=new Set(["auto","scroll"]);class nr{constructor(t,e,{transformPagePoint:i,contextWindow:s=window,dragSnapToOrigin:n=!1,distanceThreshold:r=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=t=>{this.handleScroll(t.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{var t,e;if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=no(this.lastRawMoveEventInfo,this.transformPagePoint));let i=nl(this.lastMoveEventInfo,this.history),s=null!==this.startEvent,n=(t=i.offset,e={x:0,y:0},Math.sqrt(ns(t.x,e.x)**2+ns(t.y,e.y)**2)>=this.distanceThreshold);if(!s&&!n)return;let{point:r}=i,{timestamp:o}=tR;this.history.push({...r,timestamp:o});let{onStart:a,onMove:l}=this.handlers;s||(a&&a(this.lastMoveEvent,i),this.startEvent=this.lastMoveEvent),l&&l(this.lastMoveEvent,i)},this.handlePointerMove=(t,e)=>{this.lastMoveEvent=t,this.lastRawMoveEventInfo=e,this.lastMoveEventInfo=no(e,this.transformPagePoint),tC.update(this.updatePoint,!0)},this.handlePointerUp=(t,e)=>{this.end();let{onEnd:i,onSessionEnd:s,resumeAnimation:n}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&n&&n(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let r=nl("pointercancel"===t.type?this.lastMoveEventInfo:no(e,this.transformPagePoint),this.history);this.startEvent&&i&&i(t,r),s&&s(t,r)},!s7(t))return;this.dragSnapToOrigin=n,this.handlers=e,this.transformPagePoint=i,this.distanceThreshold=r,this.contextWindow=s||window;const a=no(nt(t),this.transformPagePoint),{point:l}=a,{timestamp:h}=tR;this.history=[{...l,timestamp:h}];const{onSessionStart:u}=e;u&&u(t,nl(a,this.history)),this.removeListeners=iR(ne(this.contextWindow,"pointermove",this.handlePointerMove),ne(this.contextWindow,"pointerup",this.handlePointerUp),ne(this.contextWindow,"pointercancel",this.handlePointerUp)),o&&this.startScrollTracking(o)}startScrollTracking(t){let e=t.parentElement;for(;e;){let t=getComputedStyle(e);(nn.has(t.overflowX)||nn.has(t.overflowY))&&this.scrollPositions.set(e,{x:e.scrollLeft,y:e.scrollTop}),e=e.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){let e=this.scrollPositions.get(t);if(!e)return;let i=t===window,s=i?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},n={x:s.x-e.x,y:s.y-e.y};(0!==n.x||0!==n.y)&&(i?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=n.x,this.lastMoveEventInfo.point.y+=n.y):this.history.length>0&&(this.history[0].x-=n.x,this.history[0].y-=n.y),this.scrollPositions.set(t,s),tC.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),tj(this.updatePoint)}}function no(t,e){return e?{point:e(t.point)}:t}function na(t,e){return{x:t.x-e.x,y:t.y-e.y}}function nl({point:t},e){return{point:t,delta:na(t,nh(e)),offset:na(t,e[0]),velocity:function(t){if(t.length<2)return{x:0,y:0};let e=t.length-1,i=null,s=nh(t);for(;e>=0&&(i=t[e],!(s.timestamp-i.timestamp>tH(.1)));)e--;if(!i)return{x:0,y:0};i===t[0]&&t.length>2&&s.timestamp-i.timestamp>2*tH(.1)&&(i=t[1]);let n=(s.timestamp-i.timestamp)/1e3;if(0===n)return{x:0,y:0};let r={x:(s.x-i.x)/n,y:(s.y-i.y)/n};return r.x===1/0&&(r.x=0),r.y===1/0&&(r.y=0),r}(e)}}function nh(t){return t[t.length-1]}function nu(t,e,i){return{min:void 0!==e?t.min+e:void 0,max:void 0!==i?t.max+i-(t.max-t.min):void 0}}function nd(t,e){let i=e.min-t.min,s=e.max-t.max;return e.max-e.min{e&&this.snapToCursor(nt(t).point),this.stopAnimation()},r=(t,e)=>{let{drag:i,dragPropagation:s,onDragStart:n}=this.getProps();if(i&&!s&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(t){if("x"===t||"y"===t)if(sW[t])return null;else return sW[t]=!0,()=>{sW[t]=!1};return sW.x||sW.y?null:(sW.x=sW.y=!0,()=>{sW.x=sW.y=!1})}(i),!this.openDragLock))return;this.latestPointerEvent=t,this.latestPanInfo=e,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),sz(t=>{let e=this.getAxisMotionValue(t).get()||0;if(P.test(e)){let{projection:i}=this.visualElement;if(i&&i.layout){let s=i.layout.layoutBox[t];s&&(e=s$(s)*(parseFloat(e)/100))}}this.originPoint[t]=e}),n&&tC.update(()=>n(t,e),!1,!0),ij(this.visualElement,"transform");let{animationState:r}=this.visualElement;r&&r.setActive("whileDrag",!0)},o=(t,e)=>{this.latestPointerEvent=t,this.latestPanInfo=e;let{dragPropagation:i,dragDirectionLock:s,onDirectionLock:n,onDrag:r}=this.getProps();if(!i&&!this.openDragLock)return;let{offset:o}=e;if(s&&null===this.currentDirection){this.currentDirection=function(t,e=10){let i=null;return Math.abs(t.y)>e?i="y":Math.abs(t.x)>e&&(i="x"),i}(o),null!==this.currentDirection&&n&&n(this.currentDirection);return}this.updateAxis("x",e.point,o),this.updateAxis("y",e.point,o),this.visualElement.render(),r&&tC.update(()=>r(t,e),!1,!0)},a=(t,e)=>{this.latestPointerEvent=t,this.latestPanInfo=e,this.stop(t,e),this.latestPointerEvent=null,this.latestPanInfo=null},l=()=>{let{dragSnapToOrigin:t}=this.getProps();(t||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:h}=this.getProps();this.panSession=new nr(t,{onSessionStart:n,onStart:r,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:h,distanceThreshold:i,contextWindow:ni(this.visualElement),element:this.visualElement.current})}stop(t,e){let i=t||this.latestPointerEvent,s=e||this.latestPanInfo,n=this.isDragging;if(this.cancel(),!n||!s||!i)return;let{velocity:r}=s;this.startAnimation(r);let{onDragEnd:o}=this.getProps();o&&tC.postRender(()=>o(i,s))}cancel(){this.isDragging=!1;let{projection:t,animationState:e}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:i}=this.getProps();!i&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),e&&e.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,e,i){let{drag:s}=this.getProps();if(!i||!ny(t,s,this.currentDirection))return;let n=this.getAxisMotionValue(t),r=this.originPoint[t]+i[t];this.constraints&&this.constraints[t]&&(r=function(t,{min:e,max:i},s){return void 0!==e&&ti&&(t=s?eO(i,t,s.max):Math.min(t,i)),t}(r,this.constraints[t],this.elastic[t])),n.set(r)}resolveConstraints(){let{dragConstraints:t,dragElastic:e}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,s=this.constraints;t&&iS(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&i?this.constraints=function(t,{top:e,left:i,bottom:s,right:n}){return{x:nu(t.x,i,n),y:nu(t.y,e,s)}}(i.layoutBox,t):this.constraints=!1,this.elastic=function(t=.35){return!1===t?t=0:!0===t&&(t=.35),{x:nc(t,"left","right"),y:nc(t,"top","bottom")}}(e),s!==this.constraints&&!iS(t)&&i&&this.constraints&&!this.hasMutatedConstraints&&sz(t=>{var e,s;let n;!1!==this.constraints&&this.getAxisMotionValue(t)&&(this.constraints[t]=(e=i.layoutBox[t],s=this.constraints[t],n={},void 0!==s.min&&(n.min=s.min-e.min),void 0!==s.max&&(n.max=s.max-e.min),n))})}resolveRefConstraints(){var t;let{dragConstraints:e,onMeasureDragConstraints:i}=this.getProps();if(!e||!iS(e))return!1;let s=e.current;tn(null!==s,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:n}=this.visualElement;if(!n||!n.layout)return!1;n.root&&(n.root.scroll=void 0,n.root.updateScroll());let r=function(t,e,i){let s=e3(t,i),{scroll:n}=e;return n&&(e0(s.x,n.offset.x),e0(s.y,n.offset.y)),s}(s,n.root,this.visualElement.getTransformPagePoint()),o=(t=n.layout.layoutBox,{x:nd(t.x,r.x),y:nd(t.y,r.y)});if(i){let t=i(function({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}(o));this.hasMutatedConstraints=!!t,t&&(o=eY(t))}return o}startAnimation(t){let{drag:e,dragMomentum:i,dragElastic:s,dragTransition:n,dragSnapToOrigin:r,onDragTransitionEnd:o}=this.getProps(),a=this.constraints||{};return Promise.all(sz(o=>{if(!ny(o,e,this.currentDirection))return;let l=a&&a[o]||{};(!0===r||r===o)&&(l={min:0,max:0});let h={type:"inertia",velocity:i?t[o]:0,bounceStiffness:s?200:1e6,bounceDamping:s?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...n,...l};return this.startAxisValueAnimation(o,h)})).then(o)}startAxisValueAnimation(t,e){let i=this.getAxisMotionValue(t);return ij(this.visualElement,t),i.start(sC(t,i,0,e,this.visualElement,!1))}stopAnimation(){sz(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){let e=`_drag${t.toUpperCase()}`;return this.visualElement.getProps()[e]||this.visualElement.getValue(t,this.visualElement.latestValues[t]??0)}snapToCursor(t){sz(e=>{let{drag:i}=this.getProps();if(!ny(e,i,this.currentDirection))return;let{projection:s}=this.visualElement,n=this.getAxisMotionValue(e);if(s&&s.layout){let{min:i,max:r}=s.layout.layoutBox[e],o=n.get()||0;n.set(t[e]-eO(i,r,.5)+o)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:t,dragConstraints:e}=this.getProps(),{projection:i}=this.visualElement;if(!iS(e)||!i||!this.constraints)return;this.stopAnimation();let s={x:0,y:0};sz(t=>{let e=this.getAxisMotionValue(t);if(e&&!1!==this.constraints){var i,n;let r,o,a,l=e.get();s[t]=(i={min:l,max:l},n=this.constraints[t],r=.5,o=s$(i),(a=s$(n))>o?r=sd(n.min,n.max-o,i.min):o>a&&(r=sd(i.min,i.max-a,n.min)),u(0,1,r))}});let{transformTemplate:n}=this.visualElement.getProps();this.visualElement.current.style.transform=n?n({},""):"none",i.root&&i.root.updateScroll(),i.updateLayout(),this.constraints=!1,this.resolveConstraints(),sz(e=>{if(!ny(e,t,null))return;let i=this.getAxisMotionValue(e),{min:n,max:r}=this.constraints[e];i.set(eO(n,r,s[e]))}),this.visualElement.render()}addListeners(){let t;if(!this.visualElement.current)return;nm.set(this.visualElement,this);let e=this.visualElement.current,i=ne(e,"pointerdown",t=>{let{drag:i,dragListener:s=!0}=this.getProps(),n=t.target,r=n!==e&&(s8.has(n.tagName)||!0===n.isContentEditable);i&&s&&!r&&this.start(t)}),s=()=>{var i,s,n;let r,o,{dragConstraints:a}=this.getProps();iS(a)&&a.current&&(this.constraints=this.resolveRefConstraints(),t||(i=e,s=a.current,r=s9(i,ng(n=()=>this.scalePositionWithinConstraints())),o=s9(s,ng(n)),t=()=>{r(),o()}))},{projection:n}=this.visualElement,r=n.addEventListener("measure",s);n&&!n.layout&&(n.root&&n.root.updateScroll(),n.updateLayout()),tC.read(s);let o=sU(window,"resize",()=>this.scalePositionWithinConstraints()),a=n.addEventListener("didUpdate",({delta:t,hasLayoutChanged:e})=>{this.isDragging&&e&&(sz(e=>{let i=this.getAxisMotionValue(e);i&&(this.originPoint[e]+=t[e].translate,i.set(i.get()+t[e].translate))}),this.visualElement.render())});return()=>{o(),i(),r(),a&&a(),t&&t()}}getProps(){let t=this.visualElement.getProps(),{drag:e=!1,dragDirectionLock:i=!1,dragPropagation:s=!1,dragConstraints:n=!1,dragElastic:r=.35,dragMomentum:o=!0}=t;return{...t,drag:e,dragDirectionLock:i,dragPropagation:s,dragConstraints:n,dragElastic:r,dragMomentum:o}}}function ng(t){let e=!0;return()=>{if(e){e=!1;return}t()}}function ny(t,e,i){return(!0===e||e===t)&&(null===i||i===t)}let nv=t=>(e,i)=>{t&&tC.update(()=>t(e,i),!1,!0)},nx={hasAnimatedSinceResize:!0,hasEverUpdated:!1};var nb=o;let nw=!1;class nT extends nb.Component{componentDidMount(){let{visualElement:t,layoutGroup:e,switchLayoutGroup:i,layoutId:s}=this.props,{projection:n}=t;n&&(e.group&&e.group.add(n),i&&i.register&&s&&i.register(n),nw&&n.root.didUpdate(),n.addEventListener("animationComplete",()=>{this.safeToRemove()}),n.setOptions({...n.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),nx.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){let{layoutDependency:e,visualElement:i,drag:s,isPresent:n}=this.props,{projection:r}=i;return r&&(r.isPresent=n,t.layoutDependency!==e&&r.setOptions({...r.options,layoutDependency:e}),nw=!0,s||t.layoutDependency!==e||void 0===e||t.isPresent!==n?r.willUpdate():this.safeToRemove(),t.isPresent!==n&&(n?r.promote():r.relegate()||tC.postRender(()=>{let t=r.getStack();t&&t.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{visualElement:t,layoutAnchor:e}=this.props,{projection:i}=t;i&&(i.options.layoutAnchor=e,i.root.didUpdate(),ei.postRender(()=>{!i.currentAnimation&&i.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:t,layoutGroup:e,switchLayoutGroup:i}=this.props,{projection:s}=t;nw=!0,s&&(s.scheduleCheckAfterUnmount(),e&&e.group&&e.group.remove(s),i&&i.deregister&&i.deregister(s))}safeToRemove(){let{safeToRemove:t}=this.props;t&&t()}render(){return null}}function nS(t){let[e,i]=function(t=!0){let e=(0,o.useContext)(id);if(null===e)return[!0,null];let{isPresent:i,onExitComplete:s,register:n}=e,r=(0,o.useId)();(0,o.useEffect)(()=>{if(t)return n(r)},[t]);let a=(0,o.useCallback)(()=>t&&s&&s(r),[r,s,t]);return!i&&s?[!1,a]:[!0]}(),s=(0,nb.useContext)(e8);return(0,r.jsx)(nT,{...t,layoutGroup:s,switchLayoutGroup:(0,nb.useContext)(iT),isPresent:e,safeToRemove:i})}let nP=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],nk=nP.length,nA=t=>"string"==typeof t?parseFloat(t):t,nE=t=>"number"==typeof t||k.test(t);function nM(t,e){return void 0!==t[e]?t[e]:t.borderRadius}let nV=nj(0,.5,sa),nC=nj(.5,.95,tA);function nj(t,e,i){return s=>se?1:i(sd(t,e,s))}function nR(t,e){t.min=e.min,t.max=e.max}function nD(t,e){nR(t.x,e.x),nR(t.y,e.y)}function nL(t,e){t.translate=e.translate,t.scale=e.scale,t.originPoint=e.originPoint,t.origin=e.origin}function n_(t,e,i,s,n){return t-=e,t=s+1/i*(t-s),void 0!==n&&(t=s+1/n*(t-s)),t}function nB(t,e,[i,s,n],r,o){!function(t,e=0,i=1,s=.5,n,r=t,o=t){if(P.test(e)&&(e=parseFloat(e),e=eO(o.min,o.max,e/100)-o.min),"number"!=typeof e)return;let a=eO(r.min,r.max,s);t===r&&(a-=e),t.min=n_(t.min,e,i,a,n),t.max=n_(t.max,e,i,a,n)}(t,e[i],e[s],e[n],e.scale,r,o)}let nF=["x","scaleX","originX"],nI=["y","scaleY","originY"];function nN(t,e,i,s){nB(t.x,e,nF,i?i.x:void 0,s?s.x:void 0),nB(t.y,e,nI,i?i.y:void 0,s?s.y:void 0)}function nO(t){return 0===t.translate&&1===t.scale}function nz(t){return nO(t.x)&&nO(t.y)}function nU(t,e){return t.min===e.min&&t.max===e.max}function nW(t,e){return Math.round(t.min)===Math.round(e.min)&&Math.round(t.max)===Math.round(e.max)}function n$(t,e){return nW(t.x,e.x)&&nW(t.y,e.y)}function nH(t){return s$(t.x)/s$(t.y)}function nY(t,e){return t.translate===e.translate&&t.scale===e.scale&&t.originPoint===e.originPoint}class nX{constructor(){this.members=[]}add(t){tY(this.members,t);for(let e=this.members.length-1;e>=0;e--){let i=this.members[e];if(i===t||i===this.lead||i===this.prevLead)continue;let s=i.instance;s&&!1!==s.isConnected||i.snapshot||(tX(this.members,i),i.unmount())}t.scheduleRender()}remove(t){if(tX(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){let t=this.members[this.members.length-1];t&&this.promote(t)}}relegate(t){for(let e=this.members.indexOf(t)-1;e>=0;e--){let t=this.members[e];if(!1!==t.isPresent&&t.instance?.isConnected!==!1)return this.promote(t),!0}return!1}promote(t,e){let i=this.lead;if(t!==i&&(this.prevLead=i,this.lead=t,t.show(),i)){i.updateSnapshot(),t.scheduleRender();let{layoutDependency:s}=i.options,{layoutDependency:n}=t.options;(void 0===s||s!==n)&&(t.resumeFrom=i,e&&(i.preserveOpacity=!0),i.snapshot&&(t.snapshot=i.snapshot,t.snapshot.latestValues=i.animationValues||i.latestValues),t.root?.isUpdating&&(t.isLayoutDirty=!0)),!1===t.options.crossfade&&i.hide()}}exitAnimationComplete(){this.members.forEach(t=>{t.options.onExitComplete?.(),t.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(t=>t.instance&&t.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}let nK=(t,e)=>t.depth-e.depth;class nG{constructor(){this.children=[],this.isDirty=!1}add(t){tY(this.children,t),this.isDirty=!0}remove(t){tX(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(nK),this.isDirty=!1,this.children.forEach(t)}}let nq=["","X","Y","Z"],nZ=0;function nJ(t,e,i,s){let{latestValues:n}=e;n[t]&&(i[t]=n[t],e.setStaticValue(t,0),s&&(s[t]=0))}function nQ({attachResizeListener:t,defaultParent:e,measureScroll:i,checkIsScrollRoot:s,resetTransform:n}){return class{constructor(t={},i=e?.()){this.id=nZ++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(n2),this.nodes.forEach(re),this.nodes.forEach(ri),this.nodes.forEach(n5)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=t,this.root=i?i.root||i:this,this.path=i?[...i.path,i]:[],this.parent=i,this.depth=i?i.depth+1:0;for(let t=0;tthis.root.updateBlockedByResize=!1;tC.read(()=>{s=window.innerWidth}),t(e,()=>{let t=window.innerWidth;if(t!==s){let e,r;s=t,this.root.updateBlockedByResize=!0,i&&i(),e=en.now(),r=({timestamp:t})=>{let i=t-e;i>=250&&(tj(r),n(i-250))},tC.setup(r,!0),i=()=>tj(r),nx.hasAnimatedSinceResize&&(nx.hasAnimatedSinceResize=!1,this.nodes.forEach(rt))}})}i&&this.root.registerSharedNode(i,this),!1!==this.options.animate&&n&&(i||s)&&this.addEventListener("didUpdate",({delta:t,hasLayoutChanged:e,hasRelativeLayoutChanged:i,layout:s})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let r=this.options.transition||n.getDefaultTransition()||rl,{onLayoutAnimationStart:o,onLayoutAnimationComplete:a}=n.getProps(),l=!this.targetLayout||!n$(this.targetLayout,s),h=!e&&i;if(this.options.layoutRoot||this.resumeFrom||h||e&&(l||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let e={...iV(r,"layout"),onPlay:o,onComplete:a};(n.shouldReduceMotion||this.options.layoutRoot)&&(e.delay=0,e.type=!1),this.startAnimation(e),this.setAnimationOrigin(t,h,e.path)}else e||rt(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=s})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let t=this.getStack();t&&t.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),tj(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEach(rs),this.animationId++)}getTransformTemplate(){let{visualElement:t}=this.options;return t&&t.getProps().transformTemplate}willUpdate(t=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function t(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:i}=e.options;if(!i)return;let s=i.props[iw];if(window.MotionHasOptimisedAnimation(s,"transform")){let{layout:t,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(s,"transform",tC,!(t||i))}let{parent:n}=e;n&&!n.hasCheckedOptimisedAppear&&t(n)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let t=0;t{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||s$(this.snapshot.measuredBox.x)||s$(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let t=0;t.999999999999&&(e.x=1),e.y<1.0000000000001&&e.y>.999999999999&&(e.y=1)}}(this.layoutCorrected,this.treeScale,this.path,e),t.layout&&!t.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(t.target=t.layout.layoutBox,t.targetWithTransforms=q());let{target:a}=t;if(!a){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(nL(this.prevProjectionDelta.x,this.projectionDelta.x),nL(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),sY(this.projectionDelta,this.layoutCorrected,a,this.latestValues),this.treeScale.x===r&&this.treeScale.y===o&&nY(this.projectionDelta.x,this.prevProjectionDelta.x)&&nY(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",a))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(t=!0){if(this.options.visualElement?.scheduleRender(),t){let t=this.getStack();t&&t.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=K(),this.projectionDelta=K(),this.projectionDeltaWithTransform=K()}setAnimationOrigin(t,e=!1,i){let s,n=this.snapshot,r=n?n.latestValues:{},o={...this.latestValues},a=K();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!e;let l=q(),h=(n?n.source:void 0)!==(this.layout?this.layout.source:void 0),u=this.getStack(),d=!u||u.members.length<=1,c=!!(h&&!d&&!0===this.options.crossfade&&!this.path.some(ra));this.animationProgress=0;let p=i?.interpolateProjection(t);this.mixTargetDelta=e=>{let i=e/1e3,n=p?.(i);if(n?(a.x.translate=n.x,a.x.scale=eO(t.x.scale,1,i),a.x.origin=t.x.origin,a.x.originPoint=t.x.originPoint,a.y.translate=n.y,a.y.scale=eO(t.y.scale,1,i),a.y.origin=t.y.origin,a.y.originPoint=t.y.originPoint):(rr(a.x,t.x,i),rr(a.y,t.y,i)),this.setTargetDelta(a),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var u,m,f,g,y,v;sG(l,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),f=this.relativeTarget,g=this.relativeTargetOrigin,y=l,v=i,ro(f.x,g.x,y.x,v),ro(f.y,g.y,y.y,v),s&&(u=this.relativeTarget,m=s,nU(u.x,m.x)&&nU(u.y,m.y))&&(this.isProjectionDirty=!1),s||(s=q()),nD(s,this.relativeTarget)}h&&(this.animationValues=o,function(t,e,i,s,n,r){n?(t.opacity=eO(0,i.opacity??1,nV(s)),t.opacityExit=eO(e.opacity??1,0,nC(s))):r&&(t.opacity=eO(e.opacity??1,i.opacity??1,s));for(let n=0;n{var e,i,s;let n;nx.hasAnimatedSinceResize=!0,t5.layout++,this.motionValue||(this.motionValue=el(0)),this.motionValue.jump(0,!1),this.currentAnimation=(e=this.motionValue,i=[0,1e3],s={...t,velocity:0,isSync:!0,onUpdate:e=>{this.mixTargetDelta(e),t.onUpdate&&t.onUpdate(e)},onStop:()=>{t5.layout--},onComplete:()=>{t5.layout--,t.onComplete&&t.onComplete(),this.completeAnimation()}},(n=Z(e)?e:el(e)).start(sC("",n,i,s)),n.animation),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let t=this.getStack();t&&t.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let t=this.getLead(),{targetWithTransforms:e,target:i,layout:s,latestValues:n}=t;if(e&&i&&s){if(this!==t&&this.layout&&s&&rc(this.options.animationType,this.layout.layoutBox,s.layoutBox)){i=this.target||q();let e=s$(this.layout.layoutBox.x);i.x.min=t.target.x.min,i.x.max=i.x.min+e;let s=s$(this.layout.layoutBox.y);i.y.min=t.target.y.min,i.y.max=i.y.min+s}nD(e,i),e5(e,n),sY(this.projectionDeltaWithTransform,this.layoutCorrected,e,n)}}registerSharedNode(t,e){this.sharedNodes.has(t)||this.sharedNodes.set(t,new nX),this.sharedNodes.get(t).add(e);let i=e.options.initialPromotionConfig;e.promote({transition:i?i.transition:void 0,preserveFollowOpacity:i&&i.shouldPreserveFollowOpacity?i.shouldPreserveFollowOpacity(e):void 0})}isLead(){let t=this.getStack();return!t||t.lead===this}getLead(){let{layoutId:t}=this.options;return t&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:t}=this.options;return t?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:t}=this.options;if(t)return this.root.sharedNodes.get(t)}promote({needsReset:t,transition:e,preserveFollowOpacity:i}={}){let s=this.getStack();s&&s.promote(this,i),t&&(this.projectionDelta=void 0,this.needsReset=!0),e&&this.setOptions({transition:e})}relegate(){let t=this.getStack();return!!t&&t.relegate(this)}resetSkewAndRotation(){let{visualElement:t}=this.options;if(!t)return;let e=!1,{latestValues:i}=t;if((i.z||i.rotate||i.rotateX||i.rotateY||i.rotateZ||i.skewX||i.skewY)&&(e=!0),!e)return;let s={};i.z&&nJ("z",t,s,this.animationValues);for(let e=0;et.currentAnimation?.stop()),this.root.nodes.forEach(n4),this.root.sharedNodes.clear()}}}function n0(t){t.updateLayout()}function n1(t){let e=t.resumeFrom?.snapshot||t.snapshot;if(t.isLead()&&t.layout&&e&&t.hasListeners("didUpdate")){let{layoutBox:i,measuredBox:s}=t.layout,{animationType:n}=t.options,r=e.source!==t.layout.source;if("size"===n)sz(t=>{let s=r?e.measuredBox[t]:e.layoutBox[t],n=s$(s);s.min=i[t].min,s.max=s.min+n});else if("x"===n||"y"===n){let t="x"===n?"y":"x";nR(r?e.measuredBox[t]:e.layoutBox[t],i[t])}else rc(n,e.layoutBox,i)&&sz(s=>{let n=r?e.measuredBox[s]:e.layoutBox[s],o=s$(i[s]);n.max=n.min+o,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[s].max=t.relativeTarget[s].min+o)});let o=K();sY(o,i,e.layoutBox);let a=K();r?sY(a,t.applyTransform(s,!0),e.measuredBox):sY(a,i,e.layoutBox);let l=!nz(o),h=!1;if(!t.resumeFrom){let s=t.getClosestProjectingParent();if(s&&!s.resumeFrom){let{snapshot:n,layout:r}=s;if(n&&r){let o=t.options.layoutAnchor||void 0,a=q();sG(a,e.layoutBox,n.layoutBox,o);let l=q();sG(l,i,r.layoutBox,o),n$(a,l)||(h=!0),s.options.layoutRoot&&(t.relativeTarget=l,t.relativeTargetOrigin=a,t.relativeParent=s)}}}t.notifyListeners("didUpdate",{layout:i,snapshot:e,delta:a,layoutDelta:o,hasLayoutChanged:l,hasRelativeLayoutChanged:h})}else if(t.isLead()){let{onExitComplete:e}=t.options;e&&e()}t.options.transition=void 0}function n2(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function n5(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function n3(t){t.clearSnapshot()}function n4(t){t.clearMeasurements()}function n9(t){t.isLayoutDirty=!0,t.updateLayout()}function n6(t){t.isLayoutDirty=!1}function n8(t){t.isAnimationBlocked&&t.layout&&!t.isLayoutDirty&&(t.snapshot=t.layout,t.isLayoutDirty=!0)}function n7(t){let{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function rt(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function re(t){t.resolveTargetDelta()}function ri(t){t.calcProjection()}function rs(t){t.resetSkewAndRotation()}function rn(t){t.removeLeadSnapshot()}function rr(t,e,i){t.translate=eO(e.translate,0,i),t.scale=eO(e.scale,1,i),t.origin=e.origin,t.originPoint=e.originPoint}function ro(t,e,i,s){t.min=eO(e.min,i.min,s),t.max=eO(e.max,i.max,s)}function ra(t){return t.animationValues&&void 0!==t.animationValues.opacityExit}let rl={duration:.45,ease:[.4,0,.1,1]},rh=t=>"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),ru=rh("applewebkit/")&&!rh("chrome/")?Math.round:tA;function rd(t){t.min=ru(t.min),t.max=ru(t.max)}function rc(t,e,i){return"position"===t||"preserve-aspect"===t&&!(.2>=Math.abs(nH(e)-nH(i)))}function rp(t){return t!==t.root&&t.scroll?.wasRoot}let rm=nQ({attachResizeListener:(t,e)=>sU(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),rf={current:void 0},rg=nQ({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!rf.current){let t=new rm({});t.mount(window),t.setOptions({layoutScroll:!0}),rf.current=t}return rf.current},resetTransform:(t,e)=>{t.style.transform=void 0!==e?e:"none"},checkIsScrollRoot:t=>"fixed"===window.getComputedStyle(t).position});function ry(t,e){let i=sJ(t),s=new AbortController;return[i,{passive:!0,...e,signal:s.signal},()=>s.abort()]}function rv(t,e,i){let{props:s}=t;t.animationState&&s.whileHover&&t.animationState.setActive("whileHover","Start"===i);let n=s["onHover"+i];n&&tC.postRender(()=>n(e,nt(e)))}let rx=(t,e)=>!!e&&(t===e||rx(t,e.parentElement)),rb=new WeakSet;function rw(t){return e=>{"Enter"===e.key&&t(e)}}function rT(t,e){t.dispatchEvent(new PointerEvent("pointer"+e,{isPrimary:!0,bubbles:!0}))}function rS(t){return s7(t)&&!(sW.x||sW.y)}let rP=new WeakSet;function rk(t,e,i){let{props:s}=t;if(t.current instanceof HTMLButtonElement&&t.current.disabled)return;t.animationState&&s.whileTap&&t.animationState.setActive("whileTap","Start"===i);let n=s["onTap"+("End"===i?"":i)];n&&tC.postRender(()=>n(e,nt(e)))}let rA=new WeakMap,rE=new WeakMap,rM=t=>{let e=rA.get(t.target);e&&e(t)},rV=t=>{t.forEach(rM)},rC={some:0,all:1},rj=function(t,e){if("u"ik(i,s,t,e);return new Proxy((t,e)=>s(t,e),{get:(n,r)=>"create"===r?s:(i.has(r)||i.set(r,ik(r,void 0,t,e)),i.get(r))})}({animation:{Feature:class extends iA{constructor(t){super(t),t.animationState||(t.animationState=function(t){let e=e=>Promise.all(e.map(({animation:e,options:i})=>(function(t,e,i={}){let s;if(t.notify("AnimationStart",e),Array.isArray(e))s=Promise.all(e.map(e=>sD(t,e,i)));else if("string"==typeof e)s=sD(t,e,i);else{let n="function"==typeof e?iE(t,e,i.custom):e;s=Promise.all(sj(t,n,i))}return s.then(()=>{t.notify("AnimationComplete",e)})})(t,e,i))),i=sN(),s=!0,n=!1,r=e=>(i,s)=>{let n=iE(t,s,"exit"===e?t.presenceContext?.custom:void 0);if(n){let{transition:t,transitionEnd:e,...s}=n;i={...i,...s,...e}}return i};function o(o){let{props:a}=t,l=function t(e){if(!e)return;if(!e.isControllingVariants){let i=e.parent&&t(e.parent)||{};return void 0!==e.props.initial&&(i.initial=e.props.initial),i}let i={};for(let t=0;tc&&v,S=!1,P=Array.isArray(y)?y:[y],k=P.reduce(r(f),{});!1===x&&(k={});let{prevResolvedValues:A={}}=g,E={...A,...k},M=e=>{T=!0,u.has(e)&&(S=!0,u.delete(e)),g.needsAnimating[e]=!0;let i=t.getValue(e);i&&(i.liveStyle=!1)};for(let t in E){let e=k[t],i=A[t];if(!d.hasOwnProperty(t))(iC(e)&&iC(i)?!s_(e,i)||w:e!==i)?null!=e?M(t):u.add(t):void 0!==e&&u.has(t)?M(t):g.protectedKeys[t]=!0}g.prevProp=y,g.prevResolvedValues=k,g.isActive&&(d={...d,...k}),(s||n)&&t.blockInitialAnimation&&(T=!1);let V=b&&w,C=!V||S;T&&C&&h.push(...P.map(e=>{let i={type:f};if("string"==typeof e&&(s||n)&&!V&&t.manuallyAnimateOnMount&&t.parent){let{parent:s}=t,n=iE(s,e);if(s.enteringChildren&&n){let{delayChildren:e}=n.transition||{};i.delay=sR(s.enteringChildren,t,e)}}return{animation:e,options:i}}))}if(u.size){let e={};if("boolean"!=typeof a.initial){let i=iE(t,Array.isArray(a.initial)?a.initial[0]:a.initial);i&&i.transition&&(e.transition=i.transition)}u.forEach(i=>{let s=t.getBaseTarget(i),n=t.getValue(i);n&&(n.liveStyle=!0),e[i]=s??null}),h.push({animation:e})}let f=!!h.length;return s&&(!1===a.initial||a.initial===a.animate)&&!t.manuallyAnimateOnMount&&(f=!1),s=!1,n=!1,f?e(h):Promise.resolve()}return{animateChanges:o,setActive:function(e,s){if(i[e].isActive===s)return Promise.resolve();t.variantChildren?.forEach(t=>t.animationState?.setActive(e,s)),i[e].isActive=s;let n=o(e);for(let t in i)i[t].protectedKeys={};return n},setAnimateFunction:function(i){e=i(t)},getState:()=>i,reset:()=>{i=sN(),n=!0}}}(t))}updateAnimationControlsSubscription(){let{animate:t}=this.node.getProps();ed(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:t}=this.node.getProps(),{animate:e}=this.node.prevProps||{};t!==e&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}},exit:{Feature:class extends iA{constructor(){super(...arguments),this.id=sO++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;let{isPresent:t,onExitComplete:e}=this.node.presenceContext,{isPresent:i}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===i)return;if(t&&!1===i){if(this.isExitComplete){let{initial:t,custom:e}=this.node.getProps();if("string"==typeof t||"object"==typeof t&&null!==t&&!Array.isArray(t)){let i=iE(this.node,t,e);if(i){let{transition:t,transitionEnd:e,...s}=i;for(let t in s)this.node.getValue(t)?.jump(s[t])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}let s=this.node.animationState.setActive("exit",!t);e&&!t&&s.then(()=>{this.isExitComplete=!0,e(this.id)})}mount(){let{register:t,onExitComplete:e}=this.node.presenceContext||{};e&&e(this.id),t&&(this.unmount=t(this.id))}unmount(){}}},inView:{Feature:class extends iA{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var t;let e;this.stopObserver?.();let{viewport:i={}}=this.node.getProps(),{root:s,margin:n,amount:r="some",once:o}=i,a={root:s?s.current:void 0,rootMargin:n,threshold:"number"==typeof r?r:rC[r]},l=t=>{let{isIntersecting:e}=t;if(this.isInView===e||(this.isInView=e,o&&!e&&this.hasEnteredView))return;e&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",e);let{onViewportEnter:i,onViewportLeave:s}=this.node.getProps(),n=e?i:s;n&&n(t)};this.stopObserver=(t=this.node.current,e=function({root:t,...e}){let i=t||document;rE.has(i)||rE.set(i,{});let s=rE.get(i),n=JSON.stringify(e);return s[n]||(s[n]=new IntersectionObserver(rV,{root:t,...e})),s[n]}(a),rA.set(t,l),e.observe(t),()=>{rA.delete(t),e.unobserve(t)})}mount(){this.startObserver()}update(){if("u"t[i]!==e[i]}(t,e))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}},tap:{Feature:class extends iA{mount(){let{current:t}=this.node;if(!t)return;let{globalTapTarget:e,propagate:i}=this.node.props;this.unmount=function(t,e,i={}){let[s,n,r]=ry(t,i),o=t=>{let s=t.currentTarget;if(!rS(t)||rP.has(t))return;rb.add(s),i.stopPropagation&&rP.add(t);let r=e(s,t),o=(t,e)=>{window.removeEventListener("pointerup",a),window.removeEventListener("pointercancel",l),rb.has(s)&&rb.delete(s),rS(t)&&"function"==typeof r&&r(t,{success:e})},a=t=>{o(t,s===window||s===document||i.useGlobalTarget||rx(s,t.target))},l=t=>{o(t,!1)};window.addEventListener("pointerup",a,n),window.addEventListener("pointercancel",l,n)};return s.forEach(t=>{(i.useGlobalTarget?window:t).addEventListener("pointerdown",o,n),sq(t)&&"offsetHeight"in t&&!("ownerSVGElement"in t)&&(t.addEventListener("focus",t=>((t,e)=>{let i=t.currentTarget;if(!i)return;let s=rw(()=>{if(rb.has(i))return;rT(i,"down");let t=rw(()=>{rT(i,"up")});i.addEventListener("keyup",t,e),i.addEventListener("blur",()=>rT(i,"cancel"),e)});i.addEventListener("keydown",s,e),i.addEventListener("blur",()=>i.removeEventListener("keydown",s),e)})(t,n)),s6.has(t.tagName)||!0===t.isContentEditable||t.hasAttribute("tabindex")||(t.tabIndex=0))}),r}(t,(t,e)=>(rk(this.node,e,"Start"),(t,{success:e})=>rk(this.node,t,e?"End":"Cancel")),{useGlobalTarget:e,stopPropagation:i?.tap===!1})}unmount(){}}},focus:{Feature:class extends iA{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch(e){t=!0}t&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=iR(sU(this.node.current,"focus",()=>this.onFocus()),sU(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}},hover:{Feature:class extends iA{mount(){let{current:t}=this.node;t&&(this.unmount=function(t,e,i={}){let[s,n,r]=ry(t,i);return s.forEach(t=>{let i,s=!1,r=!1,o=e=>{i&&(i(e),i=void 0),t.removeEventListener("pointerleave",l)},a=t=>{s=!1,window.removeEventListener("pointerup",a),window.removeEventListener("pointercancel",a),r&&(r=!1,o(t))},l=t=>{if("touch"!==t.pointerType){if(s){r=!0;return}o(t)}};t.addEventListener("pointerenter",s=>{if("touch"===s.pointerType||sW.x||sW.y)return;r=!1;let o=e(t,s);"function"==typeof o&&(i=o,t.addEventListener("pointerleave",l,n))},n),t.addEventListener("pointerdown",()=>{s=!0,window.addEventListener("pointerup",a,n),window.addEventListener("pointercancel",a,n)},n)}),r}(t,(t,e)=>(rv(this.node,e,"Start"),t=>rv(this.node,t,"End"))))}unmount(){}}},pan:{Feature:class extends iA{constructor(){super(...arguments),this.removePointerDownListener=tA}onPointerDown(t){this.session=new nr(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:ni(this.node)})}createPanHandlers(){let{onPanSessionStart:t,onPanStart:e,onPan:i,onPanEnd:s}=this.node.getProps();return{onSessionStart:nv(t),onStart:nv(e),onMove:nv(i),onEnd:(t,e)=>{delete this.session,s&&tC.postRender(()=>s(t,e))}}}mount(){this.removePointerDownListener=ne(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}},drag:{Feature:class extends iA{constructor(t){super(t),this.removeGroupControls=tA,this.removeListeners=tA,this.controls=new nf(t)}mount(){let{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||tA}update(){let{dragControls:t}=this.node.getProps(),{dragControls:e}=this.node.prevProps||{};t!==e&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},ProjectionNode:rg,MeasureLayout:nS},layout:{ProjectionNode:rg,MeasureLayout:nS}},(t,e)=>e.isSVG??e6(t)?new eH(e):new e4(e,{allowProjection:t!==o.Fragment}));function rR(t){let e=ic(()=>el(t)),{isStatic:i}=(0,o.useContext)(it);if(i){let[,i]=(0,o.useState)(t);(0,o.useEffect)(()=>e.on("change",i),[])}return e}function rD(t,e){let i=rR(e()),s=()=>i.set(e());return s(),iP(()=>{let e=()=>tC.preRender(s,!1,!0),i=t.map(t=>t.on("change",e));return()=>{i.forEach(t=>t()),tj(s)}}),i}function rL(t,e,i,s){if("function"==typeof t){let e;return eo.current=[],t(),e=rD(eo.current,t),eo.current=void 0,e}if(void 0!==i&&!Array.isArray(i)&&"function"!=typeof e){var n=t,r=e,o=i,a=s;let l=ic(()=>Object.keys(o)),h=ic(()=>({}));for(let t of l)h[t]=rL(n,r,o[t],a);return h}let l="function"==typeof e?e:function(...t){let e=!Array.isArray(t[0]),i=e?0:-1,s=t[0+i],n=sc(t[1+i],t[2+i],t[3+i]);return e?n(s):n}(e,i,s),h=Array.isArray(t)?r_(t,l):r_([t],([t])=>l(t)),u=Array.isArray(t)?void 0:t.accelerate;return u&&!u.isTransformed&&"function"!=typeof e&&Array.isArray(i)&&s?.clamp!==!1&&(h.accelerate={...u,times:e,keyframes:i,isTransformed:!0,...s?.ease?{ease:s.ease}:{}}),h}function r_(t,e){let i=ic(()=>[]);return rD(t,()=>{i.length=0;let s=t.length;for(let e=0;et.A(30860),{loadableGenerated:{modules:[20927]},ssr:!1});function rO({active:t}){return(0,r.jsx)("div",{className:"dm-st-rail","aria-hidden":!0,children:rI.STAGES.map((e,i)=>(0,r.jsxs)(o.default.Fragment,{children:[i>0&&(0,r.jsx)("span",{className:`dm-st-rail__line is-${i<=t?"on":"off"}`}),(0,r.jsxs)("div",{className:`dm-st-rail__step is-${i{let t=window.matchMedia("(max-width: 767px)"),e=window.matchMedia("(prefers-reduced-motion: reduce)"),i=()=>{x(t.matches),w(e.matches)};return i(),t.addEventListener("change",i),e.addEventListener("change",i),()=>{t.removeEventListener("change",i),e.removeEventListener("change",i)}},[]),(0,o.useEffect)(()=>{let t=e.current;if(!t)return;let i=new IntersectionObserver(t=>{t.some(t=>t.isIntersecting)&&(d(!0),y(!0),i.disconnect())},{rootMargin:"70% 0px"}),s=new IntersectionObserver(t=>y(t.some(t=>t.isIntersecting)),{rootMargin:"10% 0px"});return i.observe(t),s.observe(t),()=>{i.disconnect(),s.disconnect()}},[]),(0,o.useEffect)(()=>{let t=e.current;if(!t)return;rB.default.registerPlugin(rF.ScrollTrigger);let n="before",r=0,o=rF.ScrollTrigger.create({trigger:t,start:"top top",end:"bottom bottom",scrub:.4,invalidateOnRefresh:!0,onUpdate:t=>{let e=t.progress;i.current=e,s.set(e);let o=e<=2e-4?"before":e>=.9998?"after":"pinned";o!==n&&(n=o,a(o));let l=Math.round(e*(rI.N-1));l!==r&&(r=l,h(l))}}),l=setTimeout(()=>rF.ScrollTrigger.refresh(),120);return()=>{clearTimeout(l),o.kill()}},[s]),(0,o.useEffect)(()=>{if(!u)return;let t=setTimeout(()=>{p(t=>t||(console.warn("StrategySection: Scene readiness fallback triggered."),!0))},4e3);return()=>clearTimeout(t)},[u]),(0,o.useEffect)(()=>{if(c){let t=setTimeout(()=>{f(!1)},300);return()=>clearTimeout(t)}},[c]);let T=rL(s,[0,.03,.06],[1,1,0]),S=rL(s,[.02,.07],[0,1]);return(0,r.jsxs)("section",{ref:e,className:`dm-st is-${n}${t?" is-connected":""}`,"aria-label":"Strategy — Happier Riders. Higher Fulfillment.",children:[(0,r.jsx)("div",{className:"dm-st-sticky",children:(0,r.jsxs)("div",{className:"dm-st-card",children:[u&&(0,r.jsx)("div",{className:`dm-st-canvas${c?" is-ready":""}`,"aria-hidden":!c,children:(0,r.jsx)(rN,{progress:i,reduced:b,isMobile:v,active:g&&"pinned"===n,stage:l,ready:c,onReady:()=>p(!0)})}),m&&(0,r.jsxs)("div",{className:`dm-st-loader${c?" is-hiding":""}`,role:"status","aria-live":"polite","aria-label":"Loading MileTruth Strategy Engine",children:[(0,r.jsx)("span",{className:"dm-st-loader__ring"}),(0,r.jsx)("span",{className:"dm-st-loader__text",children:"Loading strategy engine..."})]}),"before"!==n&&(0,r.jsxs)("div",{className:`dm-st-ui${c?" is-ready":""}`,"aria-hidden":!c,children:[(0,r.jsxs)(rj.div,{className:"dm-st-top",style:{opacity:S},children:[(0,r.jsxs)("div",{className:"dm-st-eyebrow",children:[(0,r.jsx)("span",{className:"dm-st-dot"})," MileTruth Strategy Engine"]}),(0,r.jsx)(rO,{active:l})]}),(0,r.jsxs)(rj.div,{className:"dm-st-scrollhint",style:{opacity:T},children:[(0,r.jsx)("span",{children:"Scroll to follow the strategy"}),(0,r.jsx)("span",{className:"dm-st-arrow",children:"↓"})]}),(0,r.jsxs)(rz,{i:0,scroll:s,side:"left",active:l,children:[(0,r.jsx)("h3",{className:"dm-st-pillar__title",children:"Orders & riders enter the system"}),(0,r.jsx)("p",{className:"dm-st-anchor__lead",children:"Orders are uploaded and matched against the available fleet, ready for assignment."}),(0,r.jsxs)("div",{className:"dm-st-anchor__chips",children:[(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"59 Orders"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"4 Riders"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"Fleet ready"})]})]}),(0,r.jsxs)(rz,{i:1,scroll:s,side:"right",active:l,children:[(0,r.jsx)("h3",{className:"dm-st-pillar__title",children:"Six strategies, evaluated in parallel"}),(0,r.jsx)("p",{className:"dm-st-anchor__lead",children:"The AI runs every routing strategy at the same time — legacy baselines and MileTruth's unified engine."}),(0,r.jsxs)("div",{className:"dm-st-anchor__chips",children:[(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"EV Aware"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"Multi Trip"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"+4 more"})]})]}),(0,r.jsxs)(rz,{i:2,scroll:s,side:"left",active:l,children:[(0,r.jsx)("h3",{className:"dm-st-pillar__title",children:"Routes optimized & validated"}),(0,r.jsx)("p",{className:"dm-st-anchor__lead",children:"Every route is solved for distance, then checked against battery range and delivery SLAs."}),(0,r.jsxs)("div",{className:"dm-st-anchor__chips",children:[(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"Optimize"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"Battery"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"SLA"})]})]}),(0,r.jsxs)(rz,{i:3,scroll:s,side:"right",active:l,children:[(0,r.jsx)("h3",{className:"dm-st-pillar__title",children:"Every strategy is scored"}),(0,r.jsx)("p",{className:"dm-st-anchor__lead",children:"Each strategy is graded live on fulfillment, SLA compliance, efficiency and battery feasibility."}),(0,r.jsxs)("div",{className:"dm-st-anchor__chips",children:[(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"Grade A"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"88% Fulfillment"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"95% SLA"})]})]}),(0,r.jsxs)(rz,{i:4,scroll:s,side:"right",active:l,children:[(0,r.jsx)("h3",{className:"dm-st-pillar__title",children:"Happier riders. Higher fulfillment."}),(0,r.jsx)("p",{className:"dm-st-anchor__lead",children:"EV Aware wins — the best fulfillment with feasible, battery-safe routes for every rider."}),(0,r.jsxs)("div",{className:"dm-st-anchor__chips",children:[(0,r.jsx)("span",{className:"dm-st-anchor__chip dm-st-anchor__chip--win",children:"🏆 EV Aware"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"88% Score"}),(0,r.jsx)("span",{className:"dm-st-anchor__chip",children:"52/59 Fulfilled"})]})]})]})]})}),(0,r.jsx)("style",{children:rW})]})}let rW=` +/* Scroll length tuned for pacing: ~100vh per stage (was 144vh) so the 5 stages + complete in noticeably less scrolling and the workflow feels tighter / faster. + Stage cross-fade windows are progress-based (0…1), so they stay aligned. */ +.dm-st { position: relative; height: 500vh; background: transparent; } +.dm-st-sticky { position: absolute; top: 0; left: 0; width: 100%; height: 100vh; overflow: hidden; + will-change: transform; transform: translateZ(0); backface-visibility: hidden; } +.dm-st.is-pinned .dm-st-sticky { position: fixed; top: 0; left: 0; } +.dm-st.is-after .dm-st-sticky { position: absolute; top: auto; bottom: 0; } + +.dm-st-card { + position: absolute !important; inset: 20px !important; + border-radius: 28px !important; overflow: hidden !important; + background: radial-gradient(120% 100% at 50% 0%, #ffffff 0%, #eef1f6 60%, #e6eaf2 100%) !important; + border: 1px solid rgba(15,23,42,0.08) !important; + box-shadow: 0 30px 90px -34px rgba(15,23,42,0.4) !important; + box-sizing: border-box !important; +} +@media (max-width: 767px) { .dm-st-card { inset: 10px !important; border-radius: 20px !important; } } + +/* Connected mode (inside Workflow 3): flatten the card's bottom so the Strategy + content card below butts directly against it — same seam as Workflow 1 & 2. */ +.dm-st.is-connected .dm-st-card { + top: 20px !important; left: 20px !important; right: 20px !important; bottom: 0 !important; + border-radius: 28px 28px 0 0 !important; border-bottom: none !important; + /* Flush against the Strategy card below — drop the heavy downward shadow so it + doesn't cast a dark band onto that card's top edge (the two read as one container). */ + box-shadow: none !important; +} +@media (max-width: 767px) { + .dm-st.is-connected .dm-st-card { + top: 10px !important; left: 10px !important; right: 10px !important; bottom: 0 !important; + border-radius: 20px 20px 0 0 !important; + } +} + +.dm-st-canvas { position: absolute; inset: 0; z-index: 1; opacity: 0; visibility: hidden; + transition: opacity 0.25s cubic-bezier(0.22,1,0.36,1), visibility 0s linear 0.25s; } +.dm-st-canvas.is-ready { opacity: 1; visibility: visible; transition-delay: 0s; } +.dm-st-canvas canvas { display: block; } + +.dm-st-ui { position: absolute; inset: 0; z-index: 4; pointer-events: none; + font-family: var(--font-space-grotesk), var(--font-manrope), system-ui, sans-serif; color: #0f172a; + opacity: 0; visibility: hidden; + transition: opacity 0.25s cubic-bezier(0.22,1,0.36,1), visibility 0s linear 0.25s; } +.dm-st-ui.is-ready { opacity: 1; visibility: visible; transition-delay: 0s; } + +.dm-st-loader { position: absolute; top: 24px; left: 50%; transform: translateX(-50%); z-index: 6; + display: flex; align-items: center; gap: 8px; + background: rgba(15,23,42,0.85); border: 1px solid rgba(255,255,255,0.08); + padding: 8px 14px; border-radius: 999px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); + opacity: 1; pointer-events: none; + animation: dmStLoaderFadeIn 0.2s ease both; + transition: opacity 0.25s ease; } +.dm-st-loader.is-hiding { opacity: 0; pointer-events: none; } +.dm-st-loader__ring { width: 14px; height: 14px; border-radius: 50%; + border: 2px solid rgba(255,255,255,0.2); border-top-color: #00E5FF; + animation: dm-hiw-spin 0.8s linear infinite; box-sizing: border-box; } +.dm-st-loader__text { font-family: var(--font-space-grotesk), var(--font-manrope), system-ui, sans-serif; + color: #ffffff; font-size: 13.5px; font-weight: 500; opacity: 0.75; white-space: nowrap; } +@keyframes dmStLoaderFadeIn { from { opacity: 0; } to { opacity: 1; } } +@keyframes dm-hiw-spin { to { transform: rotate(360deg); } } + +/* ---- Persistent header: title + 5-stage rail ---- */ +.dm-st-top { position: absolute; top: clamp(96px, 13vh, 128px); left: 0; right: 0; z-index: 5; + display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 0 16px; } +.dm-st-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; line-height: 1.35; + letter-spacing: 0.28em; text-transform: uppercase; color: #475569; padding: 9px 18px; border-radius: 999px; + background: rgba(255,255,255,0.72); border: 1px solid rgba(15,23,42,0.08); backdrop-filter: blur(10px); white-space: nowrap; } +.dm-st-dot { width: 6px; height: 6px; border-radius: 50%; background: #6366f1; box-shadow: 0 0 10px #6366f1; } + +.dm-st-rail { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; max-width: 980px; } +.dm-st-rail__step { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 999px; + background: rgba(255,255,255,0.7); border: 1px solid rgba(15,23,42,0.08); backdrop-filter: blur(8px); + transition: all 0.45s cubic-bezier(0.22,1,0.36,1); } +.dm-st-rail__num { width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; + font-size: 10px; font-weight: 800; color: #64748b; background: rgba(15,23,42,0.06); } +.dm-st-rail__title { font-size: 11px; font-weight: 600; letter-spacing: 0.02em; color: #64748b; white-space: nowrap; } +.dm-st-rail__step.is-current { background: color-mix(in srgb, var(--c) 16%, white); border-color: var(--c); + box-shadow: 0 0 22px -6px var(--c); } +.dm-st-rail__step.is-current .dm-st-rail__num { background: var(--c); color: #fff; } +.dm-st-rail__step.is-current .dm-st-rail__title { color: #0f172a; } +.dm-st-rail__step.is-done .dm-st-rail__num { background: #22C55E; color: #fff; } +.dm-st-rail__step.is-done .dm-st-rail__title { color: #334155; } +.dm-st-rail__line { width: 14px; height: 1px; background: rgba(15,23,42,0.14); margin: 0 3px; transition: background 0.45s ease; } +.dm-st-rail__line.is-on { background: var(--c, #22C55E); } + +.dm-st-scrollhint { position: absolute; bottom: clamp(26px, 6vh, 60px); left: 50%; transform: translateX(-50%); + display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 12px; letter-spacing: 0.12em; + color: #64748b; text-transform: uppercase; text-align: center; } +.dm-st-arrow { font-size: 18px; animation: dmStBob 1.8s ease-in-out infinite; } +@keyframes dmStBob { 0%,100% { transform: translateY(0); opacity: 0.5; } 50% { transform: translateY(6px); opacity: 1; } } + +/* ---- Per-stage glass content card ---- */ +.dm-st-card-story { position: absolute; bottom: clamp(24px, 6vh, 64px); width: min(484px, 88vw); + pointer-events: auto; will-change: opacity, transform; padding: 20px 22px; border-radius: 20px; + background: rgba(255,255,255,0.94); border: 1px solid rgba(15,23,42,0.08); + /* backdrop blur removed — card cross-fades/translates per scroll-stage; blur was the + heaviest per-frame cost on this section. Near-opaque white keeps the glass look. */ + border-top: 3px solid var(--c); + box-shadow: 0 28px 70px -34px rgba(15,23,42,0.5); } +.dm-st-card-story.is-left { left: clamp(18px, 5vw, 72px); } +.dm-st-card-story.is-right { right: clamp(18px, 5vw, 72px); } +.dm-st-card-story__head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; } +.dm-st-pillar__num { font-size: 12px; font-weight: 800; letter-spacing: 0.1em; color: #fff; + background: var(--c); border-radius: 7px; padding: 3px 8px; } +.dm-st-pillar__kicker { font-size: clamp(11px, 1.1vw, 13px); font-weight: 700; letter-spacing: 0.16em; + text-transform: uppercase; color: var(--c); } +.dm-st .dm-st-pillar__title { margin: 0 0 14px !important; padding: 0 !important; color: #0f172a !important; + font-weight: 700 !important; text-transform: none !important; letter-spacing: -0.015em !important; + font-size: clamp(18px, 2vw, 26px) !important; line-height: 1.16 !important; } +.dm-st .dm-st-pillar__title--hero { font-size: clamp(22px, 2.6vw, 34px) !important; + background: linear-gradient(90deg, #C01227, #E2354A) !important; -webkit-background-clip: text !important; + background-clip: text !important; -webkit-text-fill-color: transparent !important; } +.dm-st-foot { margin: 12px 0 0; font-size: clamp(12px, 1.1vw, 13.5px); line-height: 1.5; color: #475569; + display: flex; align-items: center; gap: 8px; } +.dm-st-livedot { width: 8px; height: 8px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 0 var(--c); + animation: dmStPulse 1.8s ease-out infinite; } +@keyframes dmStPulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--c) 55%, transparent); } 100% { box-shadow: 0 0 0 9px transparent; } } + +/* In-scene 3D labels (drei ) — crisp glass chips floating in the WebGL scene */ +.dm-st3d-file, .dm-st3d-count, .dm-st3d-ai, .dm-st3d-chip { + font-family: var(--font-space-grotesk), var(--font-manrope), system-ui, sans-serif; + pointer-events: none; user-select: none; white-space: nowrap; transition: opacity 0.2s linear; } +.dm-st3d-file, .dm-st3d-ai { + display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: #0f172a; + background: rgba(255,255,255,0.88); border: 1px solid rgba(34,197,94,0.4); border-radius: 999px; + padding: 6px 13px; box-shadow: 0 8px 22px -12px rgba(34,197,94,0.7); backdrop-filter: blur(8px); } +.dm-st3d-count { font-size: 15px; font-weight: 800; color: #0f172a; background: rgba(255,255,255,0.9); + border: 1px solid rgba(34,197,94,0.45); border-radius: 12px; padding: 6px 14px; + box-shadow: 0 10px 26px -12px rgba(34,197,94,0.8); backdrop-filter: blur(8px); } +.dm-st3d-count span { color: #16a34a; font-size: 19px; } +.dm-st3d-chip { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.92); + border: 1px solid rgba(34,197,94,0.4); border-radius: 12px; padding: 6px 11px; + box-shadow: 0 10px 26px -14px rgba(15,23,42,0.7); backdrop-filter: blur(8px); } +.dm-st3d-chip__ico { font-size: 17px; } +.dm-st3d-chip__txt { display: flex; flex-direction: column; line-height: 1.15; } +.dm-st3d-chip__txt b { font-size: 12.5px; font-weight: 800; color: #0f172a; } +.dm-st3d-chip__txt { font-size: 10.5px; color: #475569; } + +/* Generic themed 3D chips (stages 02–05) — colour comes from --tc per element */ +.dm-st3d-tag, .dm-st3d-score { + font-family: var(--font-space-grotesk), var(--font-manrope), system-ui, sans-serif; + pointer-events: none; user-select: none; white-space: nowrap; transition: opacity 0.2s linear; } +.dm-st3d-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; color: #0f172a; + background: rgba(255,255,255,0.9); border: 1px solid color-mix(in srgb, var(--tc, #8B5CF6) 55%, white); + border-radius: 999px; padding: 5px 11px; box-shadow: 0 8px 20px -12px var(--tc, #8B5CF6); backdrop-filter: blur(8px); } +.dm-st3d-tag b { font-weight: 800; color: var(--tc, #0f172a); } +.dm-st3d-tag.is-u { background: color-mix(in srgb, var(--tc) 14%, white); border-color: var(--tc); } +.dm-st3d-tag.is-muted { opacity: 0.82; border-style: dashed; } +.dm-st3d-tag.is-win { border-color: var(--tc); box-shadow: 0 10px 26px -10px var(--tc); } +.dm-st3d-score { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: #0f172a; + background: rgba(255,255,255,0.92); border: 1px solid color-mix(in srgb, var(--tc, #0f172a) 45%, white); + border-radius: 12px; padding: 6px 13px; box-shadow: 0 10px 26px -12px var(--tc, #0f172a); backdrop-filter: blur(8px); } +.dm-st3d-score b { font-size: 16px; font-weight: 800; color: var(--tc, #0f172a); } +.dm-st3d-score.is-win { border-color: var(--tc); } + +/* Light side-card anchor — the 3D world now carries the detail */ +.dm-st-anchor__lead { margin: 0 0 14px; font-size: clamp(13px, 1.2vw, 15px); line-height: 1.55; color: #475569; } +.dm-st-anchor__chips { display: flex; flex-wrap: wrap; gap: 8px; } +.dm-st-anchor__chip { font-size: 12px; font-weight: 700; color: #334155; padding: 6px 12px; border-radius: 999px; + background: color-mix(in srgb, var(--c) 9%, white); border: 1px solid color-mix(in srgb, var(--c) 30%, white); } +.dm-st-anchor__chip--win { color: #fff; background: linear-gradient(90deg, #C01227, #E2354A); border-color: transparent; } + +/* In-world Command Center KPI card + Winner card (drei , faded by proximity) */ +.dm-st3d-kpi, .dm-st3d-winner3d { + font-family: var(--font-space-grotesk), var(--font-manrope), system-ui, sans-serif; + pointer-events: none; user-select: none; transition: opacity 0.2s linear; } +.dm-st3d-kpi { display: flex; flex-direction: column; gap: 5px; width: 132px; padding: 9px 12px; border-radius: 12px; + background: rgba(255,255,255,0.95); border: 1px solid color-mix(in srgb, var(--tc, #F59E0B) 40%, white); + box-shadow: 0 10px 26px -14px var(--tc, #F59E0B); backdrop-filter: blur(8px); } +.dm-st3d-kpi__n { font-size: 10.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #64748b; } +.dm-st3d-kpi__v { font-size: 24px; font-weight: 800; color: #0f172a; line-height: 1; } +.dm-st3d-kpi__v i { font-size: 14px; font-weight: 700; color: var(--tc, #F59E0B); font-style: normal; margin-left: 1px; } +.dm-st3d-kpi__bar { height: 6px; border-radius: 999px; background: rgba(15,23,42,0.08); overflow: hidden; } +.dm-st3d-kpi__bar i { display: block; height: 100%; border-radius: 999px; background: var(--tc, #F59E0B); } +.dm-st3d-winner3d { display: flex; flex-direction: column; gap: 3px; width: 184px; padding: 13px 15px; border-radius: 14px; + background: rgba(255,255,255,0.96); border: 1px solid rgba(192,18,39,0.4); box-shadow: 0 16px 40px -16px rgba(192,18,39,0.6); backdrop-filter: blur(8px); } +.dm-st3d-winner3d__top { font-size: 10.5px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: #C01227; } +.dm-st3d-winner3d__name { font-size: 26px; font-weight: 800; color: #0f172a; letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 4px; } +.dm-st3d-winner3d__row { font-size: 12px; color: #475569; } +.dm-st3d-winner3d__row b { color: #C01227; font-weight: 800; margin-right: 4px; } + +@media (max-width: 1000px) { + .dm-st-rail__title { display: none; } + .dm-st-rail__step { padding: 5px 7px; } + .dm-st-rail__line { width: 9px; } +} +@media (max-width: 767px) { + .dm-st { height: 420vh; } + /* Full-width, bottom-anchored story card. Bound its height to the viewport and + let it scroll internally so a tall stage card (Command Center / Winner) can + never be clipped off the top of a short phone screen — the active workflow + state always stays fully visible. */ + .dm-st-card-story { left: 0 !important; right: 0 !important; margin: 0 auto; width: calc(100% - 28px); + bottom: clamp(18px, 4vh, 40px); padding: 15px 16px; + max-height: 52vh; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; } +} +@media (prefers-reduced-motion: reduce) { + .dm-st-arrow { animation: none !important; } +} +`;t.s(["default",0,function(){return(0,r.jsxs)("section",{className:"dm-wf3","aria-label":"Workflow 3 — Happier Riders. Higher Fulfillment.",children:[(0,r.jsx)(rU,{}),(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .dm-wf3 { position: relative; margin: 0 auto; } + /* Cancel the global "section { padding: 6rem 0 }": both this wrapper + and the nested .dm-st are sections, so that padding would stack into + large empty bands around the pinned 3D experience. */ + .dm-wf3, .dm-wf3 .dm-st { padding-top: 0; padding-bottom: 0; } + `}})]})}],56305)},55819,t=>{t.n(t.i(56305))}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0d1hvye~4r7kb.js b/build/.next/static/chunks/0d1hvye~4r7kb.js new file mode 100644 index 0000000..e634dbc --- /dev/null +++ b/build/.next/static/chunks/0d1hvye~4r7kb.js @@ -0,0 +1,243 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55838,(e,t,n)=>{"use strict";var i=e.r(71645),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=i.useState,s=i.useEffect,o=i.useLayoutEffect,l=i.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var c="u"{"use strict";t.exports=e.r(55838)},52822,(e,t,n)=>{"use strict";var i=e.r(71645),r=e.r(2239),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=r.useSyncExternalStore,o=i.useRef,l=i.useEffect,u=i.useMemo,c=i.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,i,r){var h=o(null);if(null===h.current){var d={hasValue:!1,value:null};h.current=d}else d=h.current;var p=s(e,(h=u(function(){function e(e){if(!l){if(l=!0,s=e,e=i(e),void 0!==r&&d.hasValue){var t=d.value;if(r(t,e))return o=t}return o=e}if(t=o,a(s,e))return t;var n=i(e);return void 0!==r&&r(t,n)?(s=e,t):(s=e,o=n)}var s,o,l=!1,u=void 0===n?null:n;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]},[t,n,i,r]))[0],h[1]);return l(function(){d.hasValue=!0,d.value=p},[p]),c(p),p}},30224,(e,t,n)=>{"use strict";t.exports=e.r(52822)},66936,(e,t,n)=>{"use strict";function i(e,t){var n=e.length;for(e.push(t);0>>1,r=e[i];if(0>>1;is(l,n))us(c,l)?(e[i]=c,e[u]=n,i=u):(e[i]=l,e[o]=n,i=o);else if(us(c,n))e[i]=c,e[u]=n,i=u;else break}}return t}function s(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(n.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o,l=performance;n.unstable_now=function(){return l.now()}}else{var u=Date,c=u.now();n.unstable_now=function(){return u.now()-c}}var h=[],d=[],p=1,f=null,m=3,g=!1,v=!1,_=!1,y=!1,x="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,S="u">typeof setImmediate?setImmediate:null;function M(e){for(var t=r(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,i(h,t);else break;t=r(d)}}function T(e){if(_=!1,M(e),!v)if(null!==r(h))v=!0,w||(w=!0,o());else{var t=r(d);null!==t&&N(T,t.startTime-e)}}var w=!1,E=-1,A=5,C=-1;function R(){return!!y||!(n.unstable_now()-Ce&&R());){var s=f.callback;if("function"==typeof s){f.callback=null,m=f.priorityLevel;var l=s(f.expirationTime<=e);if(e=n.unstable_now(),"function"==typeof l){f.callback=l,M(e),t=!0;break t}f===r(h)&&a(h),M(e)}else a(h);f=r(h)}if(null!==f)t=!0;else{var u=r(d);null!==u&&N(T,u.startTime-e),t=!1}}break e}finally{f=null,m=i,g=!1}}}finally{t?o():w=!1}}}if("function"==typeof S)o=function(){S(P)};else if("u">typeof MessageChannel){var I=new MessageChannel,L=I.port2;I.port1.onmessage=P,o=function(){L.postMessage(null)}}else o=function(){x(P,0)};function N(e,t){E=x(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_forceFrameRate=function(e){0>e||125s?(e.sortIndex=a,i(d,e),null===r(h)&&e===r(d)&&(_?(b(E),E=-1):_=!0,N(T,a-s))):(e.sortIndex=l,i(h,e),v||g||(v=!0,w||(w=!0,o()))),e},n.unstable_shouldYield=R,n.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},89499,(e,t,n)=>{"use strict";t.exports=e.r(66936)},75056,90072,8560,8155,1950,25234,28600,e=>{"use strict";let t,n,i,r,a,s,o,l,u,c,h,d,p,f,m,g,v,_;var y,x,b,S,M,T,w=e.i(47167),E=e.i(71645);let A={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},C={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},R="attached",P="detached",I="srgb",L="srgb-linear",N="linear",U="srgb",D="300 es";class O{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let n=this._listeners[e];if(void 0!==n){let e=n.indexOf(t);-1!==e&&n.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let n=t.slice(0);for(let t=0,i=n.length;t>8&255]+F[e>>16&255]+F[e>>24&255]+"-"+F[255&t]+F[t>>8&255]+"-"+F[t>>16&15|64]+F[t>>24&255]+"-"+F[63&n|128]+F[n>>8&255]+"-"+F[n>>16&255]+F[n>>24&255]+F[255&i]+F[i>>8&255]+F[i>>16&255]+F[i>>24&255]).toLowerCase()}function V(e,t,n){return Math.max(t,Math.min(n,e))}function G(e,t){return(e%t+t)%t}function W(e,t,n){return(1-n)*e+n*t}function j(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/0xffffffff;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/0x7fffffff,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw Error("Invalid component type.")}}function X(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(0xffffffff*e);case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int32Array:return Math.round(0x7fffffff*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw Error("Invalid component type.")}}let q={DEG2RAD:B,RAD2DEG:k,generateUUID:H,clamp:V,euclideanModulo:G,mapLinear:function(e,t,n,i,r){return i+(e-t)*(r-i)/(n-t)},inverseLerp:function(e,t,n){return e!==t?(n-e)/(t-e):0},lerp:W,damp:function(e,t,n,i){return W(e,t,1-Math.exp(-n*i))},pingpong:function(e,t=1){return t-Math.abs(G(e,2*t)-t)},smoothstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)},smootherstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){void 0!==e&&(z=e);let t=z+=0x6d2b79f5;return t=Math.imul(t^t>>>15,1|t),(((t^=t+Math.imul(t^t>>>7,61|t))^t>>>14)>>>0)/0x100000000},degToRad:function(e){return e*B},radToDeg:function(e){return e*k},isPowerOfTwo:function(e){return(e&e-1)==0&&0!==e},ceilPowerOfTwo:function(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))},floorPowerOfTwo:function(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))},setQuaternionFromProperEuler:function(e,t,n,i,r){let a=Math.cos,s=Math.sin,o=a(n/2),l=s(n/2),u=a((t+i)/2),c=s((t+i)/2),h=a((t-i)/2),d=s((t-i)/2),p=a((i-t)/2),f=s((i-t)/2);switch(r){case"XYX":e.set(o*c,l*h,l*d,o*u);break;case"YZY":e.set(l*d,o*c,l*h,o*u);break;case"ZXZ":e.set(l*h,l*d,o*c,o*u);break;case"XZX":e.set(o*c,l*f,l*p,o*u);break;case"YXY":e.set(l*p,o*c,l*f,o*u);break;case"ZYZ":e.set(l*f,l*p,o*c,o*u);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:X,denormalize:j};class Y{constructor(e=0,t=0){Y.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());return 0===t?Math.PI/2:Math.acos(V(this.dot(e)/t,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),i=Math.sin(t),r=this.x-e.x,a=this.y-e.y;return this.x=r*n-a*i+e.x,this.y=r*i+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Z{constructor(e,t,n,i,r,a,s,o,l){Z.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==e&&this.set(e,t,n,i,r,a,s,o,l)}set(e,t,n,i,r,a,s,o,l){let u=this.elements;return u[0]=e,u[1]=i,u[2]=s,u[3]=t,u[4]=r,u[5]=o,u[6]=n,u[7]=a,u[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,r=this.elements,a=n[0],s=n[3],o=n[6],l=n[1],u=n[4],c=n[7],h=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],v=i[1],_=i[4],y=i[7],x=i[2],b=i[5],S=i[8];return r[0]=a*f+s*v+o*x,r[3]=a*m+s*_+o*b,r[6]=a*g+s*y+o*S,r[1]=l*f+u*v+c*x,r[4]=l*m+u*_+c*b,r[7]=l*g+u*y+c*S,r[2]=h*f+d*v+p*x,r[5]=h*m+d*_+p*b,r[8]=h*g+d*y+p*S,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8];return t*a*u-t*s*l-n*r*u+n*s*o+i*r*l-i*a*o}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=u*a-s*l,h=s*o-u*r,d=l*r-a*o,p=t*c+n*h+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);let f=1/p;return e[0]=c*f,e[1]=(i*l-u*n)*f,e[2]=(s*n-i*a)*f,e[3]=h*f,e[4]=(u*t-i*o)*f,e[5]=(i*r-s*t)*f,e[6]=d*f,e[7]=(n*o-l*t)*f,e[8]=(a*t-n*r)*f,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,r,a,s){let o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*a+l*s)+a+e,-i*l,i*o,-i*(-l*a+o*s)+s+t,0,0,1),this}scale(e,t){return this.premultiply(J.makeScale(e,t)),this}rotate(e){return this.premultiply(J.makeRotation(-e)),this}translate(e,t){return this.premultiply(J.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,n=e.elements;for(let e=0;e<9;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}}let J=new Z;function K(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}let $={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Q(e,t){return new $[e](t)}function ee(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}function et(){let e=ee("canvas");return e.style.display="block",e}let en={};function ei(e){e in en||(en[e]=!0,console.warn(e))}function er(e,t,n){return new Promise(function(i,r){setTimeout(function a(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:r();break;case e.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:i()}},n)})}function ea(e){let t=e.elements;t[2]=.5*t[2]+.5*t[3],t[6]=.5*t[6]+.5*t[7],t[10]=.5*t[10]+.5*t[11],t[14]=.5*t[14]+.5*t[15]}function es(e){let t=e.elements;-1===t[11]?(t[10]=-t[10]-1,t[14]=-t[14]):(t[10]=-t[10],t[14]=-t[14]+1)}let eo=new Z().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),el=new Z().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715),eu=(d=[.64,.33,.3,.6,.15,.06],p=[.2126,.7152,.0722],f=[.3127,.329],(h={enabled:!0,workingColorSpace:L,spaces:{},convert:function(e,t,n){return!1!==this.enabled&&t!==n&&t&&n&&(this.spaces[t].transfer===U&&(e.r=ec(e.r),e.g=ec(e.g),e.b=ec(e.b)),this.spaces[t].primaries!==this.spaces[n].primaries&&(e.applyMatrix3(this.spaces[t].toXYZ),e.applyMatrix3(this.spaces[n].fromXYZ)),this.spaces[n].transfer===U&&(e.r=eh(e.r),e.g=eh(e.g),e.b=eh(e.b))),e},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)},getPrimaries:function(e){return this.spaces[e].primaries},getTransfer:function(e){return""===e?N:this.spaces[e].transfer},getLuminanceCoefficients:function(e,t=this.workingColorSpace){return e.fromArray(this.spaces[t].luminanceCoefficients)},define:function(e){Object.assign(this.spaces,e)},_getMatrix:function(e,t,n){return e.copy(this.spaces[t].toXYZ).multiply(this.spaces[n].fromXYZ)},_getDrawingBufferColorSpace:function(e){return this.spaces[e].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(e=this.workingColorSpace){return this.spaces[e].workingColorSpaceConfig.unpackColorSpace}}).define({[L]:{primaries:d,whitePoint:f,transfer:N,toXYZ:eo,fromXYZ:el,luminanceCoefficients:p,workingColorSpaceConfig:{unpackColorSpace:I},outputColorSpaceConfig:{drawingBufferColorSpace:I}},[I]:{primaries:d,whitePoint:f,transfer:U,toXYZ:eo,fromXYZ:el,luminanceCoefficients:p,outputColorSpaceConfig:{drawingBufferColorSpace:I}}}),h);function ec(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function eh(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}class ed{static getDataURL(e){let n;if(/^data:/i.test(e.src)||"u"2048||n.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),n.toDataURL("image/jpeg",.6)):n.toDataURL("image/png")}static sRGBToLinear(e){if("u">typeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap){let t=ee("canvas");t.width=e.width,t.height=e.height;let n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);let i=n.getImageData(0,0,e.width,e.height),r=i.data;for(let e=0;etypeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap?ed.getDataURL(e):e.data?{data:Array.from(e.data),width:e.width,height:e.height,type:e.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let eg=0;class ev extends O{constructor(e=ev.DEFAULT_IMAGE,t=ev.DEFAULT_MAPPING,n=1001,i=1001,r=1006,a=1008,s=1023,o=1009,l=ev.DEFAULT_ANISOTROPY,u=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:eg++}),this.uuid=H(),this.name="",this.source=new ef(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=a,this.anisotropy=l,this.format=s,this.internalFormat=null,this.type=o,this.offset=new Y(0,0),this.repeat=new Y(1,1),this.center=new Y(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Z,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=u,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.pmremVersion=0}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){let t=void 0===e||"string"==typeof e;if(!t&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];let n={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(300!==this.mapping)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case 1e3:e.x=e.x-Math.floor(e.x);break;case 1001:e.x=e.x<0?0:1;break;case 1002:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case 1e3:e.y=e.y-Math.floor(e.y);break;case 1001:e.y=e.y<0?0:1;break;case 1002:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){!0===e&&this.pmremVersion++}}ev.DEFAULT_IMAGE=null,ev.DEFAULT_MAPPING=300,ev.DEFAULT_ANISOTROPY=1;class e_{constructor(e=0,t=0,n=0,i=1){e_.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,r=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*i+a[12]*r,this.y=a[1]*t+a[5]*n+a[9]*i+a[13]*r,this.z=a[2]*t+a[6]*n+a[10]*i+a[14]*r,this.w=a[3]*t+a[7]*n+a[11]*i+a[15]*r,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,r,a=e.elements,s=a[0],o=a[4],l=a[8],u=a[1],c=a[5],h=a[9],d=a[2],p=a[6],f=a[10];if(.01>Math.abs(o-u)&&.01>Math.abs(l-d)&&.01>Math.abs(h-p)){if(.1>Math.abs(o+u)&&.1>Math.abs(l+d)&&.1>Math.abs(h+p)&&.1>Math.abs(s+c+f-3))return this.set(1,0,0,0),this;t=Math.PI;let e=(s+1)/2,a=(c+1)/2,m=(f+1)/2,g=(o+u)/4,v=(l+d)/4,_=(h+p)/4;return e>a&&e>m?e<.01?(n=0,i=.707106781,r=.707106781):(i=g/(n=Math.sqrt(e)),r=v/n):a>m?a<.01?(n=.707106781,i=0,r=.707106781):(n=g/(i=Math.sqrt(a)),r=_/i):m<.01?(n=.707106781,i=.707106781,r=0):(n=v/(r=Math.sqrt(m)),i=_/r),this.set(n,i,r,t),this}let m=Math.sqrt((p-h)*(p-h)+(l-d)*(l-d)+(u-o)*(u-o));return .001>Math.abs(m)&&(m=1),this.x=(p-h)/m,this.y=(l-d)/m,this.z=(u-o)/m,this.w=Math.acos((s+c+f-1)/2),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this.z=V(this.z,e.z,t.z),this.w=V(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this.z=V(this.z,e,t),this.w=V(this.w,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class ey extends O{constructor(e=1,t=1,n={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new e_(0,0,e,t),this.scissorTest=!1,this.viewport=new e_(0,0,e,t);const i=new ev({width:e,height:t,depth:1},(n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:1006,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n)).mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);i.flipY=!1,i.generateMipmaps=n.generateMipmaps,i.internalFormat=n.internalFormat,this.textures=[];const r=n.count;for(let e=0;e=0?1:-1,i=1-t*t;if(i>Number.EPSILON){let r=Math.sqrt(i),a=Math.atan2(r,t*n);e=Math.sin(e*a)/r,s=Math.sin(s*a)/r}let r=s*n;if(o=o*e+h*r,l=l*e+d*r,u=u*e+p*r,c=c*e+f*r,e===1-s){let e=1/Math.sqrt(o*o+l*l+u*u+c*c);o*=e,l*=e,u*=e,c*=e}}e[t]=o,e[t+1]=l,e[t+2]=u,e[t+3]=c}static multiplyQuaternionsFlat(e,t,n,i,r,a){let s=n[i],o=n[i+1],l=n[i+2],u=n[i+3],c=r[a],h=r[a+1],d=r[a+2],p=r[a+3];return e[t]=s*p+u*c+o*d-l*h,e[t+1]=o*p+u*h+l*c-s*d,e[t+2]=l*p+u*d+s*h-o*c,e[t+3]=u*p-s*c-o*h-l*d,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){let n=e._x,i=e._y,r=e._z,a=e._order,s=Math.cos,o=Math.sin,l=s(n/2),u=s(i/2),c=s(r/2),h=o(n/2),d=o(i/2),p=o(r/2);switch(a){case"XYZ":this._x=h*u*c+l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c-h*d*p;break;case"YXZ":this._x=h*u*c+l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c+h*d*p;break;case"ZXY":this._x=h*u*c-l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c-h*d*p;break;case"ZYX":this._x=h*u*c-l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c+h*d*p;break;case"YZX":this._x=h*u*c+l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c-h*d*p;break;case"XZY":this._x=h*u*c-l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c+h*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return!0===t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],i=t[4],r=t[8],a=t[1],s=t[5],o=t[9],l=t[2],u=t[6],c=t[10],h=n+s+c;if(h>0){let e=.5/Math.sqrt(h+1);this._w=.25/e,this._x=(u-o)*e,this._y=(r-l)*e,this._z=(a-i)*e}else if(n>s&&n>c){let e=2*Math.sqrt(1+n-s-c);this._w=(u-o)/e,this._x=.25*e,this._y=(i+a)/e,this._z=(r+l)/e}else if(s>c){let e=2*Math.sqrt(1+s-n-c);this._w=(r-l)/e,this._x=(i+a)/e,this._y=.25*e,this._z=(o+u)/e}else{let e=2*Math.sqrt(1+c-n-s);this._w=(a-i)/e,this._x=(r+l)/e,this._y=(o+u)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0):(this._x=0,this._y=-e.z,this._z=e.y)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x),this._w=n,this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(V(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(0===n)return this;let i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,i=e._y,r=e._z,a=e._w,s=t._x,o=t._y,l=t._z,u=t._w;return this._x=n*u+a*s+i*l-r*o,this._y=i*u+a*o+r*s-n*l,this._z=r*u+a*l+n*o-i*s,this._w=a*u-n*s-i*o-r*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);let n=this._x,i=this._y,r=this._z,a=this._w,s=a*e._w+n*e._x+i*e._y+r*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=a,this._x=n,this._y=i,this._z=r,this;let o=1-s*s;if(o<=Number.EPSILON){let e=1-t;return this._w=e*a+t*this._w,this._x=e*n+t*this._x,this._y=e*i+t*this._y,this._z=e*r+t*this._z,this.normalize(),this}let l=Math.sqrt(o),u=Math.atan2(l,s),c=Math.sin((1-t)*u)/l,h=Math.sin(t*u)/l;return this._w=a*c+this._w*h,this._x=n*c+this._x*h,this._y=i*c+this._y*h,this._z=r*c+this._z*h,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),i=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(i*Math.sin(e),i*Math.cos(e),r*Math.sin(t),r*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class eE{constructor(e=0,t=0,n=0){eE.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return void 0===n&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(eC.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(eC.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*i,this.y=r[1]*t+r[4]*n+r[7]*i,this.z=r[2]*t+r[5]*n+r[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,r=e.elements,a=1/(r[3]*t+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*i+r[12])*a,this.y=(r[1]*t+r[5]*n+r[9]*i+r[13])*a,this.z=(r[2]*t+r[6]*n+r[10]*i+r[14])*a,this}applyQuaternion(e){let t=this.x,n=this.y,i=this.z,r=e.x,a=e.y,s=e.z,o=e.w,l=2*(a*i-s*n),u=2*(s*t-r*i),c=2*(r*n-a*t);return this.x=t+o*l+a*c-s*u,this.y=n+o*u+s*l-r*c,this.z=i+o*c+r*u-a*l,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*i,this.y=r[1]*t+r[5]*n+r[9]*i,this.z=r[2]*t+r[6]*n+r[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this.z=V(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this.z=V(this.z,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,i=e.y,r=e.z,a=t.x,s=t.y,o=t.z;return this.x=i*o-r*s,this.y=r*a-n*o,this.z=n*s-i*a,this}projectOnVector(e){let t=e.lengthSq();if(0===t)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return eA.copy(this).projectOnVector(e),this.sub(eA)}reflect(e){return this.sub(eA.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());return 0===t?Math.PI/2:Math.acos(V(this.dot(e)/t,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){let i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=2*Math.random()-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}let eA=new eE,eC=new ew;class eR{constructor(e=new eE(Infinity,Infinity,Infinity),t=new eE(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,eI),eI.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(eB),ek.subVectors(this.max,eB),eN.subVectors(e.a,eB),eU.subVectors(e.b,eB),eD.subVectors(e.c,eB),eO.subVectors(eU,eN),eF.subVectors(eD,eU),ez.subVectors(eN,eD);let t=[0,-eO.z,eO.y,0,-eF.z,eF.y,0,-ez.z,ez.y,eO.z,0,-eO.x,eF.z,0,-eF.x,ez.z,0,-ez.x,-eO.y,eO.x,0,-eF.y,eF.x,0,-ez.y,ez.x,0];return!!eG(t,eN,eU,eD,ek)&&!!eG(t=[1,0,0,0,1,0,0,0,1],eN,eU,eD,ek)&&(eH.crossVectors(eO,eF),eG(t=[eH.x,eH.y,eH.z],eN,eU,eD,ek))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,eI).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(eI).length()),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(eP[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),eP[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),eP[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),eP[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),eP[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),eP[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),eP[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),eP[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(eP)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}let eP=[new eE,new eE,new eE,new eE,new eE,new eE,new eE,new eE],eI=new eE,eL=new eR,eN=new eE,eU=new eE,eD=new eE,eO=new eE,eF=new eE,ez=new eE,eB=new eE,ek=new eE,eH=new eE,eV=new eE;function eG(e,t,n,i,r){for(let a=0,s=e.length-3;a<=s;a+=3){eV.fromArray(e,a);let s=r.x*Math.abs(eV.x)+r.y*Math.abs(eV.y)+r.z*Math.abs(eV.z),o=t.dot(eV),l=n.dot(eV),u=i.dot(eV);if(Math.max(-Math.max(o,l,u),Math.min(o,l,u))>s)return!1}return!0}let eW=new eR,ej=new eE,eX=new eE;class eq{constructor(e=new eE,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let n=this.center;void 0!==t?n.copy(t):eW.setFromPoints(e).getCenter(n);let i=0;for(let t=0,r=e.length;tthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?e.makeEmpty():(e.set(this.center,this.center),e.expandByScalar(this.radius)),e}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;ej.subVectors(e,this.center);let t=ej.lengthSq();if(t>this.radius*this.radius){let e=Math.sqrt(t),n=(e-this.radius)*.5;this.center.addScaledVector(ej,n/e),this.radius+=n}return this}union(e){return e.isEmpty()||(this.isEmpty()?this.copy(e):!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(eX.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(ej.copy(e.center).add(eX)),this.expandByPoint(ej.copy(e.center).sub(eX)))),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}let eY=new eE,eZ=new eE,eJ=new eE,eK=new eE,e$=new eE,eQ=new eE,e0=new eE;class e1{constructor(e=new eE,t=new eE(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,eY)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=eY.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(eY.copy(this.origin).addScaledVector(this.direction,t),eY.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){let r,a,s,o;eZ.copy(e).add(t).multiplyScalar(.5),eJ.copy(t).sub(e).normalize(),eK.copy(this.origin).sub(eZ);let l=.5*e.distanceTo(t),u=-this.direction.dot(eJ),c=eK.dot(this.direction),h=-eK.dot(eJ),d=eK.lengthSq(),p=Math.abs(1-u*u);if(p>0)if(r=u*h-c,a=u*c-h,o=l*p,r>=0)if(a>=-o)if(a<=o){let e=1/p;r*=e,a*=e,s=r*(r+u*a+2*c)+a*(u*r+a+2*h)+d}else s=-(r=Math.max(0,-(u*(a=l)+c)))*r+a*(a+2*h)+d;else s=-(r=Math.max(0,-(u*(a=-l)+c)))*r+a*(a+2*h)+d;else a<=-o?(a=(r=Math.max(0,-(-u*l+c)))>0?-l:Math.min(Math.max(-l,-h),l),s=-r*r+a*(a+2*h)+d):a<=o?(r=0,s=(a=Math.min(Math.max(-l,-h),l))*(a+2*h)+d):(a=(r=Math.max(0,-(u*l+c)))>0?l:Math.min(Math.max(-l,-h),l),s=-r*r+a*(a+2*h)+d);else a=u>0?-l:l,s=-(r=Math.max(0,-(u*a+c)))*r+a*(a+2*h)+d;return n&&n.copy(this.origin).addScaledVector(this.direction,r),i&&i.copy(eZ).addScaledVector(eJ,a),s}intersectSphere(e,t){eY.subVectors(e.center,this.origin);let n=eY.dot(this.direction),i=eY.dot(eY)-n*n,r=e.radius*e.radius;if(i>r)return null;let a=Math.sqrt(r-i),s=n-a,o=n+a;return o<0?null:s<0?this.at(o,t):this.at(s,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return null===n?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return!!(0===t||e.normal.dot(this.direction)*t<0)}intersectBox(e,t){let n,i,r,a,s,o,l=1/this.direction.x,u=1/this.direction.y,c=1/this.direction.z,h=this.origin;return(l>=0?(n=(e.min.x-h.x)*l,i=(e.max.x-h.x)*l):(n=(e.max.x-h.x)*l,i=(e.min.x-h.x)*l),u>=0?(r=(e.min.y-h.y)*u,a=(e.max.y-h.y)*u):(r=(e.max.y-h.y)*u,a=(e.min.y-h.y)*u),n>a||r>i||((r>n||isNaN(n))&&(n=r),(a=0?(s=(e.min.z-h.z)*c,o=(e.max.z-h.z)*c):(s=(e.max.z-h.z)*c,o=(e.min.z-h.z)*c),n>o||s>i||((s>n||n!=n)&&(n=s),(o=0?n:i,t)}intersectsBox(e){return null!==this.intersectBox(e,eY)}intersectTriangle(e,t,n,i,r){let a;e$.subVectors(t,e),eQ.subVectors(n,e),e0.crossVectors(e$,eQ);let s=this.direction.dot(e0);if(s>0){if(i)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}eK.subVectors(this.origin,e);let o=a*this.direction.dot(eQ.crossVectors(eK,eQ));if(o<0)return null;let l=a*this.direction.dot(e$.cross(eK));if(l<0||o+l>s)return null;let u=-a*eK.dot(e0);return u<0?null:this.at(u/s,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class e2{constructor(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m){e2.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==e&&this.set(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m)}set(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m){let g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=i,g[1]=r,g[5]=a,g[9]=s,g[13]=o,g[2]=l,g[6]=u,g[10]=c,g[14]=h,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new e2().fromArray(this.elements)}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){let t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,n=e.elements,i=1/e3.setFromMatrixColumn(e,0).length(),r=1/e3.setFromMatrixColumn(e,1).length(),a=1/e3.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*r,t[5]=n[5]*r,t[6]=n[6]*r,t[7]=0,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,n=e.x,i=e.y,r=e.z,a=Math.cos(n),s=Math.sin(n),o=Math.cos(i),l=Math.sin(i),u=Math.cos(r),c=Math.sin(r);if("XYZ"===e.order){let e=a*u,n=a*c,i=s*u,r=s*c;t[0]=o*u,t[4]=-o*c,t[8]=l,t[1]=n+i*l,t[5]=e-r*l,t[9]=-s*o,t[2]=r-e*l,t[6]=i+n*l,t[10]=a*o}else if("YXZ"===e.order){let e=o*u,n=o*c,i=l*u,r=l*c;t[0]=e+r*s,t[4]=i*s-n,t[8]=a*l,t[1]=a*c,t[5]=a*u,t[9]=-s,t[2]=n*s-i,t[6]=r+e*s,t[10]=a*o}else if("ZXY"===e.order){let e=o*u,n=o*c,i=l*u,r=l*c;t[0]=e-r*s,t[4]=-a*c,t[8]=i+n*s,t[1]=n+i*s,t[5]=a*u,t[9]=r-e*s,t[2]=-a*l,t[6]=s,t[10]=a*o}else if("ZYX"===e.order){let e=a*u,n=a*c,i=s*u,r=s*c;t[0]=o*u,t[4]=i*l-n,t[8]=e*l+r,t[1]=o*c,t[5]=r*l+e,t[9]=n*l-i,t[2]=-l,t[6]=s*o,t[10]=a*o}else if("YZX"===e.order){let e=a*o,n=a*l,i=s*o,r=s*l;t[0]=o*u,t[4]=r-e*c,t[8]=i*c+n,t[1]=c,t[5]=a*u,t[9]=-s*u,t[2]=-l*u,t[6]=n*c+i,t[10]=e-r*c}else if("XZY"===e.order){let e=a*o,n=a*l,i=s*o,r=s*l;t[0]=o*u,t[4]=-c,t[8]=l*u,t[1]=e*c+r,t[5]=a*u,t[9]=n*c-i,t[2]=i*c-n,t[6]=s*u,t[10]=r*c+e}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(e5,e,e6)}lookAt(e,t,n){let i=this.elements;return e7.subVectors(e,t),0===e7.lengthSq()&&(e7.z=1),e7.normalize(),e8.crossVectors(n,e7),0===e8.lengthSq()&&(1===Math.abs(n.z)?e7.x+=1e-4:e7.z+=1e-4,e7.normalize(),e8.crossVectors(n,e7)),e8.normalize(),e9.crossVectors(e7,e8),i[0]=e8.x,i[4]=e9.x,i[8]=e7.x,i[1]=e8.y,i[5]=e9.y,i[9]=e7.y,i[2]=e8.z,i[6]=e9.z,i[10]=e7.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,r=this.elements,a=n[0],s=n[4],o=n[8],l=n[12],u=n[1],c=n[5],h=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],v=n[3],_=n[7],y=n[11],x=n[15],b=i[0],S=i[4],M=i[8],T=i[12],w=i[1],E=i[5],A=i[9],C=i[13],R=i[2],P=i[6],I=i[10],L=i[14],N=i[3],U=i[7],D=i[11],O=i[15];return r[0]=a*b+s*w+o*R+l*N,r[4]=a*S+s*E+o*P+l*U,r[8]=a*M+s*A+o*I+l*D,r[12]=a*T+s*C+o*L+l*O,r[1]=u*b+c*w+h*R+d*N,r[5]=u*S+c*E+h*P+d*U,r[9]=u*M+c*A+h*I+d*D,r[13]=u*T+c*C+h*L+d*O,r[2]=p*b+f*w+m*R+g*N,r[6]=p*S+f*E+m*P+g*U,r[10]=p*M+f*A+m*I+g*D,r[14]=p*T+f*C+m*L+g*O,r[3]=v*b+_*w+y*R+x*N,r[7]=v*S+_*E+y*P+x*U,r[11]=v*M+_*A+y*I+x*D,r[15]=v*T+_*C+y*L+x*O,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[4],i=e[8],r=e[12],a=e[1],s=e[5],o=e[9],l=e[13],u=e[2],c=e[6],h=e[10],d=e[14];return e[3]*(r*o*c-i*l*c-r*s*h+n*l*h+i*s*d-n*o*d)+e[7]*(t*o*d-t*l*h+r*a*h-i*a*d+i*l*u-r*o*u)+e[11]*(t*l*c-t*s*d-r*a*c+n*a*d+r*s*u-n*l*u)+e[15]*(-i*s*u-t*o*c+t*s*h+i*a*c-n*a*h+n*o*u)}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(e,t,n){let i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],v=c*m*l-f*h*l+f*o*d-s*m*d-c*o*g+s*h*g,_=p*h*l-u*m*l-p*o*d+a*m*d+u*o*g-a*h*g,y=u*f*l-p*c*l+p*s*d-a*f*d-u*s*g+a*c*g,x=p*c*o-u*f*o-p*s*h+a*f*h+u*s*m-a*c*m,b=t*v+n*_+i*y+r*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let S=1/b;return e[0]=v*S,e[1]=(f*h*r-c*m*r-f*i*d+n*m*d+c*i*g-n*h*g)*S,e[2]=(s*m*r-f*o*r+f*i*l-n*m*l-s*i*g+n*o*g)*S,e[3]=(c*o*r-s*h*r-c*i*l+n*h*l+s*i*d-n*o*d)*S,e[4]=_*S,e[5]=(u*m*r-p*h*r+p*i*d-t*m*d-u*i*g+t*h*g)*S,e[6]=(p*o*r-a*m*r-p*i*l+t*m*l+a*i*g-t*o*g)*S,e[7]=(a*h*r-u*o*r+u*i*l-t*h*l-a*i*d+t*o*d)*S,e[8]=y*S,e[9]=(p*c*r-u*f*r-p*n*d+t*f*d+u*n*g-t*c*g)*S,e[10]=(a*f*r-p*s*r+p*n*l-t*f*l-a*n*g+t*s*g)*S,e[11]=(u*s*r-a*c*r-u*n*l+t*c*l+a*n*d-t*s*d)*S,e[12]=x*S,e[13]=(u*f*i-p*c*i+p*n*h-t*f*h-u*n*m+t*c*m)*S,e[14]=(p*s*i-a*f*i-p*n*o+t*f*o+a*n*m-t*s*m)*S,e[15]=(a*c*i-u*s*i+u*n*o-t*c*o-a*n*h+t*s*h)*S,this}scale(e){let t=this.elements,n=e.x,i=e.y,r=e.z;return t[0]*=n,t[4]*=i,t[8]*=r,t[1]*=n,t[5]*=i,t[9]*=r,t[2]*=n,t[6]*=i,t[10]*=r,t[3]*=n,t[7]*=i,t[11]*=r,this}getMaxScaleOnAxis(){let e=this.elements;return Math.sqrt(Math.max(e[0]*e[0]+e[1]*e[1]+e[2]*e[2],e[4]*e[4]+e[5]*e[5]+e[6]*e[6],e[8]*e[8]+e[9]*e[9]+e[10]*e[10]))}makeTranslation(e,t,n){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let n=Math.cos(t),i=Math.sin(t),r=1-n,a=e.x,s=e.y,o=e.z,l=r*a,u=r*s;return this.set(l*a+n,l*s-i*o,l*o+i*s,0,l*s+i*o,u*s+n,u*o-i*a,0,l*o-i*s,u*o+i*a,r*o*o+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,r,a){return this.set(1,n,r,0,e,1,a,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){let i=this.elements,r=t._x,a=t._y,s=t._z,o=t._w,l=r+r,u=a+a,c=s+s,h=r*l,d=r*u,p=r*c,f=a*u,m=a*c,g=s*c,v=o*l,_=o*u,y=o*c,x=n.x,b=n.y,S=n.z;return i[0]=(1-(f+g))*x,i[1]=(d+y)*x,i[2]=(p-_)*x,i[3]=0,i[4]=(d-y)*b,i[5]=(1-(h+g))*b,i[6]=(m+v)*b,i[7]=0,i[8]=(p+_)*S,i[9]=(m-v)*S,i[10]=(1-(h+f))*S,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){let i=this.elements,r=e3.set(i[0],i[1],i[2]).length(),a=e3.set(i[4],i[5],i[6]).length(),s=e3.set(i[8],i[9],i[10]).length();0>this.determinant()&&(r=-r),e.x=i[12],e.y=i[13],e.z=i[14],e4.copy(this);let o=1/r,l=1/a,u=1/s;return e4.elements[0]*=o,e4.elements[1]*=o,e4.elements[2]*=o,e4.elements[4]*=l,e4.elements[5]*=l,e4.elements[6]*=l,e4.elements[8]*=u,e4.elements[9]*=u,e4.elements[10]*=u,t.setFromRotationMatrix(e4),n.x=r,n.y=a,n.z=s,this}makePerspective(e,t,n,i,r,a,s=2e3){let o,l,u=this.elements;if(2e3===s)o=-(a+r)/(a-r),l=-2*a*r/(a-r);else if(2001===s)o=-a/(a-r),l=-a*r/(a-r);else throw Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+s);return u[0]=2*r/(t-e),u[4]=0,u[8]=(t+e)/(t-e),u[12]=0,u[1]=0,u[5]=2*r/(n-i),u[9]=(n+i)/(n-i),u[13]=0,u[2]=0,u[6]=0,u[10]=o,u[14]=l,u[3]=0,u[7]=0,u[11]=-1,u[15]=0,this}makeOrthographic(e,t,n,i,r,a,s=2e3){let o,l,u=this.elements,c=1/(t-e),h=1/(n-i),d=1/(a-r);if(2e3===s)o=(a+r)*d,l=-2*d;else if(2001===s)o=r*d,l=-1*d;else throw Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+s);return u[0]=2*c,u[4]=0,u[8]=0,u[12]=-((t+e)*c),u[1]=0,u[5]=2*h,u[9]=0,u[13]=-((n+i)*h),u[2]=0,u[6]=0,u[10]=l,u[14]=-o,u[3]=0,u[7]=0,u[11]=0,u[15]=1,this}equals(e){let t=this.elements,n=e.elements;for(let e=0;e<16;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}let e3=new eE,e4=new e2,e5=new eE(0,0,0),e6=new eE(1,1,1),e8=new eE,e9=new eE,e7=new eE,te=new e2,tt=new ew;class tn{constructor(e=0,t=0,n=0,i=tn.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){let i=e.elements,r=i[0],a=i[4],s=i[8],o=i[1],l=i[5],u=i[9],c=i[2],h=i[6],d=i[10];switch(t){case"XYZ":this._y=Math.asin(V(s,-1,1)),.9999999>Math.abs(s)?(this._x=Math.atan2(-u,d),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(h,l),this._z=0);break;case"YXZ":this._x=Math.asin(-V(u,-1,1)),.9999999>Math.abs(u)?(this._y=Math.atan2(s,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-c,r),this._z=0);break;case"ZXY":this._x=Math.asin(V(h,-1,1)),.9999999>Math.abs(h)?(this._y=Math.atan2(-c,d),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-V(c,-1,1)),.9999999>Math.abs(c)?(this._x=Math.atan2(h,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(V(o,-1,1)),.9999999>Math.abs(o)?(this._x=Math.atan2(-u,l),this._y=Math.atan2(-c,r)):(this._x=0,this._y=Math.atan2(s,d));break;case"XZY":this._z=Math.asin(-V(a,-1,1)),.9999999>Math.abs(a)?(this._x=Math.atan2(h,l),this._y=Math.atan2(s,r)):(this._x=Math.atan2(-u,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===n&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return te.makeRotationFromQuaternion(e),this.setFromRotationMatrix(te,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return tt.setFromEuler(this),this.setFromQuaternion(tt,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}tn.DEFAULT_ORDER="XYZ";class ti{constructor(){this.mask=1}set(e){this.mask=1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map(e=>({boxInitialized:e.boxInitialized,boxMin:e.box.min.toArray(),boxMax:e.box.max.toArray(),sphereInitialized:e.sphereInitialized,sphereRadius:e.sphere.radius,sphereCenter:e.sphere.center.toArray()})),i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(e),null!==this._colorsTexture&&(i.colorsTexture=this._colorsTexture.toJSON(e)),null!==this.boundingSphere&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),null!==this.boundingBox&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(e.geometries,this.geometry);let t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){let n=t.shapes;if(Array.isArray(n))for(let t=0,i=n.length;t0){i.children=[];for(let t=0;t0){i.animations=[];for(let t=0;t0&&(n.geometries=t),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),s.length>0&&(n.images=s),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),u.length>0&&(n.animations=u),c.length>0&&(n.nodes=c)}return n.object=i,n;function a(e){let t=[];for(let n in e){let i=e[n];delete i.metadata,t.push(i)}return t}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let t=0;t0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(e,t,n,i,r){tx.subVectors(i,t),tb.subVectors(n,t),tS.subVectors(e,t);let a=tx.dot(tx),s=tx.dot(tb),o=tx.dot(tS),l=tb.dot(tb),u=tb.dot(tS),c=a*l-s*s;if(0===c)return r.set(0,0,0),null;let h=1/c,d=(l*o-s*u)*h,p=(a*u-s*o)*h;return r.set(1-d-p,p,d)}static containsPoint(e,t,n,i){return null!==this.getBarycoord(e,t,n,i,tM)&&tM.x>=0&&tM.y>=0&&tM.x+tM.y<=1}static getInterpolation(e,t,n,i,r,a,s,o){return null===this.getBarycoord(e,t,n,i,tM)?(o.x=0,o.y=0,"z"in o&&(o.z=0),"w"in o&&(o.w=0),null):(o.setScalar(0),o.addScaledVector(r,tM.x),o.addScaledVector(a,tM.y),o.addScaledVector(s,tM.z),o)}static getInterpolatedAttribute(e,t,n,i,r,a){return tP.setScalar(0),tI.setScalar(0),tL.setScalar(0),tP.fromBufferAttribute(e,t),tI.fromBufferAttribute(e,n),tL.fromBufferAttribute(e,i),a.setScalar(0),a.addScaledVector(tP,r.x),a.addScaledVector(tI,r.y),a.addScaledVector(tL,r.z),a}static isFrontFacing(e,t,n,i){return tx.subVectors(n,t),tb.subVectors(e,t),0>tx.cross(tb).dot(i)}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return tx.subVectors(this.c,this.b),tb.subVectors(this.a,this.b),.5*tx.cross(tb).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return tN.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return tN.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,n,i,r){return tN.getInterpolation(e,this.a,this.b,this.c,t,n,i,r)}containsPoint(e){return tN.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return tN.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n,i,r=this.a,a=this.b,s=this.c;tT.subVectors(a,r),tw.subVectors(s,r),tA.subVectors(e,r);let o=tT.dot(tA),l=tw.dot(tA);if(o<=0&&l<=0)return t.copy(r);tC.subVectors(e,a);let u=tT.dot(tC),c=tw.dot(tC);if(u>=0&&c<=u)return t.copy(a);let h=o*c-u*l;if(h<=0&&o>=0&&u<=0)return n=o/(o-u),t.copy(r).addScaledVector(tT,n);tR.subVectors(e,s);let d=tT.dot(tR),p=tw.dot(tR);if(p>=0&&d<=p)return t.copy(s);let f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return i=l/(l-p),t.copy(r).addScaledVector(tw,i);let m=u*p-d*c;if(m<=0&&c-u>=0&&d-p>=0)return tE.subVectors(s,a),i=(c-u)/(c-u+(d-p)),t.copy(a).addScaledVector(tE,i);let g=1/(m+f+h);return n=f*g,i=h*g,t.copy(r).addScaledVector(tT,n).addScaledVector(tw,i)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let tU={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32},tD={h:0,s:0,l:0},tO={h:0,s:0,l:0};function tF(e,t,n){return(n<0&&(n+=1),n>1&&(n-=1),n<1/6)?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*6*(2/3-n):e}class tz{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){return void 0===t&&void 0===n?e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e):this.setRGB(e,t,n),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=I){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,eu.toWorkingColorSpace(this,t),this}setRGB(e,t,n,i=eu.workingColorSpace){return this.r=e,this.g=t,this.b=n,eu.toWorkingColorSpace(this,i),this}setHSL(e,t,n,i=eu.workingColorSpace){if(e=G(e,1),t=V(t,0,1),n=V(n,0,1),0===t)this.r=this.g=this.b=n;else{let i=n<=.5?n*(1+t):n+t-n*t,r=2*n-i;this.r=tF(r,i,e+1/3),this.g=tF(r,i,e),this.b=tF(r,i,e-1/3)}return eu.toWorkingColorSpace(this,i),this}setStyle(e,t=I){let n;function i(t){void 0!==t&&1>parseFloat(t)&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}if(n=/^(\w+)\(([^\)]*)\)/.exec(e)){let r,a=n[1],s=n[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){let i=n[1],r=i.length;if(3===r)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,t);if(6===r)return this.setHex(parseInt(i,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=I){let n=tU[e.toLowerCase()];return void 0!==n?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=ec(e.r),this.g=ec(e.g),this.b=ec(e.b),this}copyLinearToSRGB(e){return this.r=eh(e.r),this.g=eh(e.g),this.b=eh(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=I){return eu.fromWorkingColorSpace(tB.copy(this),e),65536*Math.round(V(255*tB.r,0,255))+256*Math.round(V(255*tB.g,0,255))+Math.round(V(255*tB.b,0,255))}getHexString(e=I){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=eu.workingColorSpace){let n,i;eu.fromWorkingColorSpace(tB.copy(this),t);let r=tB.r,a=tB.g,s=tB.b,o=Math.max(r,a,s),l=Math.min(r,a,s),u=(l+o)/2;if(l===o)n=0,i=0;else{let e=o-l;switch(i=u<=.5?e/(o+l):e/(2-o-l),o){case r:n=(a-s)/e+6*(a0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(let t in e){let n=e[t];if(void 0===n){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}let i=this[t];if(void 0===i){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){let t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});let n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(e){let t=[];for(let n in e){let i=e[n];delete i.metadata,t.push(i)}return t}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.dispersion&&(n.dispersion=this.dispersion),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapRotation&&(n.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),!0===this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=!0),204!==this.blendSrc&&(n.blendSrc=this.blendSrc),205!==this.blendDst&&(n.blendDst=this.blendDst),100!==this.blendEquation&&(n.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(n.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(n.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(n.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(n.depthFunc=this.depthFunc),!1===this.depthTest&&(n.depthTest=this.depthTest),!1===this.depthWrite&&(n.depthWrite=this.depthWrite),!1===this.colorWrite&&(n.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(n.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(n.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(n.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(n.stencilFuncMask=this.stencilFuncMask),7680!==this.stencilFail&&(n.stencilFail=this.stencilFail),7680!==this.stencilZFail&&(n.stencilZFail=this.stencilZFail),7680!==this.stencilZPass&&(n.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(n.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaHash&&(n.alphaHash=!0),!0===this.alphaToCoverage&&(n.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=!0),!0===this.forceSinglePass&&(n.forceSinglePass=!0),!0===this.wireframe&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),t){let t=i(e.textures),r=i(e.images);t.length>0&&(n.textures=t),r.length>0&&(n.images=r)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,n=null;if(null!==t){let e=t.length;n=Array(e);for(let i=0;i!==e;++i)n[i]=t[i].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class tV extends tH{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new tz(0xffffff),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}let tG=function(){let e=new ArrayBuffer(4),t=new Float32Array(e),n=new Uint32Array(e),i=new Uint32Array(512),r=new Uint32Array(512);for(let e=0;e<256;++e){let t=e-127;t<-27?(i[e]=0,i[256|e]=32768,r[e]=24,r[256|e]=24):t<-14?(i[e]=1024>>-t-14,i[256|e]=1024>>-t-14|32768,r[e]=-t-1,r[256|e]=-t-1):t<=15?(i[e]=t+15<<10,i[256|e]=t+15<<10|32768,r[e]=13,r[256|e]=13):t<128?(i[e]=31744,i[256|e]=64512,r[e]=24,r[256|e]=24):(i[e]=31744,i[256|e]=64512,r[e]=13,r[256|e]=13)}let a=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let e=1;e<1024;++e){let t=e<<13,n=0;for(;(8388608&t)==0;)t<<=1,n-=8388608;t&=-8388609,n+=0x38800000,a[e]=t|n}for(let e=1024;e<2048;++e)a[e]=0x38000000+(e-1024<<13);for(let e=1;e<31;++e)s[e]=e<<23;s[31]=0x47800000,s[32]=0x80000000;for(let e=33;e<63;++e)s[e]=0x80000000+(e-32<<23);s[63]=0xc7800000;for(let e=1;e<64;++e)32!==e&&(o[e]=1024);return{floatView:t,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:a,exponentTable:s,offsetTable:o}}();function tW(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=V(e,-65504,65504),tG.floatView[0]=e;let t=tG.uint32View[0],n=t>>23&511;return tG.baseTable[n]+((8388607&t)>>tG.shiftTable[n])}function tj(e){let t=e>>10;return tG.uint32View[0]=tG.mantissaTable[tG.offsetTable[t]+(1023&e)]+tG.exponentTable[t],tG.floatView[0]}let tX={toHalfFloat:tW,fromHalfFloat:tj},tq=new eE,tY=new Y;class tZ{constructor(e,t,n=!1){if(Array.isArray(e))throw TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=n,this.usage=35044,this.updateRanges=[],this.gpuType=1015,this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,r=this.itemSize;it.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new eR);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new eE(-1/0,-1/0,-1/0),new eE(Infinity,Infinity,Infinity));return}if(void 0!==e){if(this.boundingBox.setFromBufferAttribute(e),t)for(let e=0,n=t.length;e0&&(e.userData=this.userData),void 0!==this.parameters){let t=this.parameters;for(let n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};let t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let t in n){let i=n[t];e.data.attributes[t]=i.toJSON(e.data)}let i={},r=!1;for(let t in this.morphAttributes){let n=this.morphAttributes[t],a=[];for(let t=0,i=n.length;t0&&(i[t]=a,r=!0)}r&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));let s=this.boundingSphere;return null!==s&&(e.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;null!==n&&this.setIndex(n.clone(t));let i=e.attributes;for(let e in i){let n=i[e];this.setAttribute(e,n.clone(t))}let r=e.morphAttributes;for(let e in r){let n=[],i=r[e];for(let e=0,r=i.length;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e(e.far-e.near)**2)||(ni.copy(r).invert(),nr.copy(e.ray).applyMatrix4(ni),(null===n.boundingBox||!1!==nr.intersectsBox(n.boundingBox))&&this._computeIntersections(e,t,nr)))}_computeIntersections(e,t,n){let i,r=this.geometry,a=this.material,s=r.index,o=r.attributes.position,l=r.attributes.uv,u=r.attributes.uv1,c=r.attributes.normal,h=r.groups,d=r.drawRange;if(null!==s)if(Array.isArray(a))for(let r=0,o=h.length;rn.far?null:{distance:l,point:np.clone(),object:e}}(e,t,n,i,no,nl,nu,nd);if(c){let e=new eE;tN.getBarycoord(nd,no,nl,nu,e),r&&(c.uv=tN.getInterpolatedAttribute(r,o,l,u,e,new Y)),a&&(c.uv1=tN.getInterpolatedAttribute(a,o,l,u,e,new Y)),s&&(c.normal=tN.getInterpolatedAttribute(s,o,l,u,e,new eE),c.normal.dot(i.direction)>0&&c.normal.multiplyScalar(-1));let t={a:o,b:l,c:u,normal:new eE,materialIndex:0};tN.getNormal(no,nl,nu,t.normal),c.face=t,c.barycoord=e}return c}class ng extends nn{constructor(e=1,t=1,n=1,i=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:i,heightSegments:r,depthSegments:a};const s=this;i=Math.floor(i),r=Math.floor(r);const o=[],l=[],u=[],c=[];let h=0,d=0;function p(e,t,n,i,r,a,p,f,m,g,v){let _=a/m,y=p/g,x=a/2,b=p/2,S=f/2,M=m+1,T=g+1,w=0,E=0,A=new eE;for(let a=0;a0?1:-1,u.push(A.x,A.y,A.z),c.push(o/m),c.push(1-a/g),w+=1}}for(let e=0;e0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let n={};for(let e in this.extensions)!0===this.extensions[e]&&(n[e]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}class nS extends ty{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new e2,this.projectionMatrix=new e2,this.projectionMatrixInverse=new e2,this.coordinateSystem=2e3}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}let nM=new eE,nT=new Y,nw=new Y;class nE extends nS{constructor(e=50,t=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=2*k*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(.5*B*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*k*Math.atan(Math.tan(.5*B*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,n){nM.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(nM.x,nM.y).multiplyScalar(-e/nM.z),nM.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(nM.x,nM.y).multiplyScalar(-e/nM.z)}getViewSize(e,t){return this.getViewBounds(e,nT,nw),t.subVectors(nw,nT)}setViewOffset(e,t,n,i,r,a){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(.5*B*this.fov)/this.zoom,n=2*t,i=this.aspect*n,r=-.5*i,a=this.view;if(null!==this.view&&this.view.enabled){let e=a.fullWidth,s=a.fullHeight;r+=a.offsetX*i/e,t-=a.offsetY*n/s,i*=a.width/e,n*=a.height/s}let s=this.filmOffset;0!==s&&(r+=e*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,t,t-n,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}class nA extends ty{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new nE(-90,1,e,t);i.layers=this.layers,this.add(i);const r=new nE(-90,1,e,t);r.layers=this.layers,this.add(r);const a=new nE(-90,1,e,t);a.layers=this.layers,this.add(a);const s=new nE(-90,1,e,t);s.layers=this.layers,this.add(s);const o=new nE(-90,1,e,t);o.layers=this.layers,this.add(o);const l=new nE(-90,1,e,t);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[n,i,r,a,s,o]=t;for(let e of t)this.remove(e);if(2e3===e)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),s.up.set(0,1,0),s.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else if(2001===e)n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),s.up.set(0,-1,0),s.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1);else throw Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(let e of t)this.add(e),e.updateMatrixWorld()}update(e,t){null===this.parent&&this.updateMatrixWorld();let{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[r,a,s,o,l,u]=this.children,c=e.getRenderTarget(),h=e.getActiveCubeFace(),d=e.getActiveMipmapLevel(),p=e.xr.enabled;e.xr.enabled=!1;let f=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0,i),e.render(t,r),e.setRenderTarget(n,1,i),e.render(t,a),e.setRenderTarget(n,2,i),e.render(t,s),e.setRenderTarget(n,3,i),e.render(t,o),e.setRenderTarget(n,4,i),e.render(t,l),n.texture.generateMipmaps=f,e.setRenderTarget(n,5,i),e.render(t,u),e.setRenderTarget(c,h,d),e.xr.enabled=p,n.texture.needsPMREMUpdate=!0}}class nC extends ev{constructor(e,t,n,i,r,a,s,o,l,u){super(e=void 0!==e?e:[],t=void 0!==t?t:301,n,i,r,a,s,o,l,u),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class nR extends ex{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1};this.texture=new nC([n,n,n,n,n,n],t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:1006}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},i=new ng(5,5,5),r=new nb({name:"CubemapFromEquirect",uniforms:nv(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=t;let a=new nf(i,r),s=t.minFilter;return 1008===t.minFilter&&(t.minFilter=1006),new nA(1,10,this).update(e,a),t.minFilter=s,a.geometry.dispose(),a.material.dispose(),this}clear(e,t,n,i){let r=e.getRenderTarget();for(let r=0;r<6;r++)e.setRenderTarget(this,r),e.clear(t,n,i);e.setRenderTarget(r)}}class nP{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new tz(e),this.density=t}clone(){return new nP(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class nI{constructor(e,t=1,n=1e3){this.isFog=!0,this.name="",this.color=new tz(e),this.near=t,this.far=n}clone(){return new nI(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class nL extends ty{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new tn,this.environmentIntensity=1,this.environmentRotation=new tn,this.overrideMaterial=null,"u">typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}}class nN{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=35044,this.updateRanges=[],this.version=0,this.uuid=H()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,r=this.stride;ie.far||t.push({distance:o,point:nF.clone(),uv:tN.getInterpolation(nF,nG,nW,nj,nX,nq,nY,new Y),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function nJ(e,t,n,i,r,a){nk.subVectors(e,n).addScalar(.5).multiply(i),void 0!==r?(nH.x=a*nk.x-r*nk.y,nH.y=r*nk.x+a*nk.y):nH.copy(nk),e.copy(t),e.x+=nH.x,e.y+=nH.y,e.applyMatrix4(nV)}let nK=new eE,n$=new eE;class nQ extends ty{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let e=0,n=t.length;e0){let n,i;for(n=1,i=t.length;n0){nK.setFromMatrixPosition(this.matrixWorld);let n=e.ray.origin.distanceTo(nK);this.getObjectForDistance(n).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){let n,i;nK.setFromMatrixPosition(e.matrixWorld),n$.setFromMatrixPosition(this.matrixWorld);let r=nK.distanceTo(n$)/e.zoom;for(n=1,t[0].object.visible=!0,i=t.length;n=e)t[n-1].object.visible=!1,t[n].object.visible=!0;else break}for(this._currentLevel=n-1;n1?null:t.copy(e.start).addScaledVector(n,r)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let n=t||i_.getNormalMatrix(e),i=this.coplanarPoint(ig).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}let ix=new eq,ib=new eE;class iS{constructor(e=new iy,t=new iy,n=new iy,i=new iy,r=new iy,a=new iy){this.planes=[e,t,n,i,r,a]}set(e,t,n,i,r,a){let s=this.planes;return s[0].copy(e),s[1].copy(t),s[2].copy(n),s[3].copy(i),s[4].copy(r),s[5].copy(a),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=2e3){let n=this.planes,i=e.elements,r=i[0],a=i[1],s=i[2],o=i[3],l=i[4],u=i[5],c=i[6],h=i[7],d=i[8],p=i[9],f=i[10],m=i[11],g=i[12],v=i[13],_=i[14],y=i[15];if(n[0].setComponents(o-r,h-l,m-d,y-g).normalize(),n[1].setComponents(o+r,h+l,m+d,y+g).normalize(),n[2].setComponents(o+a,h+u,m+p,y+v).normalize(),n[3].setComponents(o-a,h-u,m-p,y-v).normalize(),n[4].setComponents(o-s,h-c,m-f,y-_).normalize(),2e3===t)n[5].setComponents(o+s,h+c,m+f,y+_).normalize();else if(2001===t)n[5].setComponents(s,c,f,_).normalize();else throw Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),ix.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),ix.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(ix)}intersectsSprite(e){return ix.center.set(0,0,0),ix.radius=.7071067811865476,ix.applyMatrix4(e.matrixWorld),this.intersectsSphere(ix)}intersectsSphere(e){let t=this.planes,n=e.center,i=-e.radius;for(let e=0;e<6;e++)if(t[e].distanceToPoint(n)0?e.max.x:e.min.x,ib.y=i.normal.y>0?e.max.y:e.min.y,ib.z=i.normal.z>0?e.max.z:e.min.z,0>i.distanceToPoint(ib))return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(0>t[n].distanceToPoint(e))return!1;return!0}clone(){return new this.constructor().copy(this)}}function iM(e,t){return e-t}function iT(e,t){return e.z-t.z}function iw(e,t){return t.z-e.z}let iE=new e2,iA=new tz(1,1,1),iC=new iS,iR=new eR,iP=new eq,iI=new eE,iL=new eE,iN=new eE,iU=new class{constructor(){this.index=0,this.pool=[],this.list=[]}push(e,t,n,i){let r=this.pool,a=this.list;this.index>=r.length&&r.push({start:-1,count:-1,z:-1,index:-1});let s=r[this.index];a.push(s),this.index++,s.start=e,s.count=t,s.z=n,s.index=i}reset(){this.list.length=0,this.index=0}},iD=new nf,iO=[];function iF(e,t){if(e.constructor!==t.constructor){let n=Math.min(e.length,t.length);for(let i=0;i65535?new Uint32Array(i):new Uint16Array(i);t.setIndex(new tZ(e,1))}this._geometryInitialized=!0}}_validateGeometry(e){let t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(let n in t.attributes){if(!e.hasAttribute(n))throw Error(`THREE.BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);let i=e.getAttribute(n),r=t.getAttribute(n);if(i.itemSize!==r.itemSize||i.normalized!==r.normalized)throw Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){let t=this._instanceInfo;if(e<0||e>=t.length||!1===t[e].active)throw Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){let t=this._geometryInfo;if(e<0||e>=t.length||!1===t[e].active)throw Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new eR);let e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let n=0,i=t.length;n=this.maxInstanceCount&&0===this._availableInstanceIds.length)throw Error("THREE.BatchedMesh: Maximum item count reached.");let t={visible:!0,active:!0,geometryIndex:e},n=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(iM),n=this._availableInstanceIds.shift(),this._instanceInfo[n]=t):(n=this._instanceInfo.length,this._instanceInfo.push(t));let i=this._matricesTexture;iE.identity().toArray(i.image.data,16*n),i.needsUpdate=!0;let r=this._colorsTexture;return r&&(iA.toArray(r.image.data,4*n),r.needsUpdate=!0),this._visibilityChanged=!0,n}addGeometry(e,t=-1,n=-1){let i;this._initializeGeometry(e),this._validateGeometry(e);let r={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},a=this._geometryInfo;r.vertexStart=this._nextVertexStart,r.reservedVertexCount=-1===t?e.getAttribute("position").count:t;let s=e.getIndex();if(null!==s&&(r.indexStart=this._nextIndexStart,r.reservedIndexCount=-1===n?s.count:n),-1!==r.indexStart&&r.indexStart+r.reservedIndexCount>this._maxIndexCount||r.vertexStart+r.reservedVertexCount>this._maxVertexCount)throw Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(iM),a[i=this._availableGeometryIds.shift()]=r):(i=this._geometryCount,this._geometryCount++,a.push(r)),this.setGeometryAt(i,e),this._nextIndexStart=r.indexStart+r.reservedIndexCount,this._nextVertexStart=r.vertexStart+r.reservedVertexCount,i}setGeometryAt(e,t){if(e>=this._geometryCount)throw Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);let n=this.geometry,i=null!==n.getIndex(),r=n.getIndex(),a=t.getIndex(),s=this._geometryInfo[e];if(i&&a.count>s.reservedIndexCount||t.attributes.position.count>s.reservedVertexCount)throw Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");let o=s.vertexStart,l=s.reservedVertexCount;for(let e in s.vertexCount=t.getAttribute("position").count,n.attributes){let i=t.getAttribute(e),r=n.getAttribute(e);!function(e,t,n=0){let i=t.itemSize;if(e.isInterleavedBufferAttribute||e.array.constructor!==t.array.constructor){let r=e.count;for(let a=0;a=t.length||!1===t[e].active)return this;let n=this._instanceInfo;for(let t=0,i=n.length;tt).sort((e,t)=>n[e].vertexStart-n[t].vertexStart),r=this.geometry;for(let a=0,s=n.length;a=this._geometryCount)return null;let n=this.geometry,i=this._geometryInfo[e];if(null===i.boundingBox){let e=new eR,t=n.index,r=n.attributes.position;for(let n=i.start,a=i.start+i.count;n=this._geometryCount)return null;let n=this.geometry,i=this._geometryInfo[e];if(null===i.boundingSphere){let t=new eq;this.getBoundingBoxAt(e,iR),iR.getCenter(t.center);let r=n.index,a=n.attributes.position,s=0;for(let e=i.start,n=i.start+i.count;ee.active);if(Math.max(...n.map(e=>e.vertexStart+e.reservedVertexCount))>e)throw Error(`BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...n.map(e=>e.indexStart+e.reservedIndexCount))>t)throw Error(`BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);let i=this.geometry;i.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new nn,this._initializeGeometry(i));let r=this.geometry;for(let e in i.index&&iF(i.index.array,r.index.array),i.attributes)iF(i.attributes[e].array,r.attributes[e].array)}raycast(e,t){let n=this._instanceInfo,i=this._geometryInfo,r=this.matrixWorld,a=this.geometry;iD.material=this.material,iD.geometry.index=a.index,iD.geometry.attributes=a.attributes,null===iD.geometry.boundingBox&&(iD.geometry.boundingBox=new eR),null===iD.geometry.boundingSphere&&(iD.geometry.boundingSphere=new eq);for(let a=0,s=n.length;a({...e,boundingBox:null!==e.boundingBox?e.boundingBox.clone():null,boundingSphere:null!==e.boundingSphere?e.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(e=>({...e})),this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),null!==this._colorsTexture&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,null!==this._colorsTexture&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(e,t,n,i,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;let a=i.getIndex(),s=null===a?1:a.array.BYTES_PER_ELEMENT,o=this._instanceInfo,l=this._multiDrawStarts,u=this._multiDrawCounts,c=this._geometryInfo,h=this.perObjectFrustumCulled,d=this._indirectTexture,p=d.image.data;h&&(iE.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),iC.setFromProjectionMatrix(iE,e.coordinateSystem));let f=0;if(this.sortObjects){iE.copy(this.matrixWorld).invert(),iI.setFromMatrixPosition(n.matrixWorld).applyMatrix4(iE),iL.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(iE);for(let e=0,t=o.length;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;ei)return;ij.applyMatrix4(e.matrixWorld);let o=t.ray.origin.distanceTo(ij);if(!(ot.far))return{distance:o,point:iX.clone().applyMatrix4(e.matrixWorld),index:r,face:null,faceIndex:null,barycoord:null,object:e}}let iZ=new eE,iJ=new eE;class iK extends iq{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){let e=this.geometry;if(null===e.index){let t=e.attributes.position,n=[];for(let e=0,i=t.count;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;er.far)return;a.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:t,face:null,faceIndex:null,barycoord:null,object:s})}}class i6 extends ty{constructor(){super(),this.isGroup=!0,this.type="Group"}}class i8 extends ev{constructor(e,t,n,i,r,a,s,o,l){super(e,t,n,i,r,a,s,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==a?a:1006,this.magFilter=void 0!==r?r:1006,this.generateMipmaps=!1;const u=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(function t(){u.needsUpdate=!0,e.requestVideoFrameCallback(t)})}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;!1=="requestVideoFrameCallback"in e&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class i9 extends ev{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=1003,this.minFilter=1003,this.generateMipmaps=!1,this.needsUpdate=!0}}class i7 extends ev{constructor(e,t,n,i,r,a,s,o,l,u,c,h){super(null,a,s,o,l,u,i,r,c,h),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class re extends i7{constructor(e,t,n,i,r,a){super(e,t,n,r,a),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=1001,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class rt extends i7{constructor(e,t,n){super(void 0,e[0].width,e[0].height,t,n,301),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class rn extends ev{constructor(e,t,n,i,r,a,s,o,l){super(e,t,n,i,r,a,s,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class ri extends ev{constructor(e,t,n,i,r,a,s,o,l,u=1026){if(1026!==u&&1027!==u)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&1026===u&&(n=1014),void 0===n&&1027===u&&(n=1020),super(null,i,r,a,s,o,u,n,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==s?s:1003,this.minFilter=void 0!==o?o:1003,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return null!==this.compareFunction&&(t.compareFunction=this.compareFunction),t}}class rr{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t=[],n,i=this.getPoint(0),r=0;t.push(0);for(let a=1;a<=e;a++)t.push(r+=(n=this.getPoint(a/e)).distanceTo(i)),i=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let n,i=this.getLengths(),r=0,a=i.length;n=t||e*i[a-1];let s=0,o=a-1,l;for(;s<=o;)if((l=i[r=Math.floor(s+(o-s)/2)]-n)<0)s=r+1;else if(l>0)o=r-1;else{o=r;break}if(i[r=o]===n)return r/(a-1);let u=i[r],c=i[r+1];return(r+(n-u)/(c-u))/(a-1)}getTangent(e,t){let n=e-1e-4,i=e+1e-4;n<0&&(n=0),i>1&&(i=1);let r=this.getPoint(n),a=this.getPoint(i),s=t||(r.isVector2?new Y:new eE);return s.copy(a).sub(r).normalize(),s}getTangentAt(e,t){let n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){let n=new eE,i=[],r=[],a=[],s=new eE,o=new e2;for(let t=0;t<=e;t++){let n=t/e;i[t]=this.getTangentAt(n,new eE)}r[0]=new eE,a[0]=new eE;let l=Number.MAX_VALUE,u=Math.abs(i[0].x),c=Math.abs(i[0].y),h=Math.abs(i[0].z);u<=l&&(l=u,n.set(1,0,0)),c<=l&&(l=c,n.set(0,1,0)),h<=l&&n.set(0,0,1),s.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],s),a[0].crossVectors(i[0],r[0]);for(let t=1;t<=e;t++){if(r[t]=r[t-1].clone(),a[t]=a[t-1].clone(),s.crossVectors(i[t-1],i[t]),s.length()>Number.EPSILON){s.normalize();let e=Math.acos(V(i[t-1].dot(i[t]),-1,1));r[t].applyMatrix4(o.makeRotationAxis(s,e))}a[t].crossVectors(i[t],r[t])}if(!0===t){let t=Math.acos(V(r[0].dot(r[e]),-1,1));t/=e,i[0].dot(s.crossVectors(r[0],r[e]))>0&&(t=-t);for(let n=1;n<=e;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],t*n)),a[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:a}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class ra extends rr{constructor(e=0,t=0,n=1,i=1,r=0,a=2*Math.PI,s=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=a,this.aClockwise=s,this.aRotation=o}getPoint(e,t=new Y){let n=2*Math.PI,i=this.aEndAngle-this.aStartAngle,r=Math.abs(i)n;)i-=n;i0?0:(Math.floor(Math.abs(o)/a)+1)*a:0===l&&o===a-1&&(o=a-2,l=1),this.closed||o>0?n=r[(o-1)%a]:(rl.subVectors(r[0],r[1]).add(r[0]),n=rl);let u=r[o%a],c=r[(o+1)%a];if(this.closed||o+2n.length-2?n.length-1:r+1],u=n[r>n.length-3?n.length-1:r+2];return t.set(rp(a,s.x,o.x,l.x,u.x),rp(a,s.y,o.y,l.y,u.y)),t}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){let e=i[r]-n,a=this.curves[r],s=a.getLength(),o=0===s?0:1-e/s;return a.getPointAt(o,t)}r++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let n=0,i=this.curves.length;n1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){let e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);let u=l.getPoint(1);return this.currentPoint.copy(u),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class rE extends nn{constructor(e=[new Y(0,-.5),new Y(.5,0),new Y(0,.5)],t=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:i},t=Math.floor(t),i=V(i,0,2*Math.PI);const r=[],a=[],s=[],o=[],l=[],u=1/t,c=new eE,h=new Y,d=new eE,p=new eE,f=new eE;let m=0,g=0;for(let t=0;t<=e.length-1;t++)switch(t){case 0:m=e[t+1].x-e[t].x,d.x=+(g=e[t+1].y-e[t].y),d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[t+1].x-e[t].x,d.x=+(g=e[t+1].y-e[t].y),d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let r=0;r<=t;r++){const d=n+r*u*i,p=Math.sin(d),f=Math.cos(d);for(let n=0;n<=e.length-1;n++){c.x=e[n].x*p,c.y=e[n].y,c.z=e[n].x*f,a.push(c.x,c.y,c.z),h.x=r/t,h.y=n/(e.length-1),s.push(h.x,h.y);const i=o[3*n+0]*p,u=o[3*n+1],d=o[3*n+0]*f;l.push(i,u,d)}}for(let n=0;n0||0!==i)&&(u.push(a,s,l),_+=3),(t>0||i!==r-1)&&(u.push(s,o,l),_+=3)}l.addGroup(g,_,0),g+=_})(),!1===a&&(e>0&&v(!0),t>0&&v(!1)),this.setIndex(u),this.setAttribute("position",new t4(c,3)),this.setAttribute("normal",new t4(h,3)),this.setAttribute("uv",new t4(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new rR(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class rP extends rR{constructor(e=1,t=1,n=32,i=1,r=!1,a=0,s=2*Math.PI){super(0,e,t,n,i,r,a,s),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:a,thetaLength:s}}static fromJSON(e){return new rP(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class rI extends nn{constructor(e=[],t=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:i};const r=[],a=[];function s(e){r.push(e.x,e.y,e.z)}function o(t,n){let i=3*t;n.x=e[i+0],n.y=e[i+1],n.z=e[i+2]}function l(e,t,n,i){i<0&&1===e.x&&(a[t]=e.x-1),0===n.x&&0===n.z&&(a[t]=i/2/Math.PI+.5)}function u(e){return Math.atan2(e.z,-e.x)}(function(e){let n=new eE,i=new eE,r=new eE;for(let a=0;a.9&&s<.1&&(t<.2&&(a[e+0]+=1),n<.2&&(a[e+2]+=1),i<.2&&(a[e+4]+=1))}}()}(),this.setAttribute("position",new t4(r,3)),this.setAttribute("normal",new t4(r.slice(),3)),this.setAttribute("uv",new t4(a,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new rI(e.vertices,e.indices,e.radius,e.details)}}class rL extends rI{constructor(e=1,t=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new rL(e.radius,e.detail)}}let rN=new eE,rU=new eE,rD=new eE,rO=new tN;class rF extends nn{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const n=Math.cos(B*t),i=e.getIndex(),r=e.getAttribute("position"),a=i?i.count:r.count,s=[0,0,0],o=["a","b","c"],l=[,,,],u={},c=[];for(let e=0;e=n.next.y&&n.next.y!==n.y){let e=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=a&&e>i&&(i=e,r=n.x=n.x&&n.x>=l&&a!==n.x&&rW(sr.x||n.x===r.x&&(d=r,p=n,0>rj(d.prev,d,p.prev)&&0>rj(p.next,d,d.next))))&&(r=n,c=h)),n=n.next}while(n!==o)return r}(e,t);if(!n)return t;let i=rK(n,e);return rH(i,i.next),rH(n,n.next)}(u[r],n);return n}(e,t,d,n)),e.length>80*n){i=a=e[0],r=s=e[1];for(let t=n;ta&&(a=o),l>s&&(s=l);u=0!==(u=Math.max(a-i,s-r))?32767/u:0}return function e(t,n,i,r,a,s,o){if(!t)return;!o&&s&&function(e,t,n,i){let r=e;do 0===r.z&&(r.z=rG(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==e)r.prevZ.nextZ=null,r.prevZ=null,function(e){let t,n,i,r,a,s,o,l,u=1;do{for(n=e,e=null,a=null,s=0;n;){for(s++,i=n,o=0,t=0;t0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;n=i}a.nextZ=null,u*=2}while(s>1)}(r)}(t,r,a,s);let l=t,u,c;for(;t.prev!==t.next;){if(u=t.prev,c=t.next,s?function(e,t,n,i){let r=e.prev,a=e.next;if(rj(r,e,a)>=0)return!1;let s=r.x,o=e.x,l=a.x,u=r.y,c=e.y,h=a.y,d=so?s>l?s:l:o>l?o:l,m=u>c?u>h?u:h:c>h?c:h,g=rG(d,p,t,n,i),v=rG(f,m,t,n,i),_=e.prevZ,y=e.nextZ;for(;_&&_.z>=g&&y&&y.z<=v;){if(_.x>=d&&_.x<=f&&_.y>=p&&_.y<=m&&_!==r&&_!==a&&rW(s,u,o,c,l,h,_.x,_.y)&&rj(_.prev,_,_.next)>=0||(_=_.prevZ,y.x>=d&&y.x<=f&&y.y>=p&&y.y<=m&&y!==r&&y!==a&&rW(s,u,o,c,l,h,y.x,y.y)&&rj(y.prev,y,y.next)>=0))return!1;y=y.nextZ}for(;_&&_.z>=g;){if(_.x>=d&&_.x<=f&&_.y>=p&&_.y<=m&&_!==r&&_!==a&&rW(s,u,o,c,l,h,_.x,_.y)&&rj(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;y&&y.z<=v;){if(y.x>=d&&y.x<=f&&y.y>=p&&y.y<=m&&y!==r&&y!==a&&rW(s,u,o,c,l,h,y.x,y.y)&&rj(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}(t,r,a,s):function(e){let t=e.prev,n=e.next;if(rj(t,e,n)>=0)return!1;let i=t.x,r=e.x,a=n.x,s=t.y,o=e.y,l=n.y,u=ir?i>a?i:a:r>a?r:a,d=s>o?s>l?s:l:o>l?o:l,p=n.next;for(;p!==t;){if(p.x>=u&&p.x<=h&&p.y>=c&&p.y<=d&&rW(i,s,r,o,a,l,p.x,p.y)&&rj(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}(t)){n.push(u.i/i|0),n.push(t.i/i|0),n.push(c.i/i|0),rQ(t),t=c.next,l=c.next;continue}if((t=c)===l){o?1===o?e(t=function(e,t,n){let i=e;do{let r=i.prev,a=i.next.next;!rX(r,a)&&rq(r,i,i.next,a)&&rJ(r,a)&&rJ(a,r)&&(t.push(r.i/n|0),t.push(i.i/n|0),t.push(a.i/n|0),rQ(i),rQ(i.next),i=e=a),i=i.next}while(i!==e)return rH(i)}(rH(t),n,i),n,i,r,a,s,2):2===o&&function(t,n,i,r,a,s){let o=t;do{let t=o.next.next;for(;t!==o.prev;){var l,u;if(o.i!==t.i&&(l=o,u=t,l.next.i!==u.i&&l.prev.i!==u.i&&!function(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&rq(n,n.next,e,t))return!0;n=n.next}while(n!==e)return!1}(l,u)&&(rJ(l,u)&&rJ(u,l)&&function(e,t){let n=e,i=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&r<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e)return i}(l,u)&&(rj(l.prev,l,u.prev)||rj(l,u.prev,u))||rX(l,u)&&rj(l.prev,l,l.next)>0&&rj(u.prev,u,u.next)>0))){let l=rK(o,t);o=rH(o,o.next),l=rH(l,l.next),e(o,n,i,r,a,s,0),e(l,n,i,r,a,s,0);return}t=t.next}o=o.next}while(o!==t)}(t,n,i,r,a,s):e(rH(t),n,i,r,a,s,1);break}}}(d,p,n,i,r,u,0),p};function rk(e,t,n,i,r){let a,s;if(r===function(e,t,n,i){let r=0;for(let a=t,s=n-i;a0)for(a=t;a=t;a-=i)s=r$(a,e[a],e[a+1],s);return s&&rX(s,s.next)&&(rQ(s),s=s.next),s}function rH(e,t){if(!e)return e;t||(t=e);let n=e,i;do if(i=!1,!n.steiner&&(rX(n,n.next)||0===rj(n.prev,n,n.next))){if(rQ(n),(n=t=n.prev)===n.next)break;i=!0}else n=n.next;while(i||n!==t)return t}function rV(e,t){return e.x-t.x}function rG(e,t,n,i,r){return(e=((e=((e=((e=((e=(e-n)*r|0)|e<<8)&0xff00ff)|e<<4)&0xf0f0f0f)|e<<2)&0x33333333)|e<<1)&0x55555555)|(t=((t=((t=((t=((t=(t-i)*r|0)|t<<8)&0xff00ff)|t<<4)&0xf0f0f0f)|t<<2)&0x33333333)|t<<1)&0x55555555)<<1}function rW(e,t,n,i,r,a,s,o){return(r-s)*(t-o)>=(e-s)*(a-o)&&(e-s)*(i-o)>=(n-s)*(t-o)&&(n-s)*(a-o)>=(r-s)*(i-o)}function rj(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function rX(e,t){return e.x===t.x&&e.y===t.y}function rq(e,t,n,i){let r=rZ(rj(e,t,n)),a=rZ(rj(e,t,i)),s=rZ(rj(n,i,e)),o=rZ(rj(n,i,t));return!!(r!==a&&s!==o||0===r&&rY(e,n,t)||0===a&&rY(e,i,t)||0===s&&rY(n,e,i)||0===o&&rY(n,t,i))}function rY(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function rZ(e){return e>0?1:e<0?-1:0}function rJ(e,t){return 0>rj(e.prev,e,e.next)?rj(e,t,e.next)>=0&&rj(e,e.prev,t)>=0:0>rj(e,t,e.prev)||0>rj(e,e.next,t)}function rK(e,t){let n=new r0(e.i,e.x,e.y),i=new r0(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,a.next=i,i.prev=a,i}function r$(e,t,n,i){let r=new r0(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function rQ(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function r0(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class r1{static area(e){let t=e.length,n=0;for(let i=t-1,r=0;rr1.area(e)}static triangulateShape(e,t){let n=[],i=[],r=[];r2(e),r3(n,e);let a=e.length;t.forEach(r2);for(let e=0;e2&&e[t-1].equals(e[0])&&e.pop()}function r3(e,t){for(let n=0;nNumber.EPSILON){let h=Math.sqrt(c),d=Math.sqrt(l*l+u*u),p=t.x-o/h,f=t.y+s/h,m=((n.x-u/d-p)*u-(n.y+l/d-f)*l)/(s*u-o*l),g=(i=p+s*m-e.x)*i+(r=f+o*m-e.y)*r;if(g<=2)return new Y(i,r);a=Math.sqrt(g/2)}else{let e=!1;s>Number.EPSILON?l>Number.EPSILON&&(e=!0):s<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(u)&&(e=!0),e?(i=-o,r=s,a=Math.sqrt(c)):(i=s,r=o,a=Math.sqrt(c/2))}return new Y(i/a,r/a)}let I=[];for(let e=0,t=E.length,n=t-1,i=e+1;e=0;e--){let t=e/v,n=f*Math.cos(t*Math.PI/2),i=m*Math.sin(t*Math.PI/2)+g;for(let e=0,t=E.length;e=0;){let a=r,s=r-1;s<0&&(s=e.length-1);for(let e=0,r=h+2*v;e0)&&d.push(t,r,l),(e!==n-1||o0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class ap extends tH{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new tz(0xffffff),this.specular=new tz(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class af extends tH{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new tz(0xffffff),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class am extends tH{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class ag extends tH{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new tz(0xffffff),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class av extends tH{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class a_ extends tH{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}class ay extends tH{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new tz(0xffffff),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ax extends iB{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function ab(e,t,n){return e&&(n||e.constructor!==t)?"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e):e}function aS(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function aM(e){let t=e.length,n=Array(t);for(let e=0;e!==t;++e)n[e]=e;return n.sort(function(t,n){return e[t]-e[n]}),n}function aT(e,t,n){let i=e.length,r=new e.constructor(i);for(let a=0,s=0;s!==i;++a){let i=n[a]*t;for(let n=0;n!==t;++n)r[s++]=e[i+n]}return r}function aw(e,t,n,i){let r=1,a=e[0];for(;void 0!==a&&void 0===a[i];)a=e[r++];if(void 0===a)return;let s=a[i];if(void 0!==s)if(Array.isArray(s))do void 0!==(s=a[i])&&(t.push(a.time),n.push.apply(n,s)),a=e[r++];while(void 0!==a)else if(void 0!==s.toArray)do void 0!==(s=a[i])&&(t.push(a.time),s.toArray(n,n.length)),a=e[r++];while(void 0!==a)else do void 0!==(s=a[i])&&(t.push(a.time),n.push(s)),a=e[r++];while(void 0!==a)}let aE={convertArray:ab,isTypedArray:aS,getKeyframeOrder:aM,sortedArray:aT,flattenJSON:aw,subclip:function(e,t,n,i,r=30){let a=e.clone();a.name=t;let s=[];for(let e=0;e=i)){l.push(t.times[e]);for(let n=0;na.tracks[e].times[0]&&(o=a.tracks[e].times[0]);for(let e=0;e=r.times[d]){let e=d*u+l,t=e+u-l;i=r.values.slice(e,t)}else{let e=r.createInterpolant(),t=l,n=u-l;e.evaluate(a),i=e.resultBuffer.slice(t,n)}"quaternion"===s&&new ew().fromArray(i).normalize().conjugate().toArray(i);let p=o.times.length;for(let e=0;e=r)){let s=t[1];e=(r=t[--n-1]))break i}a=n,n=0;break r}break n}for(;n>>1;et;)--a;if(++a,0!==r||a!==i){r>=a&&(r=(a=Math.max(a,1))-1);let e=this.getValueSize();this.times=n.slice(r,a),this.values=this.values.slice(r*e,a*e)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let t=0;t!==r;t++){let i=n[t];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,t,i),e=!1;break}if(null!==a&&a>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,t,i,a),e=!1;break}a=i}if(void 0!==i&&aS(i))for(let t=0,n=i.length;t!==n;++t){let n=i[t];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,t,n),e=!1;break}}return e}optimize(){let e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),i=2302===this.getInterpolation(),r=e.length-1,a=1;for(let s=1;s0){e[a]=e[r];for(let e=r*n,i=a*n,s=0;s!==n;++s)t[i+s]=t[e+s];++a}return a!==e.length?(this.times=e.slice(0,a),this.values=t.slice(0,a*n)):(this.times=e,this.values=t),this}clone(){let e=this.times.slice(),t=this.values.slice(),n=new this.constructor(this.name,e,t);return n.createInterpolant=this.createInterpolant,n}}aI.prototype.TimeBufferType=Float32Array,aI.prototype.ValueBufferType=Float32Array,aI.prototype.DefaultInterpolation=2301;class aL extends aI{constructor(e,t,n){super(e,t,n)}}aL.prototype.ValueTypeName="bool",aL.prototype.ValueBufferType=Array,aL.prototype.DefaultInterpolation=2300,aL.prototype.InterpolantFactoryMethodLinear=void 0,aL.prototype.InterpolantFactoryMethodSmooth=void 0;class aN extends aI{}aN.prototype.ValueTypeName="color";class aU extends aI{}aU.prototype.ValueTypeName="number";class aD extends aA{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){let r=this.resultBuffer,a=this.sampleValues,s=this.valueSize,o=(n-t)/(i-t),l=e*s;for(let e=l+s;l!==e;l+=4)ew.slerpFlat(r,0,a,l-s,a,l,o);return r}}class aO extends aI{InterpolantFactoryMethodLinear(e){return new aD(this.times,this.values,this.getValueSize(),e)}}aO.prototype.ValueTypeName="quaternion",aO.prototype.InterpolantFactoryMethodSmooth=void 0;class aF extends aI{constructor(e,t,n){super(e,t,n)}}aF.prototype.ValueTypeName="string",aF.prototype.ValueBufferType=Array,aF.prototype.DefaultInterpolation=2300,aF.prototype.InterpolantFactoryMethodLinear=void 0,aF.prototype.InterpolantFactoryMethodSmooth=void 0;class az extends aI{}az.prototype.ValueTypeName="vector";class aB{constructor(e="",t=-1,n=[],i=2500){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=H(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],n=e.tracks,i=1/(e.fps||1);for(let e=0,r=n.length;e!==r;++e)t.push((function(e){if(void 0===e.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");let t=function(e){switch(e.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return aU;case"vector":case"vector2":case"vector3":case"vector4":return az;case"color":return aN;case"quaternion":return aO;case"bool":case"boolean":return aL;case"string":return aF}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+e)}(e.type);if(void 0===e.times){let t=[],n=[];aw(e.keys,t,n,"value"),e.times=t,e.values=n}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)})(n[e]).scale(i));let r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){let t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let e=0,i=n.length;e!==i;++e)t.push(aI.toJSON(n[e]));return i}static CreateFromMorphTargetSequence(e,t,n,i){let r=t.length,a=[];for(let e=0;e1){let e=a[1],t=i[e];t||(i[e]=t=[]),t.push(n)}}let a=[];for(let e in i)a.push(this.CreateFromMorphTargetSequence(e,i[e],t,n));return a}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let n=function(e,t,n,i,r){if(0!==n.length){let a=[],s=[];aw(n,a,s,i),0!==a.length&&r.push(new e(t,a,s))}},i=[],r=e.name||"default",a=e.fps||30,s=e.blendMode,o=e.length||-1,l=e.hierarchy||[];for(let e=0;e{t&&t(r),this.manager.itemEnd(e)},0),r;if(void 0!==aW[e])return void aW[e].push({onLoad:t,onProgress:n,onError:i});aW[e]=[],aW[e].push({onLoad:t,onProgress:n,onError:i});let a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),s=this.mimeType,o=this.responseType;fetch(a).then(t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"u"{if(i)e.close();else{let i=new ProgressEvent("progress",{lengthComputable:s,loaded:o+=r.byteLength,total:a});for(let e=0,t=n.length;e{e.error(t)})}()}}))}throw new aj(`fetch for "${t.url}" responded with ${t.status}: ${t.statusText}`,t)}).then(e=>{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then(e=>new DOMParser().parseFromString(e,s));case"json":return e.json();default:if(void 0===s)return e.text();{let t=/charset="?([^;"\s]*)"?/i.exec(s),n=new TextDecoder(t&&t[1]?t[1].toLowerCase():void 0);return e.arrayBuffer().then(e=>n.decode(e))}}}).then(t=>{ak.add(e,t);let n=aW[e];delete aW[e];for(let e=0,i=n.length;e{let n=aW[e];if(void 0===n)throw this.manager.itemError(e),t;delete aW[e];for(let e=0,i=n.length;e{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class aq extends aG{constructor(e){super(e)}load(e,t,n,i){let r=this,a=new aX(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(n){try{t(r.parse(JSON.parse(n)))}catch(t){i?i(t):console.error(t),r.manager.itemError(e)}},n,i)}parse(e){let t=[];for(let n=0;n0:i.vertexColors=e.vertexColors),void 0!==e.uniforms)for(let t in e.uniforms){let r=e.uniforms[t];switch(i.uniforms[t]={},r.type){case"t":i.uniforms[t].value=n(r.value);break;case"c":i.uniforms[t].value=new tz().setHex(r.value);break;case"v2":i.uniforms[t].value=new Y().fromArray(r.value);break;case"v3":i.uniforms[t].value=new eE().fromArray(r.value);break;case"v4":i.uniforms[t].value=new e_().fromArray(r.value);break;case"m3":i.uniforms[t].value=new Z().fromArray(r.value);break;case"m4":i.uniforms[t].value=new e2().fromArray(r.value);break;default:i.uniforms[t].value=r.value}}if(void 0!==e.defines&&(i.defines=e.defines),void 0!==e.vertexShader&&(i.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(i.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(i.glslVersion=e.glslVersion),void 0!==e.extensions)for(let t in e.extensions)i.extensions[t]=e.extensions[t];if(void 0!==e.lights&&(i.lights=e.lights),void 0!==e.clipping&&(i.clipping=e.clipping),void 0!==e.size&&(i.size=e.size),void 0!==e.sizeAttenuation&&(i.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(i.map=n(e.map)),void 0!==e.matcap&&(i.matcap=n(e.matcap)),void 0!==e.alphaMap&&(i.alphaMap=n(e.alphaMap)),void 0!==e.bumpMap&&(i.bumpMap=n(e.bumpMap)),void 0!==e.bumpScale&&(i.bumpScale=e.bumpScale),void 0!==e.normalMap&&(i.normalMap=n(e.normalMap)),void 0!==e.normalMapType&&(i.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),i.normalScale=new Y().fromArray(t)}return void 0!==e.displacementMap&&(i.displacementMap=n(e.displacementMap)),void 0!==e.displacementScale&&(i.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(i.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(i.roughnessMap=n(e.roughnessMap)),void 0!==e.metalnessMap&&(i.metalnessMap=n(e.metalnessMap)),void 0!==e.emissiveMap&&(i.emissiveMap=n(e.emissiveMap)),void 0!==e.emissiveIntensity&&(i.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(i.specularMap=n(e.specularMap)),void 0!==e.specularIntensityMap&&(i.specularIntensityMap=n(e.specularIntensityMap)),void 0!==e.specularColorMap&&(i.specularColorMap=n(e.specularColorMap)),void 0!==e.envMap&&(i.envMap=n(e.envMap)),void 0!==e.envMapRotation&&i.envMapRotation.fromArray(e.envMapRotation),void 0!==e.envMapIntensity&&(i.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(i.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(i.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(i.lightMap=n(e.lightMap)),void 0!==e.lightMapIntensity&&(i.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(i.aoMap=n(e.aoMap)),void 0!==e.aoMapIntensity&&(i.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(i.gradientMap=n(e.gradientMap)),void 0!==e.clearcoatMap&&(i.clearcoatMap=n(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(i.clearcoatNormalMap=n(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(i.clearcoatNormalScale=new Y().fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(i.iridescenceMap=n(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(i.transmissionMap=n(e.transmissionMap)),void 0!==e.thicknessMap&&(i.thicknessMap=n(e.thicknessMap)),void 0!==e.anisotropyMap&&(i.anisotropyMap=n(e.anisotropyMap)),void 0!==e.sheenColorMap&&(i.sheenColorMap=n(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(i.sheenRoughnessMap=n(e.sheenRoughnessMap)),i}setTextures(e){return this.textures=e,this}createMaterialFromType(e){return su.createMaterialFromType(e)}static createMaterialFromType(e){return new({ShadowMaterial:au,SpriteMaterial:nO,RawShaderMaterial:ac,ShaderMaterial:nb,PointsMaterial:iQ,MeshPhysicalMaterial:ad,MeshStandardMaterial:ah,MeshPhongMaterial:ap,MeshToonMaterial:af,MeshNormalMaterial:am,MeshLambertMaterial:ag,MeshDepthMaterial:av,MeshDistanceMaterial:a_,MeshBasicMaterial:tV,MeshMatcapMaterial:ay,LineDashedMaterial:ax,LineBasicMaterial:iB,Material:tH})[e]}}class sc{static decodeText(e){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),"u">typeof TextDecoder)return new TextDecoder().decode(e);let t="";for(let n=0,i=e.length;n0){(n=new aZ(new aH(t))).setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t0){(t=new aZ(this.manager)).setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t{let t=new eR;t.min.fromArray(e.boxMin),t.max.fromArray(e.boxMax);let n=new eq;return n.radius=e.sphereRadius,n.center.fromArray(e.sphereCenter),{boxInitialized:e.boxInitialized,box:t,sphereInitialized:e.sphereInitialized,sphere:n}}),a._maxInstanceCount=e.maxInstanceCount,a._maxVertexCount=e.maxVertexCount,a._maxIndexCount=e.maxIndexCount,a._geometryInitialized=e.geometryInitialized,a._geometryCount=e.geometryCount,a._matricesTexture=c(e.matricesTexture.uuid),void 0!==e.colorsTexture&&(a._colorsTexture=c(e.colorsTexture.uuid));break;case"LOD":a=new nQ;break;case"Line":a=new iq(l(e.geometry),u(e.material));break;case"LineLoop":a=new i$(l(e.geometry),u(e.material));break;case"LineSegments":a=new iK(l(e.geometry),u(e.material));break;case"PointCloud":case"Points":a=new i4(l(e.geometry),u(e.material));break;case"Sprite":a=new nZ(u(e.material));break;case"Group":a=new i6;break;case"Bone":a=new ie;break;default:a=new ty}if(a.uuid=e.uuid,void 0!==e.name&&(a.name=e.name),void 0!==e.matrix?(a.matrix.fromArray(e.matrix),void 0!==e.matrixAutoUpdate&&(a.matrixAutoUpdate=e.matrixAutoUpdate),a.matrixAutoUpdate&&a.matrix.decompose(a.position,a.quaternion,a.scale)):(void 0!==e.position&&a.position.fromArray(e.position),void 0!==e.rotation&&a.rotation.fromArray(e.rotation),void 0!==e.quaternion&&a.quaternion.fromArray(e.quaternion),void 0!==e.scale&&a.scale.fromArray(e.scale)),void 0!==e.up&&a.up.fromArray(e.up),void 0!==e.castShadow&&(a.castShadow=e.castShadow),void 0!==e.receiveShadow&&(a.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.intensity&&(a.shadow.intensity=e.shadow.intensity),void 0!==e.shadow.bias&&(a.shadow.bias=e.shadow.bias),void 0!==e.shadow.normalBias&&(a.shadow.normalBias=e.shadow.normalBias),void 0!==e.shadow.radius&&(a.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&a.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(a.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(a.visible=e.visible),void 0!==e.frustumCulled&&(a.frustumCulled=e.frustumCulled),void 0!==e.renderOrder&&(a.renderOrder=e.renderOrder),void 0!==e.userData&&(a.userData=e.userData),void 0!==e.layers&&(a.layers.mask=e.layers),void 0!==e.children){let s=e.children;for(let e=0;e{t&&t(n),r.manager.itemEnd(e)}).catch(e=>{i&&i(e)}):(setTimeout(function(){t&&t(a),r.manager.itemEnd(e)},0),a);let s={};s.credentials="anonymous"===this.crossOrigin?"same-origin":"include",s.headers=this.requestHeader;let o=fetch(e,s).then(function(e){return e.blob()}).then(function(e){return createImageBitmap(e,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(n){return ak.add(e,n),t&&t(n),r.manager.itemEnd(e),n}).catch(function(t){i&&i(t),ak.remove(e),r.manager.itemError(e),r.manager.itemEnd(e)});ak.add(e,o),r.manager.itemStart(e)}}class s_{static getContext(){return void 0===i&&(i=new(window.AudioContext||window.webkitAudioContext)),i}static setContext(e){i=e}}class sy extends aG{constructor(e){super(e)}load(e,t,n,i){let r=this,a=new aX(this.manager);function s(t){i?i(t):console.error(t),r.manager.itemError(e)}a.setResponseType("arraybuffer"),a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(e){try{let n=e.slice(0);s_.getContext().decodeAudioData(n,function(e){t(e)}).catch(s)}catch(e){s(e)}},n,i)}}let sx=new e2,sb=new e2,sS=new e2;class sM{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new nE,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new nE,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){let t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){let n,i;t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,sS.copy(e.projectionMatrix);let r=t.eyeSep/2,a=r*t.near/t.focus,s=t.near*Math.tan(B*t.fov*.5)/t.zoom;sb.elements[12]=-r,sx.elements[12]=r,n=-s*t.aspect+a,i=s*t.aspect+a,sS.elements[0]=2*t.near/(i-n),sS.elements[8]=(i+n)/(i-n),this.cameraL.projectionMatrix.copy(sS),n=-s*t.aspect-a,i=s*t.aspect-a,sS.elements[0]=2*t.near/(i-n),sS.elements[8]=(i+n)/(i-n),this.cameraR.projectionMatrix.copy(sS)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(sb),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(sx)}}class sT extends nE{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class sw{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=sE(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){let t=sE();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function sE(){return performance.now()}let sA=new eE,sC=new ew,sR=new eE,sP=new eE;class sI extends ty{constructor(){super(),this.type="AudioListener",this.context=s_.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new sw}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);let t=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(sA,sC,sR),sP.set(0,0,-1).applyQuaternion(sC),t.positionX){let e=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(sA.x,e),t.positionY.linearRampToValueAtTime(sA.y,e),t.positionZ.linearRampToValueAtTime(sA.z,e),t.forwardX.linearRampToValueAtTime(sP.x,e),t.forwardY.linearRampToValueAtTime(sP.y,e),t.forwardZ.linearRampToValueAtTime(sP.z,e),t.upX.linearRampToValueAtTime(n.x,e),t.upY.linearRampToValueAtTime(n.y,e),t.upZ.linearRampToValueAtTime(n.z,e)}else t.setPosition(sA.x,sA.y,sA.z),t.setOrientation(sP.x,sP.y,sP.z,n.x,n.y,n.z)}}class sL extends ty{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+e;let t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){return!1===this.hasPlaybackControl?void console.warn("THREE.Audio: this Audio has no playback control."):(!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this)}stop(e=0){return!1===this.hasPlaybackControl?void console.warn("THREE.Audio: this Audio has no playback control."):(this._progress=0,null!==this.source&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this)}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let e=t,r=t+t;e!==r;++e)if(n[e]!==n[e+t]){s.setValue(n,i);break}}saveOriginalState(){let e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let e=n;e!==i;++e)t[e]=t[i+e%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let i=0;i!==r;++i)e[t+i]=e[n+i]}_slerp(e,t,n,i){ew.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,r){let a=this._workIndex*r;ew.multiplyQuaternionsFlat(e,a,e,t,e,n),ew.slerpFlat(e,t,e,t,e,a,i)}_lerp(e,t,n,i,r){let a=1-i;for(let s=0;s!==r;++s){let r=t+s;e[r]=e[r]*a+e[n+s]*i}}_lerpAdditive(e,t,n,i,r){for(let a=0;a!==r;++a){let r=t+a;e[r]=e[r]+e[n+a]*i}}}let sk="\\[\\]\\.:\\/",sH=RegExp("["+sk+"]","g"),sV="[^"+sk+"]",sG="[^"+sk.replace("\\.","")+"]",sW=RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",sV)+/(WCOD+)?/.source.replace("WCOD",sG)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",sV)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",sV)+"$"),sj=["material","materials","bones","map"];class sX{constructor(e,t,n){this.path=t,this.parsedPath=n||sX.parseTrackName(t),this.node=sX.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new sX.Composite(e,t,n):new sX(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(sH,"")}static parseTrackName(e){let t=sW.exec(e);if(null===t)throw Error("PropertyBinding: Cannot parse trackName: "+e);let n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){let e=n.nodeName.substring(i+1);-1!==sj.indexOf(e)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=e)}if(null===n.propertyName||0===n.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){let n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){let n=function(e){for(let i=0;i=r){let a=r++,u=e[a];t[u.uuid]=l,e[l]=u,t[o]=a,e[a]=s;for(let e=0;e!==i;++e){let t=n[e],i=t[a],r=t[l];t[l]=i,t[a]=r}}}this.nCachedObjects_=r}uncache(){let e=this._objects,t=this._indicesByUUID,n=this._bindings,i=n.length,r=this.nCachedObjects_,a=e.length;for(let s=0,o=arguments.length;s!==o;++s){let o=arguments[s],l=o.uuid,u=t[l];if(void 0!==u)if(delete t[l],u0&&(t[s.uuid]=u),e[u]=s,e.pop();for(let e=0;e!==i;++e){let t=n[e];t[u]=t[r],t.pop()}}}this.nCachedObjects_=r}subscribe_(e,t){let n=this._bindingsIndicesByPath,i=n[e],r=this._bindings;if(void 0!==i)return r[i];let a=this._paths,s=this._parsedPaths,o=this._objects,l=o.length,u=this.nCachedObjects_,c=Array(l);i=r.length,n[e]=i,a.push(e),s.push(t),r.push(c);for(let n=u,i=o.length;n!==i;++n){let i=o[n];c[n]=new sX(i,e,t)}return c}unsubscribe_(e){let t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){let i=this._paths,r=this._parsedPaths,a=this._bindings,s=a.length-1,o=a[s];t[e[s]]=n,a[n]=o,a.pop(),r[n]=r[s],r.pop(),i[n]=i[s],i.pop()}}}class sY{constructor(e,t,n=null,i=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=i;const r=t.tracks,a=r.length,s=Array(a),o={endingStart:2400,endingEnd:2400};for(let e=0;e!==a;++e){const t=r[e].createInterpolant(null);s[e]=t,t.settings=o}this._interpolantSettings=o,this._interpolants=s,this._propertyBindings=Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){let n=this._clip.duration,i=e._clip.duration;e.warp(1,i/n,t),this.warp(n/i,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){let e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){let i=this._mixer,r=i.time,a=this.timeScale,s=this._timeScaleInterpolant;null===s&&(s=i._lendControlInterpolant(),this._timeScaleInterpolant=s);let o=s.parameterPositions,l=s.sampleValues;return o[0]=r,o[1]=r+n,l[0]=e/a,l[1]=t/a,this}stopWarping(){let e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,i){if(!this.enabled)return void this._updateWeight(e);let r=this._startTime;if(null!==r){let i=(e-r)*n;i<0||0===n?t=0:(this._startTime=null,t=n*i)}t*=this._updateTimeScale(e);let a=this._updateTime(t),s=this._updateWeight(e);if(s>0){let e=this._interpolants,t=this._propertyBindings;if(2501===this.blendMode)for(let n=0,i=e.length;n!==i;++n)e[n].evaluate(a),t[n].accumulateAdditive(s);else for(let n=0,r=e.length;n!==r;++n)e[n].evaluate(a),t[n].accumulate(i,s)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let n=this._weightInterpolant;if(null!==n){let i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let n=this._timeScaleInterpolant;null!==n&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,n=this.loop,i=this.time+e,r=this._loopCount,a=2202===n;if(0===e)return -1===r?i:a&&(1&r)==1?t-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));s:{if(i>=t)i=t;else if(i<0)i=0;else{this.time=i;break s}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===r&&(e>=0?(r=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),i>=t||i<0){let n=Math.floor(i/t);i-=t*n,r+=Math.abs(n);let s=this.repetitions-r;if(s<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===s){let t=e<0;this._setEndings(t,!t,a)}else this._setEndings(!1,!1,a);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(a&&(1&r)==1)return t-i}return i}_setEndings(e,t,n){let i=this._interpolantSettings;n?(i.endingStart=2401,i.endingEnd=2401):(e?i.endingStart=this.zeroSlopeAtStart?2401:2400:i.endingStart=2402,t?i.endingEnd=this.zeroSlopeAtEnd?2401:2400:i.endingEnd=2402)}_scheduleFading(e,t,n){let i=this._mixer,r=i.time,a=this._weightInterpolant;null===a&&(a=i._lendControlInterpolant(),this._weightInterpolant=a);let s=a.parameterPositions,o=a.sampleValues;return s[0]=r,o[0]=t,s[1]=r+e,o[1]=n,this}}let sZ=new Float32Array(1);class sJ extends O{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){let n=e._localRoot||this._root,i=e._clip.tracks,r=i.length,a=e._propertyBindings,s=e._interpolants,o=n.uuid,l=this._bindingsByRootAndName,u=l[o];void 0===u&&(u={},l[o]=u);for(let e=0;e!==r;++e){let r=i[e],l=r.name,c=u[l];if(void 0!==c)++c.referenceCount,a[e]=c;else{if(void 0!==(c=a[e])){null===c._cacheIndex&&(++c.referenceCount,this._addInactiveBinding(c,o,l));continue}let i=t&&t._propertyBindings[e].binding.parsedPath;c=new sB(sX.create(n,l,i),r.ValueTypeName,r.getValueSize()),++c.referenceCount,this._addInactiveBinding(c,o,l),a[e]=c}s[e].resultBuffer=c.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){let t=(e._localRoot||this._root).uuid,n=e._clip.uuid,i=this._actionsByClip[n];this._bindAction(e,i&&i.knownActions[0]),this._addInactiveAction(e,n,t)}let t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){let n=t[e];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){let n=t[e];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return null!==t&&t=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;let t=this._actions,n=this._nActiveActions,i=this.time+=e,r=Math.sign(e),a=this._accuIndex^=1;for(let s=0;s!==n;++s)t[s]._update(i,e,r,a);let s=this._bindings,o=this._nActiveBindings;for(let e=0;e!==o;++e)s[e].apply(a);return this}setTime(e){this.time=0;for(let e=0;e=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,s7).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}let ot=new eE,on=new eE;class oi{constructor(e=new eE,t=new eE){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){ot.subVectors(e,this.start),on.subVectors(this.end,this.start);let n=on.dot(on),i=on.dot(ot)/n;return t&&(i=V(i,0,1)),i}closestPointToPoint(e,t,n){let i=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}let or=new eE;class oa extends ty{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const n=new nn,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let e=0,t=1;e<32;e++,t++){const n=e/32*Math.PI*2,r=t/32*Math.PI*2;i.push(Math.cos(n),Math.sin(n),1,Math.cos(r),Math.sin(r),1)}n.setAttribute("position",new t4(i,3));const r=new iB({fog:!1,toneMapped:!1});this.cone=new iK(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),this.parent?(this.parent.updateWorldMatrix(!0),this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)):this.matrix.copy(this.light.matrixWorld),this.matrixWorld.copy(this.light.matrixWorld);let e=this.light.distance?this.light.distance:1e3,t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e),or.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(or),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}let os=new eE,oo=new e2,ol=new e2;class ou extends iK{constructor(e){const t=function e(t){let n=[];!0===t.isBone&&n.push(t);for(let i=0;i1)for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{oR.set(e.z,0,-e.x).normalize();let t=Math.acos(e.y);this.quaternion.setFromAxisAngle(oR,t)}}setLength(e,t=.2*e,n=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class oI extends iK{constructor(e=1){const t=new nn;t.setAttribute("position",new t4([0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],3)),t.setAttribute("color",new t4([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(t,new iB({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,n){let i=new tz,r=this.geometry.attributes.color.array;return i.set(e),i.toArray(r,0),i.toArray(r,3),i.set(t),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class oL{constructor(){this.type="ShapePath",this.color=new tz,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new rw,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,i){return this.currentPath.quadraticCurveTo(e,t,n,i),this}bezierCurveTo(e,t,n,i,r,a){return this.currentPath.bezierCurveTo(e,t,n,i,r,a),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){let t,n,i,r,a,s=r1.isClockWise,o=this.subPaths;if(0===o.length)return[];let l=[];if(1===o.length)return n=o[0],(i=new rz).curves=n.curves,l.push(i),l;let u=!s(o[0].getPoints());u=e?!u:u;let c=[],h=[],d=[],p=0;h[0]=void 0,d[p]=[];for(let i=0,a=o.length;i1){let e=!1,t=0;for(let e=0,t=h.length;eNumber.EPSILON){if(l<0&&(n=t[a],o=-o,s=t[r],l=-l),e.ys.y)continue;if(e.y===n.y){if(e.x===n.x)return!0}else{let t=l*(e.x-n.x)-o*(e.y-n.y);if(0===t)return!0;if(t<0)continue;i=!i}}else{if(e.y!==n.y)continue;if(s.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=s.x)return!0}}return i})(a.p,h[i].p)&&(n!==i&&t++,s?(s=!1,c[i].push(a)):e=!0);s&&c[n].push(a)}}t>0&&!1===e&&(d=c)}for(let e=0,t=h.length;et?(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2):(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0),e},cover:function(e,t){let n=e.image&&e.image.width?e.image.width/e.image.height:1;return n>t?(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0):(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2),e},fill:function(e){return e.repeat.x=1,e.repeat.y=1,e.offset.x=0,e.offset.y=0,e},getByteLength:oU};class oO extends ex{constructor(e=1,t=1,n=1,i={}){console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the "count" parameter to enable MRT.'),super(e,t,{...i,count:n}),this.isWebGLMultipleRenderTargets=!0}get texture(){return this.textures}}function oF(){let e=null,t=!1,n=null,i=null;function r(t,a){n(t,a),i=e.requestAnimationFrame(r)}return{start:function(){!0===t||null!==n&&(i=e.requestAnimationFrame(r),t=!0)},stop:function(){e.cancelAnimationFrame(i),t=!1},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function oz(e){let t=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),t.get(e)},remove:function(n){n.isInterleavedBufferAttribute&&(n=n.data);let i=t.get(n);i&&(e.deleteBuffer(i.buffer),t.delete(n))},update:function(n,i){if(n.isInterleavedBufferAttribute&&(n=n.data),n.isGLBufferAttribute){let e=t.get(n);(!e||e.versione.start-t.start);let t=0;for(let e=1;etypeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"171"}})),"u">typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="171"),e.s(["ACESFilmicToneMapping",0,4,"AddEquation",0,100,"AddOperation",0,2,"AdditiveAnimationBlendMode",0,2501,"AdditiveBlending",0,2,"AgXToneMapping",0,6,"AlphaFormat",0,1021,"AlwaysCompare",0,519,"AlwaysDepth",0,1,"AlwaysStencilFunc",0,519,"AmbientLight",0,sa,"AnimationAction",0,sY,"AnimationClip",0,aB,"AnimationLoader",0,aq,"AnimationMixer",0,sJ,"AnimationObjectGroup",0,sq,"AnimationUtils",0,aE,"ArcCurve",0,rs,"ArrayCamera",0,sT,"ArrowHelper",0,oP,"AttachedBindMode",0,R,"Audio",0,sL,"AudioAnalyser",0,sz,"AudioContext",0,s_,"AudioListener",0,sI,"AudioLoader",0,sy,"AxesHelper",0,oI,"BackSide",0,1,"BasicDepthPacking",0,3200,"BasicShadowMap",0,0,"BatchedMesh",0,iz,"Bone",0,ie,"BooleanKeyframeTrack",0,aL,"Box2",0,oe,"Box3",0,eR,"Box3Helper",0,oA,"BoxGeometry",0,ng,"BoxHelper",0,oE,"BufferAttribute",0,tZ,"BufferGeometry",0,nn,"BufferGeometryLoader",0,sd,"ByteType",0,1010,"Cache",0,ak,"Camera",0,nS,"CameraHelper",0,oM,"CanvasTexture",0,rn,"CapsuleGeometry",0,rA,"CatmullRomCurve3",0,rd,"CineonToneMapping",0,3,"CircleGeometry",0,rC,"ClampToEdgeWrapping",0,1001,"Clock",0,sw,"Color",0,tz,"ColorKeyframeTrack",0,aN,"ColorManagement",0,eu,"CompressedArrayTexture",0,re,"CompressedCubeTexture",0,rt,"CompressedTexture",0,i7,"CompressedTextureLoader",0,aY,"ConeGeometry",0,rP,"ConstantAlphaFactor",0,213,"ConstantColorFactor",0,211,"Controls",0,oN,"CubeCamera",0,nA,"CubeReflectionMapping",0,301,"CubeRefractionMapping",0,302,"CubeTexture",0,nC,"CubeTextureLoader",0,aJ,"CubeUVReflectionMapping",0,306,"CubicBezierCurve",0,rg,"CubicBezierCurve3",0,rv,"CubicInterpolant",0,aC,"CullFaceBack",0,1,"CullFaceFront",0,2,"CullFaceFrontBack",0,3,"CullFaceNone",0,0,"Curve",0,rr,"CurvePath",0,rT,"CustomBlending",0,5,"CustomToneMapping",0,5,"CylinderGeometry",0,rR,"Cylindrical",0,s8,"Data3DTexture",0,eM,"DataArrayTexture",0,eb,"DataTexture",0,it,"DataTextureLoader",0,aK,"DataUtils",0,tX,"DecrementStencilOp",0,7683,"DecrementWrapStencilOp",0,34056,"DefaultLoadingManager",0,aV,"DepthFormat",0,1026,"DepthStencilFormat",0,1027,"DepthTexture",0,ri,"DetachedBindMode",0,P,"DirectionalLight",0,sr,"DirectionalLightHelper",0,ox,"DiscreteInterpolant",0,aP,"DodecahedronGeometry",0,rL,"DoubleSide",0,2,"DstAlphaFactor",0,206,"DstColorFactor",0,208,"DynamicCopyUsage",0,35050,"DynamicDrawUsage",0,35048,"DynamicReadUsage",0,35049,"EdgesGeometry",0,rF,"EllipseCurve",0,ra,"EqualCompare",0,514,"EqualDepth",0,4,"EqualStencilFunc",0,514,"EquirectangularReflectionMapping",0,303,"EquirectangularRefractionMapping",0,304,"Euler",0,tn,"EventDispatcher",0,O,"ExtrudeGeometry",0,r4,"FileLoader",0,aX,"Float16BufferAttribute",0,t3,"Float32BufferAttribute",0,t4,"FloatType",0,1015,"Fog",0,nI,"FogExp2",0,nP,"FramebufferTexture",0,i9,"FrontSide",0,0,"Frustum",0,iS,"GLBufferAttribute",0,s1,"GLSL1",0,"100","GLSL3",0,D,"GreaterCompare",0,516,"GreaterDepth",0,6,"GreaterEqualCompare",0,518,"GreaterEqualDepth",0,5,"GreaterEqualStencilFunc",0,518,"GreaterStencilFunc",0,516,"GridHelper",0,om,"Group",0,i6,"HalfFloatType",0,1016,"HemisphereLight",0,a0,"HemisphereLightHelper",0,of,"IcosahedronGeometry",0,r6,"ImageBitmapLoader",0,sv,"ImageLoader",0,aZ,"ImageUtils",0,ed,"IncrementStencilOp",0,7682,"IncrementWrapStencilOp",0,34055,"InstancedBufferAttribute",0,is,"InstancedBufferGeometry",0,sh,"InstancedInterleavedBuffer",0,s0,"InstancedMesh",0,im,"Int16BufferAttribute",0,tQ,"Int32BufferAttribute",0,t1,"Int8BufferAttribute",0,tJ,"IntType",0,1013,"InterleavedBuffer",0,nN,"InterleavedBufferAttribute",0,nD,"Interpolant",0,aA,"InterpolateDiscrete",0,2300,"InterpolateLinear",0,2301,"InterpolateSmooth",0,2302,"InvertStencilOp",0,5386,"KeepStencilOp",0,7680,"KeyframeTrack",0,aI,"LOD",0,nQ,"LatheGeometry",0,rE,"Layers",0,ti,"LessCompare",0,513,"LessDepth",0,2,"LessEqualCompare",0,515,"LessEqualDepth",0,3,"LessEqualStencilFunc",0,515,"LessStencilFunc",0,513,"Light",0,aQ,"LightProbe",0,sl,"Line",0,iq,"Line3",0,oi,"LineBasicMaterial",0,iB,"LineCurve",0,r_,"LineCurve3",0,ry,"LineDashedMaterial",0,ax,"LineLoop",0,i$,"LineSegments",0,iK,"LinearFilter",0,1006,"LinearInterpolant",0,aR,"LinearMipMapLinearFilter",0,1008,"LinearMipMapNearestFilter",0,1007,"LinearMipmapLinearFilter",0,1008,"LinearMipmapNearestFilter",0,1007,"LinearSRGBColorSpace",0,L,"LinearToneMapping",0,1,"LinearTransfer",0,N,"Loader",0,aG,"LoaderUtils",0,sc,"LoadingManager",0,aH,"LoopOnce",0,2200,"LoopPingPong",0,2202,"LoopRepeat",0,2201,"LuminanceAlphaFormat",0,1025,"LuminanceFormat",0,1024,"MOUSE",0,A,"Material",0,tH,"MaterialLoader",0,su,"MathUtils",0,q,"Matrix2",0,s9,"Matrix3",0,Z,"Matrix4",0,e2,"MaxEquation",0,104,"Mesh",0,nf,"MeshBasicMaterial",0,tV,"MeshDepthMaterial",0,av,"MeshDistanceMaterial",0,a_,"MeshLambertMaterial",0,ag,"MeshMatcapMaterial",0,ay,"MeshNormalMaterial",0,am,"MeshPhongMaterial",0,ap,"MeshPhysicalMaterial",0,ad,"MeshStandardMaterial",0,ah,"MeshToonMaterial",0,af,"MinEquation",0,103,"MirroredRepeatWrapping",0,1002,"MixOperation",0,1,"MultiplyBlending",0,4,"MultiplyOperation",0,0,"NearestFilter",0,1003,"NearestMipMapLinearFilter",0,1005,"NearestMipMapNearestFilter",0,1004,"NearestMipmapLinearFilter",0,1005,"NearestMipmapNearestFilter",0,1004,"NeutralToneMapping",0,7,"NeverCompare",0,512,"NeverDepth",0,0,"NeverStencilFunc",0,512,"NoBlending",0,0,"NoColorSpace",0,"","NoToneMapping",0,0,"NormalAnimationBlendMode",0,2500,"NormalBlending",0,1,"NotEqualCompare",0,517,"NotEqualDepth",0,7,"NotEqualStencilFunc",0,517,"NumberKeyframeTrack",0,aU,"Object3D",0,ty,"ObjectLoader",0,sp,"ObjectSpaceNormalMap",0,1,"OctahedronGeometry",0,r8,"OneFactor",0,201,"OneMinusConstantAlphaFactor",0,214,"OneMinusConstantColorFactor",0,212,"OneMinusDstAlphaFactor",0,207,"OneMinusDstColorFactor",0,209,"OneMinusSrcAlphaFactor",0,205,"OneMinusSrcColorFactor",0,203,"OrthographicCamera",0,sn,"PCFShadowMap",0,1,"PCFSoftShadowMap",0,2,"Path",0,rw,"PerspectiveCamera",0,nE,"Plane",0,iy,"PlaneGeometry",0,r9,"PlaneHelper",0,oC,"PointLight",0,st,"PointLightHelper",0,oc,"Points",0,i4,"PointsMaterial",0,iQ,"PolarGridHelper",0,og,"PolyhedronGeometry",0,rI,"PositionalAudio",0,sF,"PropertyBinding",0,sX,"PropertyMixer",0,sB,"QuadraticBezierCurve",0,rx,"QuadraticBezierCurve3",0,rb,"Quaternion",0,ew,"QuaternionKeyframeTrack",0,aO,"QuaternionLinearInterpolant",0,aD,"RAD2DEG",0,k,"RED_GREEN_RGTC2_Format",0,36285,"RED_RGTC1_Format",0,36283,"REVISION",0,"171","RGBADepthPacking",0,3201,"RGBAFormat",0,1023,"RGBAIntegerFormat",0,1033,"RGBA_ASTC_10x10_Format",0,37819,"RGBA_ASTC_10x5_Format",0,37816,"RGBA_ASTC_10x6_Format",0,37817,"RGBA_ASTC_10x8_Format",0,37818,"RGBA_ASTC_12x10_Format",0,37820,"RGBA_ASTC_12x12_Format",0,37821,"RGBA_ASTC_4x4_Format",0,37808,"RGBA_ASTC_5x4_Format",0,37809,"RGBA_ASTC_5x5_Format",0,37810,"RGBA_ASTC_6x5_Format",0,37811,"RGBA_ASTC_6x6_Format",0,37812,"RGBA_ASTC_8x5_Format",0,37813,"RGBA_ASTC_8x6_Format",0,37814,"RGBA_ASTC_8x8_Format",0,37815,"RGBA_BPTC_Format",0,36492,"RGBA_ETC2_EAC_Format",0,37496,"RGBA_PVRTC_2BPPV1_Format",0,35843,"RGBA_PVRTC_4BPPV1_Format",0,35842,"RGBA_S3TC_DXT1_Format",0,33777,"RGBA_S3TC_DXT3_Format",0,33778,"RGBA_S3TC_DXT5_Format",0,33779,"RGBDepthPacking",0,3202,"RGBFormat",0,1022,"RGBIntegerFormat",0,1032,"RGB_BPTC_SIGNED_Format",0,36494,"RGB_BPTC_UNSIGNED_Format",0,36495,"RGB_ETC1_Format",0,36196,"RGB_ETC2_Format",0,37492,"RGB_PVRTC_2BPPV1_Format",0,35841,"RGB_PVRTC_4BPPV1_Format",0,35840,"RGB_S3TC_DXT1_Format",0,33776,"RGDepthPacking",0,3203,"RGFormat",0,1030,"RGIntegerFormat",0,1031,"RawShaderMaterial",0,ac,"Ray",0,e1,"Raycaster",0,s3,"RectAreaLight",0,ss,"RedFormat",0,1028,"RedIntegerFormat",0,1029,"ReinhardToneMapping",0,2,"RenderTarget",0,ey,"RepeatWrapping",0,1e3,"ReplaceStencilOp",0,7681,"ReverseSubtractEquation",0,102,"RingGeometry",0,r7,"SIGNED_RED_GREEN_RGTC2_Format",0,36286,"SIGNED_RED_RGTC1_Format",0,36284,"SRGBColorSpace",0,I,"SRGBTransfer",0,U,"Scene",0,nL,"ShaderMaterial",0,nb,"ShadowMaterial",0,au,"Shape",0,rz,"ShapeGeometry",0,ae,"ShapePath",0,oL,"ShapeUtils",0,r1,"ShortType",0,1011,"Skeleton",0,ia,"SkeletonHelper",0,ou,"SkinnedMesh",0,n7,"Source",0,ef,"Sphere",0,eq,"SphereGeometry",0,at,"Spherical",0,s6,"SphericalHarmonics3",0,so,"SplineCurve",0,rS,"SpotLight",0,a6,"SpotLightHelper",0,oa,"Sprite",0,nZ,"SpriteMaterial",0,nO,"SrcAlphaFactor",0,204,"SrcAlphaSaturateFactor",0,210,"SrcColorFactor",0,202,"StaticCopyUsage",0,35046,"StaticDrawUsage",0,35044,"StaticReadUsage",0,35045,"StereoCamera",0,sM,"StreamCopyUsage",0,35042,"StreamDrawUsage",0,35040,"StreamReadUsage",0,35041,"StringKeyframeTrack",0,aF,"SubtractEquation",0,101,"SubtractiveBlending",0,3,"TOUCH",0,C,"TangentSpaceNormalMap",0,0,"TetrahedronGeometry",0,an,"Texture",0,ev,"TextureLoader",0,a$,"TextureUtils",0,oD,"TorusGeometry",0,ai,"TorusKnotGeometry",0,ar,"Triangle",0,tN,"TriangleFanDrawMode",0,2,"TriangleStripDrawMode",0,1,"TrianglesDrawMode",0,0,"TubeGeometry",0,aa,"UVMapping",0,300,"Uint16BufferAttribute",0,t0,"Uint32BufferAttribute",0,t2,"Uint8BufferAttribute",0,tK,"Uint8ClampedBufferAttribute",0,t$,"Uniform",0,sK,"UniformsGroup",0,sQ,"UniformsUtils",0,nx,"UnsignedByteType",0,1009,"UnsignedInt248Type",0,1020,"UnsignedInt5999Type",0,35902,"UnsignedIntType",0,1014,"UnsignedShort4444Type",0,1017,"UnsignedShort5551Type",0,1018,"UnsignedShortType",0,1012,"VSMShadowMap",0,3,"Vector2",0,Y,"Vector3",0,eE,"Vector4",0,e_,"VectorKeyframeTrack",0,az,"VideoTexture",0,i8,"WebGL3DRenderTarget",0,eT,"WebGLArrayRenderTarget",0,eS,"WebGLCoordinateSystem",0,2e3,"WebGLCubeRenderTarget",0,nR,"WebGLMultipleRenderTargets",0,oO,"WebGLRenderTarget",0,ex,"WebGPUCoordinateSystem",0,2001,"WireframeGeometry",0,as,"WrapAroundEnding",0,2402,"ZeroCurvatureEnding",0,2400,"ZeroFactor",0,200,"ZeroSlopeEnding",0,2401,"ZeroStencilOp",0,0,"arrayNeedsUint32",0,K,"cloneUniforms",0,nv,"createCanvasElement",0,et,"createElementNS",0,ee,"getByteLength",0,oU,"getUnlitUniformColorSpace",0,ny,"mergeUniforms",0,n_,"probeAsync",0,er,"toNormalizedProjectionMatrix",0,ea,"toReversedProjectionMatrix",0,es,"warnOnce",0,ei],90072);let oB={alphahash_fragment:"#ifdef USE_ALPHAHASH\n if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif",alphahash_pars_fragment:"#ifdef USE_ALPHAHASH\n const float ALPHA_HASH_SCALE = 0.05;\n float hash2D( vec2 value ) {\n return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n }\n float hash3D( vec3 value ) {\n return hash2D( vec2( hash2D( value.xy ), value.z ) );\n }\n float getAlphaHashThreshold( vec3 position ) {\n float maxDeriv = max(\n length( dFdx( position.xyz ) ),\n length( dFdy( position.xyz ) )\n );\n float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n vec2 pixScales = vec2(\n exp2( floor( log2( pixScale ) ) ),\n exp2( ceil( log2( pixScale ) ) )\n );\n vec2 alpha = vec2(\n hash3D( floor( pixScales.x * position.xyz ) ),\n hash3D( floor( pixScales.y * position.xyz ) )\n );\n float lerpFactor = fract( log2( pixScale ) );\n float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n float a = min( lerpFactor, 1.0 - lerpFactor );\n vec3 cases = vec3(\n x * x / ( 2.0 * a * ( 1.0 - a ) ),\n ( x - 0.5 * a ) / ( 1.0 - a ),\n 1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n );\n float threshold = ( x < ( 1.0 - a ) )\n ? ( ( x < a ) ? cases.x : cases.y )\n : cases.z;\n return clamp( threshold , 1.0e-6, 1.0 );\n }\n#endif",alphamap_fragment:"#ifdef USE_ALPHAMAP\n diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n uniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef USE_ALPHATEST\n #ifdef ALPHA_TO_COVERAGE\n diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n if ( diffuseColor.a == 0.0 ) discard;\n #else\n if ( diffuseColor.a < alphaTest ) discard;\n #endif\n#endif",alphatest_pars_fragment:"#ifdef USE_ALPHATEST\n uniform float alphaTest;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n reflectedLight.indirectDiffuse *= ambientOcclusion;\n #if defined( USE_CLEARCOAT ) \n clearcoatSpecularIndirect *= ambientOcclusion;\n #endif\n #if defined( USE_SHEEN ) \n sheenSpecularIndirect *= ambientOcclusion;\n #endif\n #if defined( USE_ENVMAP ) && defined( STANDARD )\n float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n #endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n uniform sampler2D aoMap;\n uniform float aoMapIntensity;\n#endif",batching_pars_vertex:"#ifdef USE_BATCHING\n #if ! defined( GL_ANGLE_multi_draw )\n #define gl_DrawID _gl_DrawID\n uniform int _gl_DrawID;\n #endif\n uniform highp sampler2D batchingTexture;\n uniform highp usampler2D batchingIdTexture;\n mat4 getBatchingMatrix( const in float i ) {\n int size = textureSize( batchingTexture, 0 ).x;\n int j = int( i ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n float getIndirectIndex( const in int i ) {\n int size = textureSize( batchingIdTexture, 0 ).x;\n int x = i % size;\n int y = i / size;\n return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\n }\n#endif\n#ifdef USE_BATCHING_COLOR\n uniform sampler2D batchingColorTexture;\n vec3 getBatchingColor( const in float i ) {\n int size = textureSize( batchingColorTexture, 0 ).x;\n int j = int( i );\n int x = j % size;\n int y = j / size;\n return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\n }\n#endif",batching_vertex:"#ifdef USE_BATCHING\n mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\n#endif",begin_vertex:"vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n vPosition = vec3( position );\n#endif",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n vec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"float G_BlinnPhong_Implicit( ) {\n return 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( specularColor, 1.0, dotVH );\n float G = G_BlinnPhong_Implicit( );\n float D = D_BlinnPhong( shininess, dotNH );\n return F * ( G * D );\n} // validated",iridescence_fragment:"#ifdef USE_IRIDESCENCE\n const mat3 XYZ_TO_REC709 = mat3(\n 3.2404542, -0.9692660, 0.0556434,\n -1.5371385, 1.8760108, -0.2040259,\n -0.4985314, 0.0415560, 1.0572252\n );\n vec3 Fresnel0ToIor( vec3 fresnel0 ) {\n vec3 sqrtF0 = sqrt( fresnel0 );\n return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n }\n vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n }\n float IorToFresnel0( float transmittedIor, float incidentIor ) {\n return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n }\n vec3 evalSensitivity( float OPD, vec3 shift ) {\n float phase = 2.0 * PI * OPD * 1.0e-9;\n vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n xyz /= 1.0685e-7;\n vec3 rgb = XYZ_TO_REC709 * xyz;\n return rgb;\n }\n vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n vec3 I;\n float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n float cosTheta2Sq = 1.0 - sinTheta2Sq;\n if ( cosTheta2Sq < 0.0 ) {\n return vec3( 1.0 );\n }\n float cosTheta2 = sqrt( cosTheta2Sq );\n float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n float R12 = F_Schlick( R0, 1.0, cosTheta1 );\n float T121 = 1.0 - R12;\n float phi12 = 0.0;\n if ( iridescenceIOR < outsideIOR ) phi12 = PI;\n float phi21 = PI - phi12;\n vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n vec3 phi23 = vec3( 0.0 );\n if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n vec3 phi = vec3( phi21 ) + phi23;\n vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n vec3 r123 = sqrt( R123 );\n vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n vec3 C0 = R12 + Rs;\n I = C0;\n vec3 Cm = Rs - T121;\n for ( int m = 1; m <= 2; ++ m ) {\n Cm *= r123;\n vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n I += Cm * Sm;\n }\n return max( I, vec3( 0.0 ) );\n }\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n uniform sampler2D bumpMap;\n uniform float bumpScale;\n vec2 dHdxy_fwd() {\n vec2 dSTdx = dFdx( vBumpMapUv );\n vec2 dSTdy = dFdy( vBumpMapUv );\n float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n return vec2( dBx, dBy );\n }\n vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n vec3 vN = surf_norm;\n vec3 R1 = cross( vSigmaY, vN );\n vec3 R2 = cross( vN, vSigmaX );\n float fDet = dot( vSigmaX, R1 ) * faceDirection;\n vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n return normalize( abs( fDet ) * surf_norm - vGrad );\n }\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n vec4 plane;\n #ifdef ALPHA_TO_COVERAGE\n float distanceToPlane, distanceGradient;\n float clipOpacity = 1.0;\n #pragma unroll_loop_start\n for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n distanceGradient = fwidth( distanceToPlane ) / 2.0;\n clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n if ( clipOpacity == 0.0 ) discard;\n }\n #pragma unroll_loop_end\n #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n float unionClipOpacity = 1.0;\n #pragma unroll_loop_start\n for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n distanceGradient = fwidth( distanceToPlane ) / 2.0;\n unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n }\n #pragma unroll_loop_end\n clipOpacity *= 1.0 - unionClipOpacity;\n #endif\n diffuseColor.a *= clipOpacity;\n if ( diffuseColor.a == 0.0 ) discard;\n #else\n #pragma unroll_loop_start\n for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n }\n #pragma unroll_loop_end\n #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n bool clipped = true;\n #pragma unroll_loop_start\n for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n }\n #pragma unroll_loop_end\n if ( clipped ) discard;\n #endif\n #endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n varying vec3 vClipPosition;\n uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n varying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n vClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n diffuseColor *= vColor;\n#elif defined( USE_COLOR )\n diffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n varying vec4 vColor;\n#elif defined( USE_COLOR )\n varying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n varying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n varying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n vColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n vColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n vColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n vColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n vColor.xyz *= batchingColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n float precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n float precisionSafeLength( vec3 v ) {\n float maxComponent = max3( abs( v ) );\n return length( v / maxComponent ) * maxComponent;\n }\n#endif\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n bool visible;\n};\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n varying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n mat3 tmp;\n tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n return tmp;\n}\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n return vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n return RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n #define cubeUV_minMipLevel 4.0\n #define cubeUV_minTileSize 16.0\n float getFace( vec3 direction ) {\n vec3 absDirection = abs( direction );\n float face = - 1.0;\n if ( absDirection.x > absDirection.z ) {\n if ( absDirection.x > absDirection.y )\n face = direction.x > 0.0 ? 0.0 : 3.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n } else {\n if ( absDirection.z > absDirection.y )\n face = direction.z > 0.0 ? 2.0 : 5.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n }\n return face;\n }\n vec2 getUV( vec3 direction, float face ) {\n vec2 uv;\n if ( face == 0.0 ) {\n uv = vec2( direction.z, direction.y ) / abs( direction.x );\n } else if ( face == 1.0 ) {\n uv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n } else if ( face == 2.0 ) {\n uv = vec2( - direction.x, direction.y ) / abs( direction.z );\n } else if ( face == 3.0 ) {\n uv = vec2( - direction.z, direction.y ) / abs( direction.x );\n } else if ( face == 4.0 ) {\n uv = vec2( - direction.x, direction.z ) / abs( direction.y );\n } else {\n uv = vec2( direction.x, direction.y ) / abs( direction.z );\n }\n return 0.5 * ( uv + 1.0 );\n }\n vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n float face = getFace( direction );\n float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n mipInt = max( mipInt, cubeUV_minMipLevel );\n float faceSize = exp2( mipInt );\n highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n if ( face > 2.0 ) {\n uv.y += faceSize;\n face -= 3.0;\n }\n uv.x += face * faceSize;\n uv.x += filterInt * 3.0 * cubeUV_minTileSize;\n uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n uv.x *= CUBEUV_TEXEL_WIDTH;\n uv.y *= CUBEUV_TEXEL_HEIGHT;\n #ifdef texture2DGradEXT\n return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n #else\n return texture2D( envMap, uv ).rgb;\n #endif\n }\n #define cubeUV_r0 1.0\n #define cubeUV_m0 - 2.0\n #define cubeUV_r1 0.8\n #define cubeUV_m1 - 1.0\n #define cubeUV_r4 0.4\n #define cubeUV_m4 2.0\n #define cubeUV_r5 0.305\n #define cubeUV_m5 3.0\n #define cubeUV_r6 0.21\n #define cubeUV_m6 4.0\n float roughnessToMip( float roughness ) {\n float mip = 0.0;\n if ( roughness >= cubeUV_r1 ) {\n mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n } else if ( roughness >= cubeUV_r4 ) {\n mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n } else if ( roughness >= cubeUV_r5 ) {\n mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n } else if ( roughness >= cubeUV_r6 ) {\n mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n } else {\n mip = - 2.0 * log2( 1.16 * roughness ); }\n return mip;\n }\n vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n float mipF = fract( mip );\n float mipInt = floor( mip );\n vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n if ( mipF == 0.0 ) {\n return vec4( color0, 1.0 );\n } else {\n vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n return vec4( mix( color0, color1, mipF ), 1.0 );\n }\n }\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n vec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n mat3 bm = mat3( batchingMatrix );\n transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n transformedNormal = bm * transformedNormal;\n #ifdef USE_TANGENT\n transformedTangent = bm * transformedTangent;\n #endif\n#endif\n#ifdef USE_INSTANCING\n mat3 im = mat3( instanceMatrix );\n transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n transformedNormal = im * transformedNormal;\n #ifdef USE_TANGENT\n transformedTangent = im * transformedTangent;\n #endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n transformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n #ifdef FLIP_SIDED\n transformedTangent = - transformedTangent;\n #endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n uniform sampler2D displacementMap;\n uniform float displacementScale;\n uniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\n emissiveColor = sRGBTransferEOTF( emissiveColor );\n #endif\n totalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n uniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"vec4 LinearTransferOETF( in vec4 value ) {\n return value;\n}\nvec4 sRGBTransferEOTF( in vec4 value ) {\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n #ifdef ENV_WORLDPOS\n vec3 cameraToFrag;\n if ( isOrthographic ) {\n cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n } else {\n cameraToFrag = normalize( vWorldPosition - cameraPosition );\n }\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n #ifdef ENVMAP_MODE_REFLECTION\n vec3 reflectVec = reflect( cameraToFrag, worldNormal );\n #else\n vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n #endif\n #else\n vec3 reflectVec = vReflect;\n #endif\n #ifdef ENVMAP_TYPE_CUBE\n vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n #else\n vec4 envColor = vec4( 0.0 );\n #endif\n #ifdef ENVMAP_BLENDING_MULTIPLY\n outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n #elif defined( ENVMAP_BLENDING_MIX )\n outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n #elif defined( ENVMAP_BLENDING_ADD )\n outgoingLight += envColor.xyz * specularStrength * reflectivity;\n #endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n uniform float envMapIntensity;\n uniform float flipEnvMap;\n uniform mat3 envMapRotation;\n #ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n #else\n uniform sampler2D envMap;\n #endif\n \n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n uniform float reflectivity;\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n #define ENV_WORLDPOS\n #endif\n #ifdef ENV_WORLDPOS\n varying vec3 vWorldPosition;\n uniform float refractionRatio;\n #else\n varying vec3 vReflect;\n #endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n #define ENV_WORLDPOS\n #endif\n #ifdef ENV_WORLDPOS\n \n varying vec3 vWorldPosition;\n #else\n varying vec3 vReflect;\n uniform float refractionRatio;\n #endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n vec3 getIBLIrradiance( const in vec3 normal ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n return PI * envMapColor.rgb * envMapIntensity;\n #else\n return vec3( 0.0 );\n #endif\n }\n vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 reflectVec = reflect( - viewDir, normal );\n reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n reflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n return envMapColor.rgb * envMapIntensity;\n #else\n return vec3( 0.0 );\n #endif\n }\n #ifdef USE_ANISOTROPY\n vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 bentNormal = cross( bitangent, viewDir );\n bentNormal = normalize( cross( bentNormal, bitangent ) );\n bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n return getIBLRadiance( viewDir, bentNormal, roughness );\n #else\n return vec3( 0.0 );\n #endif\n }\n #endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n #ifdef ENV_WORLDPOS\n vWorldPosition = worldPosition.xyz;\n #else\n vec3 cameraToVertex;\n if ( isOrthographic ) {\n cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n } else {\n cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n }\n vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n #ifdef ENVMAP_MODE_REFLECTION\n vReflect = reflect( cameraToVertex, worldNormal );\n #else\n vReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n #endif\n #endif\n#endif",fog_vertex:"#ifdef USE_FOG\n vFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n varying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n #ifdef FOG_EXP2\n float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n #else\n float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n #endif\n gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n uniform vec3 fogColor;\n varying float vFogDepth;\n #ifdef FOG_EXP2\n uniform float fogDensity;\n #else\n uniform float fogNear;\n uniform float fogFar;\n #endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n uniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n float dotNL = dot( normal, lightDirection );\n vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n #ifdef USE_GRADIENTMAP\n return vec3( texture2D( gradientMap, coord ).r );\n #else\n vec2 fw = fwidth( coord ) * 0.5;\n return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n #endif\n}",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n uniform sampler2D lightMap;\n uniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n vec3 diffuseColor;\n float specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_Lambert\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n uniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n float x = normal.x, y = normal.y, z = normal.z;\n vec3 result = shCoefficients[ 0 ] * 0.886227;\n result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n return result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n return irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n vec3 irradiance = ambientLightColor;\n return irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n if ( cutoffDistance > 0.0 ) {\n distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n }\n return distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n return smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n struct DirectionalLight {\n vec3 direction;\n vec3 color;\n };\n uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n light.color = directionalLight.color;\n light.direction = directionalLight.direction;\n light.visible = true;\n }\n#endif\n#if NUM_POINT_LIGHTS > 0\n struct PointLight {\n vec3 position;\n vec3 color;\n float distance;\n float decay;\n };\n uniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n vec3 lVector = pointLight.position - geometryPosition;\n light.direction = normalize( lVector );\n float lightDistance = length( lVector );\n light.color = pointLight.color;\n light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n light.visible = ( light.color != vec3( 0.0 ) );\n }\n#endif\n#if NUM_SPOT_LIGHTS > 0\n struct SpotLight {\n vec3 position;\n vec3 direction;\n vec3 color;\n float distance;\n float decay;\n float coneCos;\n float penumbraCos;\n };\n uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n vec3 lVector = spotLight.position - geometryPosition;\n light.direction = normalize( lVector );\n float angleCos = dot( light.direction, spotLight.direction );\n float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n if ( spotAttenuation > 0.0 ) {\n float lightDistance = length( lVector );\n light.color = spotLight.color * spotAttenuation;\n light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n light.visible = ( light.color != vec3( 0.0 ) );\n } else {\n light.color = vec3( 0.0 );\n light.visible = false;\n }\n }\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n struct RectAreaLight {\n vec3 color;\n vec3 position;\n vec3 halfWidth;\n vec3 halfHeight;\n };\n uniform sampler2D ltc_1; uniform sampler2D ltc_2;\n uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n struct HemisphereLight {\n vec3 direction;\n vec3 skyColor;\n vec3 groundColor;\n };\n uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n float dotNL = dot( normal, hemiLight.direction );\n float hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n return irradiance;\n }\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n vec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_Toon\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n vec3 diffuseColor;\n vec3 specularColor;\n float specularShininess;\n float specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_BlinnPhong\n#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n material.ior = ior;\n #ifdef USE_SPECULAR\n float specularIntensityFactor = specularIntensity;\n vec3 specularColorFactor = specularColor;\n #ifdef USE_SPECULAR_COLORMAP\n specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n #endif\n #ifdef USE_SPECULAR_INTENSITYMAP\n specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n #endif\n material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n #else\n float specularIntensityFactor = 1.0;\n vec3 specularColorFactor = vec3( 1.0 );\n material.specularF90 = 1.0;\n #endif\n material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n material.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n material.clearcoat = clearcoat;\n material.clearcoatRoughness = clearcoatRoughness;\n material.clearcoatF0 = vec3( 0.04 );\n material.clearcoatF90 = 1.0;\n #ifdef USE_CLEARCOATMAP\n material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n #endif\n #ifdef USE_CLEARCOAT_ROUGHNESSMAP\n material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n #endif\n material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n material.clearcoatRoughness += geometryRoughness;\n material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n material.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n material.iridescence = iridescence;\n material.iridescenceIOR = iridescenceIOR;\n #ifdef USE_IRIDESCENCEMAP\n material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n #endif\n #ifdef USE_IRIDESCENCE_THICKNESSMAP\n material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n #else\n material.iridescenceThickness = iridescenceThicknessMaximum;\n #endif\n#endif\n#ifdef USE_SHEEN\n material.sheenColor = sheenColor;\n #ifdef USE_SHEEN_COLORMAP\n material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n #endif\n material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n #ifdef USE_SHEEN_ROUGHNESSMAP\n material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n #endif\n#endif\n#ifdef USE_ANISOTROPY\n #ifdef USE_ANISOTROPYMAP\n mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n #else\n vec2 anisotropyV = anisotropyVector;\n #endif\n material.anisotropy = length( anisotropyV );\n if( material.anisotropy == 0.0 ) {\n anisotropyV = vec2( 1.0, 0.0 );\n } else {\n anisotropyV /= material.anisotropy;\n material.anisotropy = saturate( material.anisotropy );\n }\n material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n vec3 diffuseColor;\n float roughness;\n vec3 specularColor;\n float specularF90;\n float dispersion;\n #ifdef USE_CLEARCOAT\n float clearcoat;\n float clearcoatRoughness;\n vec3 clearcoatF0;\n float clearcoatF90;\n #endif\n #ifdef USE_IRIDESCENCE\n float iridescence;\n float iridescenceIOR;\n float iridescenceThickness;\n vec3 iridescenceFresnel;\n vec3 iridescenceF0;\n #endif\n #ifdef USE_SHEEN\n vec3 sheenColor;\n float sheenRoughness;\n #endif\n #ifdef IOR\n float ior;\n #endif\n #ifdef USE_TRANSMISSION\n float transmission;\n float transmissionAlpha;\n float thickness;\n float attenuationDistance;\n vec3 attenuationColor;\n #endif\n #ifdef USE_ANISOTROPY\n float anisotropy;\n float alphaT;\n vec3 anisotropyT;\n vec3 anisotropyB;\n #endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n float a2 = pow2( alpha );\n float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n return 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n float a2 = pow2( alpha );\n float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n return RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n float v = 0.5 / ( gv + gl );\n return saturate(v);\n }\n float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n float a2 = alphaT * alphaB;\n highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n highp float v2 = dot( v, v );\n float w2 = a2 / v2;\n return RECIPROCAL_PI * a2 * pow2 ( w2 );\n }\n#endif\n#ifdef USE_CLEARCOAT\n vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n vec3 f0 = material.clearcoatF0;\n float f90 = material.clearcoatF90;\n float roughness = material.clearcoatRoughness;\n float alpha = pow2( roughness );\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( f0, f90, dotVH );\n float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n float D = D_GGX( alpha, dotNH );\n return F * ( V * D );\n }\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n vec3 f0 = material.specularColor;\n float f90 = material.specularF90;\n float roughness = material.roughness;\n float alpha = pow2( roughness );\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( f0, f90, dotVH );\n #ifdef USE_IRIDESCENCE\n F = mix( F, material.iridescenceFresnel, material.iridescence );\n #endif\n #ifdef USE_ANISOTROPY\n float dotTL = dot( material.anisotropyT, lightDir );\n float dotTV = dot( material.anisotropyT, viewDir );\n float dotTH = dot( material.anisotropyT, halfDir );\n float dotBL = dot( material.anisotropyB, lightDir );\n float dotBV = dot( material.anisotropyB, viewDir );\n float dotBH = dot( material.anisotropyB, halfDir );\n float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n #else\n float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n float D = D_GGX( alpha, dotNH );\n #endif\n return F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n const float LUT_SIZE = 64.0;\n const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n const float LUT_BIAS = 0.5 / LUT_SIZE;\n float dotNV = saturate( dot( N, V ) );\n vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n uv = uv * LUT_SCALE + LUT_BIAS;\n return uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n float l = length( f );\n return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n float x = dot( v1, v2 );\n float y = abs( x );\n float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n float b = 3.4175940 + ( 4.1616724 + y ) * y;\n float v = a / b;\n float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n return cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n vec3 lightNormal = cross( v1, v2 );\n if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n vec3 T1, T2;\n T1 = normalize( V - N * dot( V, N ) );\n T2 = - cross( N, T1 );\n mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n vec3 coords[ 4 ];\n coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n coords[ 0 ] = normalize( coords[ 0 ] );\n coords[ 1 ] = normalize( coords[ 1 ] );\n coords[ 2 ] = normalize( coords[ 2 ] );\n coords[ 3 ] = normalize( coords[ 3 ] );\n vec3 vectorFormFactor = vec3( 0.0 );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n float result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n return vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n float alpha = pow2( roughness );\n float invAlpha = 1.0 / alpha;\n float cos2h = dotNH * dotNH;\n float sin2h = max( 1.0 - cos2h, 0.0078125 );\n return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float D = D_Charlie( sheenRoughness, dotNH );\n float V = V_Neubelt( dotNV, dotNL );\n return sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n float dotNV = saturate( dot( normal, viewDir ) );\n float r2 = roughness * roughness;\n float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n return saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n float dotNV = saturate( dot( normal, viewDir ) );\n const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n vec4 r = roughness * c0 + c1;\n float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n return fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n vec2 fab = DFGApprox( normal, viewDir, roughness );\n return specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n vec2 fab = DFGApprox( normal, viewDir, roughness );\n #ifdef USE_IRIDESCENCE\n vec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n #else\n vec3 Fr = specularColor;\n #endif\n vec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n float Ess = fab.x + fab.y;\n float Ems = 1.0 - Ess;\n vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n singleScatter += FssEss;\n multiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 normal = geometryNormal;\n vec3 viewDir = geometryViewDir;\n vec3 position = geometryPosition;\n vec3 lightPos = rectAreaLight.position;\n vec3 halfWidth = rectAreaLight.halfWidth;\n vec3 halfHeight = rectAreaLight.halfHeight;\n vec3 lightColor = rectAreaLight.color;\n float roughness = material.roughness;\n vec3 rectCoords[ 4 ];\n rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n vec2 uv = LTC_Uv( normal, viewDir, roughness );\n vec4 t1 = texture2D( ltc_1, uv );\n vec4 t2 = texture2D( ltc_2, uv );\n mat3 mInv = mat3(\n vec3( t1.x, 0, t1.y ),\n vec3( 0, 1, 0 ),\n vec3( t1.z, 0, t1.w )\n );\n vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n }\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n #ifdef USE_CLEARCOAT\n float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n vec3 ccIrradiance = dotNLcc * directLight.color;\n clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n #endif\n #ifdef USE_SHEEN\n sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n #endif\n reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n #ifdef USE_CLEARCOAT\n clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n #endif\n #ifdef USE_SHEEN\n sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n #endif\n vec3 singleScattering = vec3( 0.0 );\n vec3 multiScattering = vec3( 0.0 );\n vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n #ifdef USE_IRIDESCENCE\n computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n #else\n computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n #endif\n vec3 totalScattering = singleScattering + multiScattering;\n vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n reflectedLight.indirectSpecular += radiance * singleScattering;\n reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct RE_Direct_Physical\n#define RE_Direct_RectArea RE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular RE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n geometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n float dotNVi = saturate( dot( normal, geometryViewDir ) );\n if ( material.iridescenceThickness == 0.0 ) {\n material.iridescence = 0.0;\n } else {\n material.iridescence = saturate( material.iridescence );\n }\n if ( material.iridescence > 0.0 ) {\n material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n }\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n PointLight pointLight;\n #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n pointLight = pointLights[ i ];\n getPointLightInfo( pointLight, geometryPosition, directLight );\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n pointLightShadow = pointLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n SpotLight spotLight;\n vec4 spotColor;\n vec3 spotLightCoord;\n bool inSpotLightMap;\n #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n spotLight = spotLights[ i ];\n getSpotLightInfo( spotLight, geometryPosition, directLight );\n #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n #else\n #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #endif\n #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n #endif\n #undef SPOT_LIGHT_MAP_INDEX\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n spotLightShadow = spotLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n DirectionalLight directionalLight;\n #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n directionalLight = directionalLights[ i ];\n getDirectionalLightInfo( directionalLight, directLight );\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n directionalLightShadow = directionalLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n RectAreaLight rectAreaLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n rectAreaLight = rectAreaLights[ i ];\n RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n vec3 iblIrradiance = vec3( 0.0 );\n vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n #if defined( USE_LIGHT_PROBES )\n irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n #endif\n #if ( NUM_HEMI_LIGHTS > 0 )\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n }\n #pragma unroll_loop_end\n #endif\n#endif\n#if defined( RE_IndirectSpecular )\n vec3 radiance = vec3( 0.0 );\n vec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n #ifdef USE_LIGHTMAP\n vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n irradiance += lightMapIrradiance;\n #endif\n #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n iblIrradiance += getIBLIrradiance( geometryNormal );\n #endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n #ifdef USE_ANISOTROPY\n radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n #else\n radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n #endif\n #ifdef USE_CLEARCOAT\n clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n #endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF )\n gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF )\n uniform float logDepthBufFC;\n varying float vFragDepth;\n varying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n varying float vFragDepth;\n varying float vIsPerspective;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n vFragDepth = 1.0 + gl_Position.w;\n vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif",map_fragment:"#ifdef USE_MAP\n vec4 sampledDiffuseColor = texture2D( map, vMapUv );\n #ifdef DECODE_VIDEO_TEXTURE\n sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\n #endif\n diffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n uniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n #if defined( USE_POINTS_UV )\n vec2 uv = vUv;\n #else\n vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n #endif\n#endif\n#ifdef USE_MAP\n diffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n diffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n varying vec2 vUv;\n#else\n #if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n uniform mat3 uvTransform;\n #endif\n#endif\n#ifdef USE_MAP\n uniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n uniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n metalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n uniform sampler2D metalnessMap;\n#endif",morphinstance_vertex:"#ifdef USE_INSTANCING_MORPH\n float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n }\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS )\n vColor *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n #if defined( USE_COLOR_ALPHA )\n if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n #elif defined( USE_COLOR )\n if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n #endif\n }\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n objectNormal *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n }\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n #ifndef USE_INSTANCING_MORPH\n uniform float morphTargetBaseInfluence;\n uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n #endif\n uniform sampler2DArray morphTargetsTexture;\n uniform ivec2 morphTargetsTextureSize;\n vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n int y = texelIndex / morphTargetsTextureSize.x;\n int x = texelIndex - y * morphTargetsTextureSize.x;\n ivec3 morphUV = ivec3( x, y, morphTargetIndex );\n return texelFetch( morphTargetsTexture, morphUV, 0 );\n }\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n transformed *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n }\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n vec3 fdx = dFdx( vViewPosition );\n vec3 fdy = dFdy( vViewPosition );\n vec3 normal = normalize( cross( fdx, fdy ) );\n#else\n vec3 normal = normalize( vNormal );\n #ifdef DOUBLE_SIDED\n normal *= faceDirection;\n #endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n #ifdef USE_TANGENT\n mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n #else\n mat3 tbn = getTangentFrame( - vViewPosition, normal,\n #if defined( USE_NORMALMAP )\n vNormalMapUv\n #elif defined( USE_CLEARCOAT_NORMALMAP )\n vClearcoatNormalMapUv\n #else\n vUv\n #endif\n );\n #endif\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n tbn[0] *= faceDirection;\n tbn[1] *= faceDirection;\n #endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n #ifdef USE_TANGENT\n mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n #else\n mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n #endif\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n tbn2[0] *= faceDirection;\n tbn2[1] *= faceDirection;\n #endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n #ifdef FLIP_SIDED\n normal = - normal;\n #endif\n #ifdef DOUBLE_SIDED\n normal = normal * faceDirection;\n #endif\n normal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n mapN.xy *= normalScale;\n normal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n varying vec3 vNormal;\n #ifdef USE_TANGENT\n varying vec3 vTangent;\n varying vec3 vBitangent;\n #endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n varying vec3 vNormal;\n #ifdef USE_TANGENT\n varying vec3 vTangent;\n varying vec3 vBitangent;\n #endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n vNormal = normalize( transformedNormal );\n #ifdef USE_TANGENT\n vTangent = normalize( transformedTangent );\n vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n #endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n uniform sampler2D normalMap;\n uniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n uniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n vec3 q0 = dFdx( eye_pos.xyz );\n vec3 q1 = dFdy( eye_pos.xyz );\n vec2 st0 = dFdx( uv.st );\n vec2 st1 = dFdy( uv.st );\n vec3 N = surf_norm;\n vec3 q1perp = cross( q1, N );\n vec3 q0perp = cross( N, q0 );\n vec3 T = q1perp * st0.x + q0perp * st1.x;\n vec3 B = q1perp * st0.y + q0perp * st1.y;\n float det = max( dot( T, T ), dot( B, B ) );\n float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n return mat3( T * scale, B * scale, N );\n }\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n vec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n clearcoatMapN.xy *= clearcoatNormalScale;\n clearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n uniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n uniform sampler2D clearcoatNormalMap;\n uniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n uniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n uniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n uniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\nconst float Inv255 = 1. / 255.;\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\nvec4 packDepthToRGBA( const in float v ) {\n if( v <= 0.0 )\n return vec4( 0., 0., 0., 0. );\n if( v >= 1.0 )\n return vec4( 1., 1., 1., 1. );\n float vuf;\n float af = modf( v * PackFactors.a, vuf );\n float bf = modf( vuf * ShiftRight8, vuf );\n float gf = modf( vuf * ShiftRight8, vuf );\n return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\n}\nvec3 packDepthToRGB( const in float v ) {\n if( v <= 0.0 )\n return vec3( 0., 0., 0. );\n if( v >= 1.0 )\n return vec3( 1., 1., 1. );\n float vuf;\n float bf = modf( v * PackFactors.b, vuf );\n float gf = modf( vuf * ShiftRight8, vuf );\n return vec3( vuf * Inv255, gf * PackUpscale, bf );\n}\nvec2 packDepthToRG( const in float v ) {\n if( v <= 0.0 )\n return vec2( 0., 0. );\n if( v >= 1.0 )\n return vec2( 1., 1. );\n float vuf;\n float gf = modf( v * 256., vuf );\n return vec2( vuf * Inv255, gf );\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n return dot( v, UnpackFactors4 );\n}\nfloat unpackRGBToDepth( const in vec3 v ) {\n return dot( v, UnpackFactors3 );\n}\nfloat unpackRGToDepth( const in vec2 v ) {\n return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\n}\nvec4 pack2HalfToRGBA( const in vec2 v ) {\n vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( const in vec4 v ) {\n return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n return ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n return depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n gl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n mvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n vec3 dithering( vec3 color ) {\n float grid_position = rand( gl_FragCoord.xy );\n vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n return color + dither_shift_RGB;\n }\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n roughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n uniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n struct DirectionalLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n struct SpotLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n struct PointLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n float shadowCameraNear;\n float shadowCameraFar;\n };\n uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n #endif\n float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n }\n vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n return unpackRGBATo2Half( texture2D( shadow, uv ) );\n }\n float VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n float occlusion = 1.0;\n vec2 distribution = texture2DDistribution( shadow, uv );\n float hard_shadow = step( compare , distribution.x );\n if (hard_shadow != 1.0 ) {\n float distance = compare - distribution.x ;\n float variance = max( 0.00000, distribution.y * distribution.y );\n float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n }\n return occlusion;\n }\n float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n float shadow = 1.0;\n shadowCoord.xyz /= shadowCoord.w;\n shadowCoord.z += shadowBias;\n bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n bool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n if ( frustumTest ) {\n #if defined( SHADOWMAP_TYPE_PCF )\n vec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n float dx0 = - texelSize.x * shadowRadius;\n float dy0 = - texelSize.y * shadowRadius;\n float dx1 = + texelSize.x * shadowRadius;\n float dy1 = + texelSize.y * shadowRadius;\n float dx2 = dx0 / 2.0;\n float dy2 = dy0 / 2.0;\n float dx3 = dx1 / 2.0;\n float dy3 = dy1 / 2.0;\n shadow = (\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n ) * ( 1.0 / 17.0 );\n #elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n vec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n float dx = texelSize.x;\n float dy = texelSize.y;\n vec2 uv = shadowCoord.xy;\n vec2 f = fract( uv * shadowMapSize + 0.5 );\n uv -= f * texelSize;\n shadow = (\n texture2DCompare( shadowMap, uv, shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n f.x ) +\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n f.x ) +\n mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n f.y ) +\n mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n f.y ) +\n mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n f.x ),\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n f.x ),\n f.y )\n ) * ( 1.0 / 9.0 );\n #elif defined( SHADOWMAP_TYPE_VSM )\n shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n #else\n shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n #endif\n }\n return mix( 1.0, shadow, shadowIntensity );\n }\n vec2 cubeToUV( vec3 v, float texelSizeY ) {\n vec3 absV = abs( v );\n float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n absV *= scaleToCube;\n v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n vec2 planar = v.xy;\n float almostATexel = 1.5 * texelSizeY;\n float almostOne = 1.0 - almostATexel;\n if ( absV.z >= almostOne ) {\n if ( v.z > 0.0 )\n planar.x = 4.0 - v.x;\n } else if ( absV.x >= almostOne ) {\n float signX = sign( v.x );\n planar.x = v.z * signX + 2.0 * signX;\n } else if ( absV.y >= almostOne ) {\n float signY = sign( v.y );\n planar.x = v.x + 2.0 * signY + 2.0;\n planar.y = v.z * signY - 2.0;\n }\n return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n }\n float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n float shadow = 1.0;\n vec3 lightToPosition = shadowCoord.xyz;\n \n float lightToPositionLength = length( lightToPosition );\n if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias;\n vec3 bd3D = normalize( lightToPosition );\n vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n shadow = (\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n ) * ( 1.0 / 9.0 );\n #else\n shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n #endif\n }\n return mix( 1.0, shadow, shadowIntensity );\n }\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n struct DirectionalLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n struct SpotLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n struct PointLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n float shadowCameraNear;\n float shadowCameraFar;\n };\n uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n #endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n vec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n #if NUM_DIR_LIGHT_SHADOWS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n #endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n shadowWorldPosition = worldPosition;\n #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n #endif\n vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n float shadow = 1.0;\n #ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n directionalLight = directionalLightShadows[ i ];\n shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n spotLight = spotLightShadows[ i ];\n shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n pointLight = pointLightShadows[ i ];\n shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #endif\n return shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n mat4 boneMatX = getBoneMatrix( skinIndex.x );\n mat4 boneMatY = getBoneMatrix( skinIndex.y );\n mat4 boneMatZ = getBoneMatrix( skinIndex.z );\n mat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n uniform mat4 bindMatrix;\n uniform mat4 bindMatrixInverse;\n uniform highp sampler2D boneTexture;\n mat4 getBoneMatrix( const in float i ) {\n int size = textureSize( boneTexture, 0 ).x;\n int j = int( i ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n vec4 skinned = vec4( 0.0 );\n skinned += boneMatX * skinVertex * skinWeight.x;\n skinned += boneMatY * skinVertex * skinWeight.y;\n skinned += boneMatZ * skinVertex * skinWeight.z;\n skinned += boneMatW * skinVertex * skinWeight.w;\n transformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n mat4 skinMatrix = mat4( 0.0 );\n skinMatrix += skinWeight.x * boneMatX;\n skinMatrix += skinWeight.y * boneMatY;\n skinMatrix += skinWeight.z * boneMatZ;\n skinMatrix += skinWeight.w * boneMatW;\n skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n #ifdef USE_TANGENT\n objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n #endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n specularStrength = texelSpecular.r;\n#else\n specularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n uniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n return saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n return saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n color = max( vec3( 0.0 ), color - 0.004 );\n return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n vec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n return a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n const mat3 ACESInputMat = mat3(\n vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ),\n vec3( 0.04823, 0.01566, 0.83777 )\n );\n const mat3 ACESOutputMat = mat3(\n vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ),\n vec3( -0.07367, -0.00605, 1.07602 )\n );\n color *= toneMappingExposure / 0.6;\n color = ACESInputMat * color;\n color = RRTAndODTFit( color );\n color = ACESOutputMat * color;\n return saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n vec3( 1.6605, - 0.1246, - 0.0182 ),\n vec3( - 0.5876, 1.1329, - 0.1006 ),\n vec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n vec3( 0.6274, 0.0691, 0.0164 ),\n vec3( 0.3293, 0.9195, 0.0880 ),\n vec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n vec3 x2 = x * x;\n vec3 x4 = x2 * x2;\n return + 15.5 * x4 * x2\n - 40.14 * x4 * x\n + 31.96 * x4\n - 6.868 * x2 * x\n + 0.4298 * x2\n + 0.1191 * x\n - 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n const mat3 AgXInsetMatrix = mat3(\n vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n );\n const mat3 AgXOutsetMatrix = mat3(\n vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n );\n const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069;\n color *= toneMappingExposure;\n color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n color = AgXInsetMatrix * color;\n color = max( color, 1e-10 ); color = log2( color );\n color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n color = clamp( color, 0.0, 1.0 );\n color = agxDefaultContrastApprox( color );\n color = AgXOutsetMatrix * color;\n color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n color = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n color = clamp( color, 0.0, 1.0 );\n return color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n const float StartCompression = 0.8 - 0.04;\n const float Desaturation = 0.15;\n color *= toneMappingExposure;\n float x = min( color.r, min( color.g, color.b ) );\n float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n color -= offset;\n float peak = max( color.r, max( color.g, color.b ) );\n if ( peak < StartCompression ) return color;\n float d = 1. - StartCompression;\n float newPeak = 1. - d * d / ( peak + d - StartCompression );\n color *= newPeak / peak;\n float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n return mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n material.transmission = transmission;\n material.transmissionAlpha = 1.0;\n material.thickness = thickness;\n material.attenuationDistance = attenuationDistance;\n material.attenuationColor = attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n #endif\n #ifdef USE_THICKNESSMAP\n material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n #endif\n vec3 pos = vWorldPosition;\n vec3 v = normalize( cameraPosition - pos );\n vec3 n = inverseTransformDirection( normal, viewMatrix );\n vec4 transmitted = getIBLVolumeRefraction(\n n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n material.attenuationColor, material.attenuationDistance );\n material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n uniform float transmission;\n uniform float thickness;\n uniform float attenuationDistance;\n uniform vec3 attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n uniform sampler2D transmissionMap;\n #endif\n #ifdef USE_THICKNESSMAP\n uniform sampler2D thicknessMap;\n #endif\n uniform vec2 transmissionSamplerSize;\n uniform sampler2D transmissionSamplerMap;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrix;\n varying vec3 vWorldPosition;\n float w0( float a ) {\n return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n }\n float w1( float a ) {\n return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n }\n float w2( float a ){\n return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n }\n float w3( float a ) {\n return ( 1.0 / 6.0 ) * ( a * a * a );\n }\n float g0( float a ) {\n return w0( a ) + w1( a );\n }\n float g1( float a ) {\n return w2( a ) + w3( a );\n }\n float h0( float a ) {\n return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n }\n float h1( float a ) {\n return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n }\n vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n uv = uv * texelSize.zw + 0.5;\n vec2 iuv = floor( uv );\n vec2 fuv = fract( uv );\n float g0x = g0( fuv.x );\n float g1x = g1( fuv.x );\n float h0x = h0( fuv.x );\n float h1x = h1( fuv.x );\n float h0y = h0( fuv.y );\n float h1y = h1( fuv.y );\n vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n }\n vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n vec2 fLodSizeInv = 1.0 / fLodSize;\n vec2 cLodSizeInv = 1.0 / cLodSize;\n vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n return mix( fSample, cSample, fract( lod ) );\n }\n vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n vec3 modelScale;\n modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n return normalize( refractionVector ) * thickness * modelScale;\n }\n float applyIorToRoughness( const in float roughness, const in float ior ) {\n return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n }\n vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n }\n vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n if ( isinf( attenuationDistance ) ) {\n return vec3( 1.0 );\n } else {\n vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance;\n }\n }\n vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n const in vec3 attenuationColor, const in float attenuationDistance ) {\n vec4 transmittedLight;\n vec3 transmittance;\n #ifdef USE_DISPERSION\n float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n for ( int i = 0; i < 3; i ++ ) {\n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n \n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n \n vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n transmittedLight[ i ] = transmissionSample[ i ];\n transmittedLight.a += transmissionSample.a;\n transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n }\n transmittedLight.a /= 3.0;\n \n #else\n \n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n \n #endif\n vec3 attenuatedColor = transmittance * transmittedLight.rgb;\n vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n }\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n varying vec2 vUv;\n#endif\n#ifdef USE_MAP\n varying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n varying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n varying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n varying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n varying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n varying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n varying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n varying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n varying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n varying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n varying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n varying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n varying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n varying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n varying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n varying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n varying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n varying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n varying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n varying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n uniform mat3 transmissionMapTransform;\n varying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n uniform mat3 thicknessMapTransform;\n varying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n varying vec2 vUv;\n#endif\n#ifdef USE_MAP\n uniform mat3 mapTransform;\n varying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n uniform mat3 alphaMapTransform;\n varying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n uniform mat3 lightMapTransform;\n varying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n uniform mat3 aoMapTransform;\n varying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n uniform mat3 bumpMapTransform;\n varying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n uniform mat3 normalMapTransform;\n varying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n uniform mat3 displacementMapTransform;\n varying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n uniform mat3 emissiveMapTransform;\n varying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n uniform mat3 metalnessMapTransform;\n varying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n uniform mat3 roughnessMapTransform;\n varying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n uniform mat3 anisotropyMapTransform;\n varying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n uniform mat3 clearcoatMapTransform;\n varying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n uniform mat3 clearcoatNormalMapTransform;\n varying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n uniform mat3 clearcoatRoughnessMapTransform;\n varying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n uniform mat3 sheenColorMapTransform;\n varying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n uniform mat3 sheenRoughnessMapTransform;\n varying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n uniform mat3 iridescenceMapTransform;\n varying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n uniform mat3 iridescenceThicknessMapTransform;\n varying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n uniform mat3 specularMapTransform;\n varying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n uniform mat3 specularColorMapTransform;\n varying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n uniform mat3 specularIntensityMapTransform;\n varying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n uniform mat3 transmissionMapTransform;\n varying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n uniform mat3 thicknessMapTransform;\n varying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n vUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n vec4 worldPosition = vec4( transformed, 1.0 );\n #ifdef USE_BATCHING\n worldPosition = batchingMatrix * worldPosition;\n #endif\n #ifdef USE_INSTANCING\n worldPosition = instanceMatrix * worldPosition;\n #endif\n worldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n gl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n vec4 texColor = texture2D( t2D, vUv );\n #ifdef DECODE_VIDEO_TEXTURE\n texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n #endif\n texColor.rgb *= backgroundIntensity;\n gl_FragColor = texColor;\n #include \n #include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n gl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n uniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n #ifdef ENVMAP_TYPE_CUBE\n vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n #elif defined( ENVMAP_TYPE_CUBE_UV )\n vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n #else\n vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n #endif\n texColor.rgb *= backgroundIntensity;\n gl_FragColor = texColor;\n #include \n #include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n gl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n gl_FragColor = texColor;\n gl_FragColor.a *= opacity;\n #include \n #include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n #include \n #include \n #include \n #include \n #ifdef USE_DISPLACEMENTMAP\n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n uniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n vec4 diffuseColor = vec4( 1.0 );\n #include \n #if DEPTH_PACKING == 3200\n diffuseColor.a = opacity;\n #endif\n #include \n #include \n #include \n #include \n #include \n float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n #if DEPTH_PACKING == 3200\n gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n #elif DEPTH_PACKING == 3201\n gl_FragColor = packDepthToRGBA( fragCoordZ );\n #elif DEPTH_PACKING == 3202\n gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\n #elif DEPTH_PACKING == 3203\n gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\n #endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #ifdef USE_DISPLACEMENTMAP\n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n vec4 diffuseColor = vec4( 1.0 );\n #include \n #include \n #include \n #include \n #include \n float dist = length( vWorldPosition - referencePosition );\n dist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n dist = saturate( dist );\n gl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n vec3 direction = normalize( vWorldDirection );\n vec2 sampleUV = equirectUv( direction );\n gl_FragColor = texture2D( tEquirect, sampleUV );\n #include \n #include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vLineDistance = scale * lineDistance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n if ( mod( vLineDistance, totalSize ) > dashSize ) {\n discard;\n }\n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n #include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n #include \n #include \n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n varying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n #ifdef USE_LIGHTMAP\n vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n #else\n reflectedLight.indirectDiffuse += vec3( 1.0 );\n #endif\n #include \n reflectedLight.indirectDiffuse *= diffuseColor.rgb;\n vec3 outgoingLight = reflectedLight.indirectDiffuse;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n #include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 viewDir = normalize( vViewPosition );\n vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n vec3 y = cross( viewDir, x );\n vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n #ifdef USE_MATCAP\n vec4 matcapColor = texture2D( matcap, uv );\n #else\n vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n #endif\n vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n #include \n #include \n #include \n #include \n #include \n #include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n varying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n vViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n varying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n #include \n #include \n #include \n #include \n gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n #ifdef OPAQUE\n gl_FragColor.a = 1.0;\n #endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n #include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n varying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n#ifdef USE_TRANSMISSION\n vWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n #define IOR\n #define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n uniform float ior;\n#endif\n#ifdef USE_SPECULAR\n uniform float specularIntensity;\n uniform vec3 specularColor;\n #ifdef USE_SPECULAR_COLORMAP\n uniform sampler2D specularColorMap;\n #endif\n #ifdef USE_SPECULAR_INTENSITYMAP\n uniform sampler2D specularIntensityMap;\n #endif\n#endif\n#ifdef USE_CLEARCOAT\n uniform float clearcoat;\n uniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n uniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n uniform float iridescence;\n uniform float iridescenceIOR;\n uniform float iridescenceThicknessMinimum;\n uniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n uniform vec3 sheenColor;\n uniform float sheenRoughness;\n #ifdef USE_SHEEN_COLORMAP\n uniform sampler2D sheenColorMap;\n #endif\n #ifdef USE_SHEEN_ROUGHNESSMAP\n uniform sampler2D sheenRoughnessMap;\n #endif\n#endif\n#ifdef USE_ANISOTROPY\n uniform vec2 anisotropyVector;\n #ifdef USE_ANISOTROPYMAP\n uniform sampler2D anisotropyMap;\n #endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n #include \n vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n #ifdef USE_SHEEN\n float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n #endif\n #ifdef USE_CLEARCOAT\n float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n varying vec2 vUv;\n uniform mat3 uvTransform;\n#endif\nvoid main() {\n #ifdef USE_POINTS_UV\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n gl_PointSize = size;\n #ifdef USE_SIZEATTENUATION\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n #endif\n #include \n #include \n #include \n #include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n #include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n #include \n #include \n #include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n vec4 mvPosition = modelViewMatrix[ 3 ];\n vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\n #ifndef USE_SIZEATTENUATION\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) scale *= - mvPosition.z;\n #endif\n vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n vec2 rotatedPosition;\n rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n mvPosition.xy += rotatedPosition;\n gl_Position = projectionMatrix * mvPosition;\n #include \n #include \n #include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n}"},ok={common:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},map:{value:null},mapTransform:{value:new Z},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Z}},envmap:{envMap:{value:null},envMapRotation:{value:new Z},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Z}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Z}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Z},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Z},normalScale:{value:new Y(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Z},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Z}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Z}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Z}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new tz(0xffffff)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0},uvTransform:{value:new Z}},sprite:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},center:{value:new Y(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Z},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0}}},oH={basic:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.fog]),vertexShader:oB.meshbasic_vert,fragmentShader:oB.meshbasic_frag},lambert:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,ok.lights,{emissive:{value:new tz(0)}}]),vertexShader:oB.meshlambert_vert,fragmentShader:oB.meshlambert_frag},phong:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,ok.lights,{emissive:{value:new tz(0)},specular:{value:new tz(1118481)},shininess:{value:30}}]),vertexShader:oB.meshphong_vert,fragmentShader:oB.meshphong_frag},standard:{uniforms:n_([ok.common,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.roughnessmap,ok.metalnessmap,ok.fog,ok.lights,{emissive:{value:new tz(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:oB.meshphysical_vert,fragmentShader:oB.meshphysical_frag},toon:{uniforms:n_([ok.common,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.gradientmap,ok.fog,ok.lights,{emissive:{value:new tz(0)}}]),vertexShader:oB.meshtoon_vert,fragmentShader:oB.meshtoon_frag},matcap:{uniforms:n_([ok.common,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,{matcap:{value:null}}]),vertexShader:oB.meshmatcap_vert,fragmentShader:oB.meshmatcap_frag},points:{uniforms:n_([ok.points,ok.fog]),vertexShader:oB.points_vert,fragmentShader:oB.points_frag},dashed:{uniforms:n_([ok.common,ok.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:oB.linedashed_vert,fragmentShader:oB.linedashed_frag},depth:{uniforms:n_([ok.common,ok.displacementmap]),vertexShader:oB.depth_vert,fragmentShader:oB.depth_frag},normal:{uniforms:n_([ok.common,ok.bumpmap,ok.normalmap,ok.displacementmap,{opacity:{value:1}}]),vertexShader:oB.meshnormal_vert,fragmentShader:oB.meshnormal_frag},sprite:{uniforms:n_([ok.sprite,ok.fog]),vertexShader:oB.sprite_vert,fragmentShader:oB.sprite_frag},background:{uniforms:{uvTransform:{value:new Z},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:oB.background_vert,fragmentShader:oB.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Z}},vertexShader:oB.backgroundCube_vert,fragmentShader:oB.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:oB.cube_vert,fragmentShader:oB.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:oB.equirect_vert,fragmentShader:oB.equirect_frag},distanceRGBA:{uniforms:n_([ok.common,ok.displacementmap,{referencePosition:{value:new eE},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:oB.distanceRGBA_vert,fragmentShader:oB.distanceRGBA_frag},shadow:{uniforms:n_([ok.lights,ok.fog,{color:{value:new tz(0)},opacity:{value:1}}]),vertexShader:oB.shadow_vert,fragmentShader:oB.shadow_frag}};oH.physical={uniforms:n_([oH.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Z},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Z},clearcoatNormalScale:{value:new Y(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Z},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Z},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Z},sheen:{value:0},sheenColor:{value:new tz(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Z},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Z},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Z},transmissionSamplerSize:{value:new Y},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Z},attenuationDistance:{value:0},attenuationColor:{value:new tz(0)},specularColor:{value:new tz(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Z},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Z},anisotropyVector:{value:new Y},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Z}}]),vertexShader:oB.meshphysical_vert,fragmentShader:oB.meshphysical_frag};let oV={r:0,b:0,g:0},oG=new tn,oW=new e2;function oj(e,t,n,i,r,a,s){let o,l,u=new tz(0),c=+(!0!==a),h=null,d=0,p=null;function f(e){let i=!0===e.isScene?e.background:null;return i&&i.isTexture&&(i=(e.backgroundBlurriness>0?n:t).get(i)),i}function m(t,n){t.getRGB(oV,ny(e)),i.buffers.color.setClear(oV.r,oV.g,oV.b,n,s)}return{getClearColor:function(){return u},setClearColor:function(e,t=1){u.set(e),m(u,c=t)},getClearAlpha:function(){return c},setClearAlpha:function(e){m(u,c=e)},render:function(t){let n=!1,r=f(t);null===r?m(u,c):r&&r.isColor&&(m(r,1),n=!0);let a=e.xr.getEnvironmentBlendMode();"additive"===a?i.buffers.color.setClear(0,0,0,1,s):"alpha-blend"===a&&i.buffers.color.setClear(0,0,0,0,s),(e.autoClear||n)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil))},addToRenderList:function(t,n){let i=f(n);i&&(i.isCubeTexture||306===i.mapping)?(void 0===l&&((l=new nf(new ng(1,1,1),new nb({name:"BackgroundCubeMaterial",uniforms:nv(oH.backgroundCube.uniforms),vertexShader:oH.backgroundCube.vertexShader,fragmentShader:oH.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),oG.copy(n.backgroundRotation),oG.x*=-1,oG.y*=-1,oG.z*=-1,i.isCubeTexture&&!1===i.isRenderTargetTexture&&(oG.y*=-1,oG.z*=-1),l.material.uniforms.envMap.value=i,l.material.uniforms.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,l.material.uniforms.backgroundBlurriness.value=n.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,l.material.uniforms.backgroundRotation.value.setFromMatrix4(oW.makeRotationFromEuler(oG)),l.material.toneMapped=eu.getTransfer(i.colorSpace)!==U,(h!==i||d!==i.version||p!==e.toneMapping)&&(l.material.needsUpdate=!0,h=i,d=i.version,p=e.toneMapping),l.layers.enableAll(),t.unshift(l,l.geometry,l.material,0,0,null)):i&&i.isTexture&&(void 0===o&&((o=new nf(new r9(2,2),new nb({name:"BackgroundMaterial",uniforms:nv(oH.background.uniforms),vertexShader:oH.background.vertexShader,fragmentShader:oH.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(o)),o.material.uniforms.t2D.value=i,o.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,o.material.toneMapped=eu.getTransfer(i.colorSpace)!==U,!0===i.matrixAutoUpdate&&i.updateMatrix(),o.material.uniforms.uvTransform.value.copy(i.matrix),(h!==i||d!==i.version||p!==e.toneMapping)&&(o.material.needsUpdate=!0,h=i,d=i.version,p=e.toneMapping),o.layers.enableAll(),t.unshift(o,o.geometry,o.material,0,0,null))},dispose:function(){void 0!==l&&(l.geometry.dispose(),l.material.dispose()),void 0!==o&&(o.geometry.dispose(),o.material.dispose())}}}function oX(e,t){let n=e.getParameter(e.MAX_VERTEX_ATTRIBS),i={},r=u(null),a=r,s=!1;function o(t){return e.bindVertexArray(t)}function l(t){return e.deleteVertexArray(t)}function u(e){let t=[],i=[],r=[];for(let e=0;e=0){let n=r[t],i=s[t];if(void 0===i&&("instanceMatrix"===t&&e.instanceMatrix&&(i=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(i=e.instanceColor)),void 0===n||n.attribute!==i||i&&n.data!==i.data)return!0;o++}return a.attributesNum!==o||a.index!==i}(n,m,l,g))&&function(e,t,n,i){let r={},s=t.attributes,o=0,l=n.getAttributes();for(let t in l)if(l[t].location>=0){let n=s[t];void 0===n&&("instanceMatrix"===t&&e.instanceMatrix&&(n=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(n=e.instanceColor));let i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[t]=i,o++}a.attributes=r,a.attributesNum=o,a.index=i}(n,m,l,g),null!==g&&t.update(g,e.ELEMENT_ARRAY_BUFFER),(M||s)&&(s=!1,function(n,i,r,a){c();let s=a.attributes,o=r.getAttributes(),l=i.defaultAttributeValues;for(let i in o){let r=o[i];if(r.location>=0){let o=s[i];if(void 0===o&&("instanceMatrix"===i&&n.instanceMatrix&&(o=n.instanceMatrix),"instanceColor"===i&&n.instanceColor&&(o=n.instanceColor)),void 0!==o){let i=o.normalized,s=o.itemSize,l=t.get(o);if(void 0===l)continue;let u=l.buffer,c=l.type,p=l.bytesPerElement,m=c===e.INT||c===e.UNSIGNED_INT||1013===o.gpuType;if(o.isInterleavedBufferAttribute){let t=o.data,l=t.stride,g=o.offset;if(t.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let s=void 0!==n.precision?n.precision:"highp",o=a(s);o!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",o,"instead."),s=o);let l=!0===n.logarithmicDepthBuffer,u=!0===n.reverseDepthBuffer&&t.has("EXT_clip_control"),c=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),h=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){let n=t.get("EXT_texture_filter_anisotropic");r=e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:a,textureFormatReadable:function(t){return 1023===t||i.convert(t)===e.getParameter(e.IMPLEMENTATION_COLOR_READ_FORMAT)},textureTypeReadable:function(n){let r=1016===n&&(t.has("EXT_color_buffer_half_float")||t.has("EXT_color_buffer_float"));return 1009===n||i.convert(n)===e.getParameter(e.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n||!!r},precision:s,logarithmicDepthBuffer:l,reverseDepthBuffer:u,maxTextures:c,maxVertexTextures:h,maxTextureSize:e.getParameter(e.MAX_TEXTURE_SIZE),maxCubemapSize:e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),maxAttributes:e.getParameter(e.MAX_VERTEX_ATTRIBS),maxVertexUniforms:e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),maxVaryings:e.getParameter(e.MAX_VARYING_VECTORS),maxFragmentUniforms:e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),vertexTextures:h>0,maxSamples:e.getParameter(e.MAX_SAMPLES)}}function oZ(e){let t=this,n=null,i=0,r=!1,a=!1,s=new iy,o=new Z,l={value:null,needsUpdate:!1};function u(e,n,i,r){let a=null!==e?e.length:0,u=null;if(0!==a){if(u=l.value,!0!==r||null===u){let t=i+4*a,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===u||u.length0),t.numPlanes=i,t.numIntersection=0)}}function oJ(e){let t=new WeakMap;function n(e,t){return 303===t?e.mapping=301:304===t&&(e.mapping=302),e}function i(e){let n=e.target;n.removeEventListener("dispose",i);let r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){let a=r.mapping;if(303===a||304===a)if(t.has(r))return n(t.get(r).texture,r.mapping);else{let a=r.image;if(!a||!(a.height>0))return null;{let s=new nR(a.height);return s.fromEquirectangularTexture(e,r),t.set(r,s),r.addEventListener("dispose",i),n(s.texture,r.mapping)}}}return r},dispose:function(){t=new WeakMap}}}let oK=[.125,.215,.35,.446,.526,.582],o$=new sn,oQ=new tz,o0=null,o1=0,o2=0,o3=!1,o4=(1+Math.sqrt(5))/2,o5=1/o4,o6=[new eE(-o4,o5,0),new eE(o4,o5,0),new eE(-o5,0,o4),new eE(o5,0,o4),new eE(0,o4,-o5),new eE(0,o4,o5),new eE(-1,1,-1),new eE(1,1,-1),new eE(-1,1,1),new eE(1,1,1)];class o8{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){o0=this._renderer.getRenderTarget(),o1=this._renderer.getActiveCubeFace(),o2=this._renderer.getActiveMipmapLevel(),o3=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(e,n,i,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=lt(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=le(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;ee-4?o=oK[s-e+4-1]:0===s&&(o=0),i.push(o);let l=1/(a-2),u=-l,c=1+l,h=[u,u,c,u,c,c,u,u,c,c,u,c],d=new Float32Array(108),p=new Float32Array(72),f=new Float32Array(36);for(let e=0;e<6;e++){let t=e%3*2/3-1,n=e>2?0:-1,i=[t,n,0,t+2/3,n,0,t+2/3,n+1,0,t,n,0,t+2/3,n+1,0,t,n+1,0];d.set(i,18*e),p.set(h,12*e);let r=[e,e,e,e,e,e];f.set(r,6*e)}let m=new nn;m.setAttribute("position",new tZ(d,3)),m.setAttribute("uv",new tZ(p,2)),m.setAttribute("faceIndex",new tZ(f,1)),t.push(m),r>4&&r--}return{lodPlanes:t,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=(r=i,new nb({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:new Float32Array(20)},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:new eE(0,1,0)}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:0,depthTest:!1,depthWrite:!1}))}return i}_compileMaterial(e){let t=new nf(this._lodPlanes[0],e);this._renderer.compile(t,o$)}_sceneToCubeUV(e,t,n,i){let r=new nE(90,1,t,n),a=[1,-1,1,1,1,1],s=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,u=o.toneMapping;o.getClearColor(oQ),o.toneMapping=0,o.autoClear=!1;let c=new tV({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),h=new nf(new ng,c),d=!1,p=e.background;p?p.isColor&&(c.color.copy(p),e.background=null,d=!0):(c.color.copy(oQ),d=!0);for(let t=0;t<6;t++){let n=t%3;0===n?(r.up.set(0,a[t],0),r.lookAt(s[t],0,0)):1===n?(r.up.set(0,0,a[t]),r.lookAt(0,s[t],0)):(r.up.set(0,a[t],0),r.lookAt(0,0,s[t]));let l=this._cubeSize;o7(i,n*l,t>2?l:0,l,l),o.setRenderTarget(i),d&&o.render(h,r),o.render(e,r)}h.geometry.dispose(),h.material.dispose(),o.toneMapping=u,o.autoClear=l,e.background=p}_textureToCubeUV(e,t){let n=this._renderer,i=301===e.mapping||302===e.mapping;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=lt()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=le());let r=i?this._cubemapMaterial:this._equirectMaterial,a=new nf(this._lodPlanes[0],r);r.uniforms.envMap.value=e;let s=this._cubeSize;o7(t,0,0,3*s,2*s),n.setRenderTarget(t),n.render(a,o$)}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;let i=this._lodPlanes.length;for(let t=1;t20&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);let m=[],g=0;for(let e=0;e<20;++e){let t=e/p,n=Math.exp(-t*t/2);m.push(n),0===e?g+=n:ev-4?i-v+4:0),y,3*_,2*_),o.setRenderTarget(t),o.render(u,o$)}}function o9(e,t,n){let i=new ex(e,t,n);return i.texture.mapping=306,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function o7(e,t,n,i,r){e.viewport.set(t,n,i,r),e.scissor.set(t,n,i,r)}function le(){return new nb({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function lt(){return new nb({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function ln(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function li(e){let t=new WeakMap,n=null;function i(e){let n=e.target;n.removeEventListener("dispose",i);let r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){let a=r.mapping,s=303===a||304===a,o=301===a||302===a;if(s||o){let a=t.get(r),l=void 0!==a?a.texture.pmremVersion:0;if(r.isRenderTargetTexture&&r.pmremVersion!==l)return null===n&&(n=new o8(e)),(a=s?n.fromEquirectangular(r,a):n.fromCubemap(r,a)).texture.pmremVersion=r.pmremVersion,t.set(r,a),a.texture;{if(void 0!==a)return a.texture;let l=r.image;return s&&l&&l.height>0||o&&l&&function(e){let t=0;for(let n=0;n<6;n++)void 0!==e[n]&&t++;return 6===t}(l)?(null===n&&(n=new o8(e)),(a=s?n.fromEquirectangular(r):n.fromCubemap(r)).texture.pmremVersion=r.pmremVersion,t.set(r,a),r.addEventListener("dispose",i),a.texture):null}}}return r},dispose:function(){t=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function lr(e){let t={};function n(n){let i;if(void 0!==t[n])return t[n];switch(n){case"WEBGL_depth_texture":i=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=e.getExtension(n)}return t[n]=i,i}return{has:function(e){return null!==n(e)},init:function(){n("EXT_color_buffer_float"),n("WEBGL_clip_cull_distance"),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture"),n("WEBGL_render_shared_exponent")},get:function(e){let t=n(e);return null===t&&ei("THREE.WebGLRenderer: "+e+" extension not supported."),t}}}function la(e,t,n,i){let r={},a=new WeakMap;function s(e){let o=e.target;for(let e in null!==o.index&&t.remove(o.index),o.attributes)t.remove(o.attributes[e]);o.removeEventListener("dispose",s),delete r[o.id];let l=a.get(o);l&&(t.remove(l),a.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(e){let n=[],i=e.index,r=e.attributes.position,s=0;if(null!==i){let e=i.array;s=i.version;for(let t=0,i=e.length;tt.maxTextureSize&&(f=Math.ceil(p/t.maxTextureSize),p=t.maxTextureSize);let m=new Float32Array(p*f*4*c),g=new eb(m,p,f,c);g.type=1015,g.needsUpdate=!0;let v=4*d;for(let t=0;t0)return e;let r=t*n,a=lm[r];if(void 0===a&&(a=new Float32Array(r),lm[r]=a),0!==t){i.toArray(a,0);for(let i=1,r=0;i!==t;++i)r+=n,e[i].toArray(a,r)}return a}function lb(e,t){if(e.length!==t.length)return!1;for(let n=0,i=e.length;n":" "} ${r}: ${n[e]}`)}return i.join("\n")}(e.getShaderSource(t),i)}}let ul=new eE;function uu(e){return""!==e}function uc(e,t){let n=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function uh(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}let ud=/^[ \t]*#include +<([\w\d./]+)>/gm;function up(e){return e.replace(ud,um)}let uf=new Map;function um(e,t){let n=oB[t];if(void 0===n){let e=uf.get(t);if(void 0!==e)n=oB[e],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,e);else throw Error("Can not resolve #include <"+t+">")}return up(n)}let ug=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function uv(e){return e.replace(ug,u_)}function u_(e,t,n,i){let r="";for(let e=parseInt(t);e0&&(r+="\n"),(a=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x].filter(uu).join("\n")).length>0&&(a+="\n");else{let e,t,i,s;r=[uy(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+g:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+f:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif","\n"].filter(uu).join("\n"),a=[uy(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.envMap?"#define "+g:"",n.envMap?"#define "+v:"",_?"#define CUBEUV_TEXEL_WIDTH "+_.texelWidth:"",_?"#define CUBEUV_TEXEL_HEIGHT "+_.texelHeight:"",_?"#define CUBEUV_MAX_MIP "+_.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+f:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?oB.tonemapping_pars_fragment:"",0!==n.toneMapping?function(e,t){let n;switch(t){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="Cineon";break;case 4:n="ACESFilmic";break;case 6:n="AgX";break;case 7:n="Neutral";break;case 5:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),n="Linear"}return"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",oB.colorspace_pars_fragment,(e=function(e){eu._getMatrix(us,eu.workingColorSpace,e);let t=`mat3( ${us.elements.map(e=>e.toFixed(4))} )`;switch(eu.getTransfer(e)){case N:return[t,"LinearTransferOETF"];case U:return[t,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",e),[t,"LinearTransferOETF"]}}(n.outputColorSpace),`vec4 linearToOutputTexel( vec4 value ) { + return ${e[1]}( vec4( value.rgb * ${e[0]}, value.a ) ); +}`),(eu.getLuminanceCoefficients(ul),t=ul.x.toFixed(4),i=ul.y.toFixed(4),s=ul.z.toFixed(4),`float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( ${t}, ${i}, ${s} ); + return dot( weights, rgb ); +}`),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(uu).join("\n")}d=uh(d=uc(d=up(d),n),n),p=uh(p=uc(p=up(p),n),n),d=uv(d),p=uv(p),!0!==n.isRawShaderMaterial&&(S="#version 300 es\n",r=[y,"#define attribute in\n#define varying out\n#define texture2D texture"].join("\n")+"\n"+r,a=["#define varying in",n.glslVersion===D?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===D?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+a);let M=S+r+d,T=S+a+p,w=ur(c,c.VERTEX_SHADER,M),E=ur(c,c.FRAGMENT_SHADER,T);function A(t){if(e.debug.checkShaderErrors){let n=c.getProgramInfoLog(b).trim(),i=c.getShaderInfoLog(w).trim(),s=c.getShaderInfoLog(E).trim(),o=!0,l=!0;if(!1===c.getProgramParameter(b,c.LINK_STATUS))if(o=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(c,b,w,E);else{let e=uo(c,w,"vertex"),i=uo(c,E,"fragment");console.error("THREE.WebGLProgram: Shader Error "+c.getError()+" - VALIDATE_STATUS "+c.getProgramParameter(b,c.VALIDATE_STATUS)+"\n\nMaterial Name: "+t.name+"\nMaterial Type: "+t.type+"\n\nProgram Info Log: "+n+"\n"+e+"\n"+i)}else""!==n?console.warn("THREE.WebGLProgram: Program Info Log:",n):(""===i||""===s)&&(l=!1);l&&(t.diagnostics={runnable:o,programLog:n,vertexShader:{log:i,prefix:r},fragmentShader:{log:s,prefix:a}})}c.deleteShader(w),c.deleteShader(E),s=new ui(c,b),o=function(e,t){let n={},i=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let r=0;r0,Z=a.clearcoat>0,J=a.dispersion>0,K=a.iridescence>0,$=a.sheen>0,Q=a.transmission>0,ee=Y&&!!a.anisotropyMap,et=Z&&!!a.clearcoatMap,en=Z&&!!a.clearcoatNormalMap,ei=Z&&!!a.clearcoatRoughnessMap,er=K&&!!a.iridescenceMap,ea=K&&!!a.iridescenceThicknessMap,es=$&&!!a.sheenColorMap,eo=$&&!!a.sheenRoughnessMap,el=!!a.specularMap,ec=!!a.specularColorMap,eh=!!a.specularIntensityMap,ed=Q&&!!a.transmissionMap,ep=Q&&!!a.thicknessMap,ef=!!a.gradientMap,em=!!a.alphaMap,eg=a.alphaTest>0,ev=!!a.alphaHash,e_=!!a.extensions,ey=0;a.toneMapped&&(null===I||!0===I.isXRRenderTarget)&&(ey=e.toneMapping);let ex={shaderID:A,shaderType:a.type,shaderName:a.name,vertexShader:_,fragmentShader:y,defines:a.defines,customVertexShaderID:x,customFragmentShaderID:b,isRawShaderMaterial:!0===a.isRawShaderMaterial,glslVersion:a.glslVersion,precision:p,batching:O,batchingColor:O&&null!==v._colorsTexture,instancing:D,instancingColor:D&&null!==v.instanceColor,instancingMorph:D&&null!==v.morphTexture,supportsVertexTextures:d,outputColorSpace:null===I?e.outputColorSpace:!0===I.isXRRenderTarget?I.texture.colorSpace:L,alphaToCoverage:!!a.alphaToCoverage,map:F,matcap:z,envMap:B,envMapMode:B&&w.mapping,envMapCubeUVHeight:E,aoMap:k,lightMap:H,bumpMap:V,normalMap:G,displacementMap:d&&W,emissiveMap:j,normalMapObjectSpace:G&&1===a.normalMapType,normalMapTangentSpace:G&&0===a.normalMapType,metalnessMap:X,roughnessMap:q,anisotropy:Y,anisotropyMap:ee,clearcoat:Z,clearcoatMap:et,clearcoatNormalMap:en,clearcoatRoughnessMap:ei,dispersion:J,iridescence:K,iridescenceMap:er,iridescenceThicknessMap:ea,sheen:$,sheenColorMap:es,sheenRoughnessMap:eo,specularMap:el,specularColorMap:ec,specularIntensityMap:eh,transmission:Q,transmissionMap:ed,thicknessMap:ep,gradientMap:ef,opaque:!1===a.transparent&&1===a.blending&&!1===a.alphaToCoverage,alphaMap:em,alphaTest:eg,alphaHash:ev,combine:a.combine,mapUv:F&&m(a.map.channel),aoMapUv:k&&m(a.aoMap.channel),lightMapUv:H&&m(a.lightMap.channel),bumpMapUv:V&&m(a.bumpMap.channel),normalMapUv:G&&m(a.normalMap.channel),displacementMapUv:W&&m(a.displacementMap.channel),emissiveMapUv:j&&m(a.emissiveMap.channel),metalnessMapUv:X&&m(a.metalnessMap.channel),roughnessMapUv:q&&m(a.roughnessMap.channel),anisotropyMapUv:ee&&m(a.anisotropyMap.channel),clearcoatMapUv:et&&m(a.clearcoatMap.channel),clearcoatNormalMapUv:en&&m(a.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ei&&m(a.clearcoatRoughnessMap.channel),iridescenceMapUv:er&&m(a.iridescenceMap.channel),iridescenceThicknessMapUv:ea&&m(a.iridescenceThicknessMap.channel),sheenColorMapUv:es&&m(a.sheenColorMap.channel),sheenRoughnessMapUv:eo&&m(a.sheenRoughnessMap.channel),specularMapUv:el&&m(a.specularMap.channel),specularColorMapUv:ec&&m(a.specularColorMap.channel),specularIntensityMapUv:eh&&m(a.specularIntensityMap.channel),transmissionMapUv:ed&&m(a.transmissionMap.channel),thicknessMapUv:ep&&m(a.thicknessMap.channel),alphaMapUv:em&&m(a.alphaMap.channel),vertexTangents:!!M.attributes.tangent&&(G||Y),vertexColors:a.vertexColors,vertexAlphas:!0===a.vertexColors&&!!M.attributes.color&&4===M.attributes.color.itemSize,pointsUvs:!0===v.isPoints&&!!M.attributes.uv&&(F||em),fog:!!S,useFog:!0===a.fog,fogExp2:!!S&&S.isFogExp2,flatShading:!0===a.flatShading,sizeAttenuation:!0===a.sizeAttenuation,logarithmicDepthBuffer:h,reverseDepthBuffer:N,skinning:!0===v.isSkinnedMesh,morphTargets:void 0!==M.morphAttributes.position,morphNormals:void 0!==M.morphAttributes.normal,morphColors:void 0!==M.morphAttributes.color,morphTargetsCount:R,morphTextureStride:P,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:a.dithering,shadowMapEnabled:e.shadowMap.enabled&&c.length>0,shadowMapType:e.shadowMap.type,toneMapping:ey,decodeVideoTexture:F&&!0===a.map.isVideoTexture&&eu.getTransfer(a.map.colorSpace)===U,decodeVideoTextureEmissive:j&&!0===a.emissiveMap.isVideoTexture&&eu.getTransfer(a.emissiveMap.colorSpace)===U,premultipliedAlpha:a.premultipliedAlpha,doubleSided:2===a.side,flipSided:1===a.side,useDepthPacking:a.depthPacking>=0,depthPacking:a.depthPacking||0,index0AttributeName:a.index0AttributeName,extensionClipCullDistance:e_&&!0===a.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(e_&&!0===a.extensions.multiDraw||O)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:a.customProgramCacheKey()};return ex.vertexUv1s=u.has(1),ex.vertexUv2s=u.has(2),ex.vertexUv3s=u.has(3),u.clear(),ex},getProgramCacheKey:function(t){var n,i,r,a;let s=[];if(t.shaderID?s.push(t.shaderID):(s.push(t.customVertexShaderID),s.push(t.customFragmentShaderID)),void 0!==t.defines)for(let e in t.defines)s.push(e),s.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(n=s,i=t,n.push(i.precision),n.push(i.outputColorSpace),n.push(i.envMapMode),n.push(i.envMapCubeUVHeight),n.push(i.mapUv),n.push(i.alphaMapUv),n.push(i.lightMapUv),n.push(i.aoMapUv),n.push(i.bumpMapUv),n.push(i.normalMapUv),n.push(i.displacementMapUv),n.push(i.emissiveMapUv),n.push(i.metalnessMapUv),n.push(i.roughnessMapUv),n.push(i.anisotropyMapUv),n.push(i.clearcoatMapUv),n.push(i.clearcoatNormalMapUv),n.push(i.clearcoatRoughnessMapUv),n.push(i.iridescenceMapUv),n.push(i.iridescenceThicknessMapUv),n.push(i.sheenColorMapUv),n.push(i.sheenRoughnessMapUv),n.push(i.specularMapUv),n.push(i.specularColorMapUv),n.push(i.specularIntensityMapUv),n.push(i.transmissionMapUv),n.push(i.thicknessMapUv),n.push(i.combine),n.push(i.fogExp2),n.push(i.sizeAttenuation),n.push(i.morphTargetsCount),n.push(i.morphAttributeCount),n.push(i.numDirLights),n.push(i.numPointLights),n.push(i.numSpotLights),n.push(i.numSpotLightMaps),n.push(i.numHemiLights),n.push(i.numRectAreaLights),n.push(i.numDirLightShadows),n.push(i.numPointLightShadows),n.push(i.numSpotLightShadows),n.push(i.numSpotLightShadowsWithMaps),n.push(i.numLightProbes),n.push(i.shadowMapType),n.push(i.toneMapping),n.push(i.numClippingPlanes),n.push(i.numClipIntersection),n.push(i.depthPacking),r=s,a=t,o.disableAll(),a.supportsVertexTextures&&o.enable(0),a.instancing&&o.enable(1),a.instancingColor&&o.enable(2),a.instancingMorph&&o.enable(3),a.matcap&&o.enable(4),a.envMap&&o.enable(5),a.normalMapObjectSpace&&o.enable(6),a.normalMapTangentSpace&&o.enable(7),a.clearcoat&&o.enable(8),a.iridescence&&o.enable(9),a.alphaTest&&o.enable(10),a.vertexColors&&o.enable(11),a.vertexAlphas&&o.enable(12),a.vertexUv1s&&o.enable(13),a.vertexUv2s&&o.enable(14),a.vertexUv3s&&o.enable(15),a.vertexTangents&&o.enable(16),a.anisotropy&&o.enable(17),a.alphaHash&&o.enable(18),a.batching&&o.enable(19),a.dispersion&&o.enable(20),a.batchingColor&&o.enable(21),r.push(o.mask),o.disableAll(),a.fog&&o.enable(0),a.useFog&&o.enable(1),a.flatShading&&o.enable(2),a.logarithmicDepthBuffer&&o.enable(3),a.reverseDepthBuffer&&o.enable(4),a.skinning&&o.enable(5),a.morphTargets&&o.enable(6),a.morphNormals&&o.enable(7),a.morphColors&&o.enable(8),a.premultipliedAlpha&&o.enable(9),a.shadowMapEnabled&&o.enable(10),a.doubleSided&&o.enable(11),a.flipSided&&o.enable(12),a.useDepthPacking&&o.enable(13),a.dithering&&o.enable(14),a.transmission&&o.enable(15),a.sheen&&o.enable(16),a.opaque&&o.enable(17),a.pointsUvs&&o.enable(18),a.decodeVideoTexture&&o.enable(19),a.decodeVideoTextureEmissive&&o.enable(20),a.alphaToCoverage&&o.enable(21),r.push(o.mask),s.push(e.outputColorSpace)),s.push(t.customProgramCacheKey),s.join()},getUniforms:function(e){let t,n=f[e.type];if(n){let e=oH[n];t=nx.clone(e.uniforms)}else t=e.uniforms;return t},acquireProgram:function(t,n){let i;for(let e=0,t=c.length;e0?i.push(c):!0===s.transparent?r.push(c):n.push(c)},unshift:function(e,t,s,o,l,u){let c=a(e,t,s,o,l,u);s.transmission>0?i.unshift(c):!0===s.transparent?r.unshift(c):n.unshift(c)},finish:function(){for(let n=t,i=e.length;n1&&n.sort(e||uE),i.length>1&&i.sort(t||uA),r.length>1&&r.sort(t||uA)}}}function uR(){let e=new WeakMap;return{get:function(t,n){let i,r=e.get(t);return void 0===r?(i=new uC,e.set(t,[i])):n>=r.length?(i=new uC,r.push(i)):i=r[n],i},dispose:function(){e=new WeakMap}}}function uP(){let e={};return{get:function(t){let n;if(void 0!==e[t.id])return e[t.id];switch(t.type){case"DirectionalLight":n={direction:new eE,color:new tz};break;case"SpotLight":n={position:new eE,direction:new eE,color:new tz,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new eE,color:new tz,distance:0,decay:0};break;case"HemisphereLight":n={direction:new eE,skyColor:new tz,groundColor:new tz};break;case"RectAreaLight":n={color:new tz,position:new eE,halfWidth:new eE,halfHeight:new eE}}return e[t.id]=n,n}}}let uI=0;function uL(e,t){return 2*!!t.castShadow-2*!!e.castShadow+ +!!t.map-!!e.map}function uN(e){let t,n=new uP,i=(t={},{get:function(e){let n;if(void 0!==t[e.id])return t[e.id];switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let e=0;e<9;e++)r.probe.push(new eE);let a=new eE,s=new e2,o=new e2;return{setup:function(t){let a=0,s=0,o=0;for(let e=0;e<9;e++)r.probe[e].set(0,0,0);let l=0,u=0,c=0,h=0,d=0,p=0,f=0,m=0,g=0,v=0,_=0;t.sort(uL);for(let e=0,y=t.length;e0&&(!0===e.has("OES_texture_float_linear")?(r.rectAreaLTC1=ok.LTC_FLOAT_1,r.rectAreaLTC2=ok.LTC_FLOAT_2):(r.rectAreaLTC1=ok.LTC_HALF_1,r.rectAreaLTC2=ok.LTC_HALF_2)),r.ambient[0]=a,r.ambient[1]=s,r.ambient[2]=o;let y=r.hash;(y.directionalLength!==l||y.pointLength!==u||y.spotLength!==c||y.rectAreaLength!==h||y.hemiLength!==d||y.numDirectionalShadows!==p||y.numPointShadows!==f||y.numSpotShadows!==m||y.numSpotMaps!==g||y.numLightProbes!==_)&&(r.directional.length=l,r.spot.length=c,r.rectArea.length=h,r.point.length=u,r.hemi.length=d,r.directionalShadow.length=p,r.directionalShadowMap.length=p,r.pointShadow.length=f,r.pointShadowMap.length=f,r.spotShadow.length=m,r.spotShadowMap.length=m,r.directionalShadowMatrix.length=p,r.pointShadowMatrix.length=f,r.spotLightMatrix.length=m+g-v,r.spotLightMap.length=g,r.numSpotLightShadowsWithMaps=v,r.numLightProbes=_,y.directionalLength=l,y.pointLength=u,y.spotLength=c,y.rectAreaLength=h,y.hemiLength=d,y.numDirectionalShadows=p,y.numPointShadows=f,y.numSpotShadows=m,y.numSpotMaps=g,y.numLightProbes=_,r.version=uI++)},setupView:function(e,t){let n=0,i=0,l=0,u=0,c=0,h=t.matrixWorldInverse;for(let t=0,d=e.length;t=a.length?(r=new uU(e),a.push(r)):r=a[i],r},dispose:function(){t=new WeakMap}}}function uO(e,t,n){let i=new iS,r=new Y,a=new Y,s=new e_,o=new av({depthPacking:3201}),l=new a_,u={},c=n.maxTextureSize,h={0:1,1:0,2:2},d=new nb({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Y},radius:{value:4}},vertexShader:"void main() {\n gl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n const float samples = float( VSM_SAMPLES );\n float mean = 0.0;\n float squared_mean = 0.0;\n float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n float uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n for ( float i = 0.0; i < samples; i ++ ) {\n float uvOffset = uvStart + i * uvStride;\n #ifdef HORIZONTAL_PASS\n vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n mean += distribution.x;\n squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n #else\n float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n mean += depth;\n squared_mean += depth * depth;\n #endif\n }\n mean = mean / samples;\n squared_mean = squared_mean / samples;\n float std_dev = sqrt( squared_mean - mean * mean );\n gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),p=d.clone();p.defines.HORIZONTAL_PASS=1;let f=new nn;f.setAttribute("position",new tZ(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new nf(f,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1;let v=this.type;function _(t,n,i,r){let a=null,s=!0===i.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==s)a=s;else if(a=!0===i.isPointLight?l:o,e.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){let e=a.uuid,t=n.uuid,i=u[e];void 0===i&&(i={},u[e]=i);let r=i[t];void 0===r&&(r=a.clone(),i[t]=r,n.addEventListener("dispose",y)),a=r}return a.visible=n.visible,a.wireframe=n.wireframe,3===r?a.side=null!==n.shadowSide?n.shadowSide:n.side:a.side=null!==n.shadowSide?n.shadowSide:h[n.side],a.alphaMap=n.alphaMap,a.alphaTest=n.alphaTest,a.map=n.map,a.clipShadows=n.clipShadows,a.clippingPlanes=n.clippingPlanes,a.clipIntersection=n.clipIntersection,a.displacementMap=n.displacementMap,a.displacementScale=n.displacementScale,a.displacementBias=n.displacementBias,a.wireframeLinewidth=n.wireframeLinewidth,a.linewidth=n.linewidth,!0===i.isPointLight&&!0===a.isMeshDistanceMaterial&&(e.properties.get(a).light=i),a}function y(e){for(let t in e.target.removeEventListener("dispose",y),u){let n=u[t],i=e.target.uuid;i in n&&(n[i].dispose(),delete n[i])}}this.render=function(n,o,l){if(!1===g.enabled||!1===g.autoUpdate&&!1===g.needsUpdate||0===n.length)return;let u=e.getRenderTarget(),h=e.getActiveCubeFace(),f=e.getActiveMipmapLevel(),y=e.state;y.setBlending(0),y.buffers.color.setClear(1,1,1,1),y.buffers.depth.setTest(!0),y.setScissorTest(!1);let x=3!==v&&3===this.type,b=3===v&&3!==this.type;for(let u=0,h=n.length;uc||r.y>c)&&(r.x>c&&(a.x=Math.floor(c/g.x),r.x=a.x*g.x,f.mapSize.x=a.x),r.y>c&&(a.y=Math.floor(c/g.y),r.y=a.y*g.y,f.mapSize.y=a.y)),null===f.map||!0===x||!0===b){let e=3!==this.type?{minFilter:1003,magFilter:1003}:{};null!==f.map&&f.map.dispose(),f.map=new ex(r.x,r.y,e),f.map.texture.name=h.name+".shadowMap",f.camera.updateProjectionMatrix()}e.setRenderTarget(f.map),e.clear();let v=f.getViewportCount();for(let n=0;n=1:-1!==P.indexOf("OpenGL ES")&&(R=parseFloat(/^OpenGL ES (\d)/.exec(P)[1])>=2);let I=null,L={},N=e.getParameter(e.SCISSOR_BOX),U=e.getParameter(e.VIEWPORT),D=new e_().fromArray(N),O=new e_().fromArray(U);function F(t,n,i,r){let a=new Uint8Array(4),s=e.createTexture();e.bindTexture(t,s),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let s=0;stypeof navigator&&/OculusBrowser/g.test(navigator.userAgent),c=new Y,h=new WeakMap,d=new WeakMap,p=!1;try{p="u">typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(e){}function f(e,t){return p?new OffscreenCanvas(e,t):ee("canvas")}function m(e,t,n){let i=1,r=G(e);if((r.width>n||r.height>n)&&(i=n/Math.max(r.width,r.height)),i<1)if("u">typeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap||"u">typeof VideoFrame&&e instanceof VideoFrame){let n=Math.floor(i*r.width),a=Math.floor(i*r.height);void 0===o&&(o=f(n,a));let s=t?f(n,a):o;return s.width=n,s.height=a,s.getContext("2d").drawImage(e,0,0,n,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+r.width+"x"+r.height+") to ("+n+"x"+a+")."),s}else"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+r.width+"x"+r.height+").");return e}function g(e){return e.generateMipmaps}function v(t){e.generateMipmap(t)}function _(n,i,r,a,s=!1){if(null!==n){if(void 0!==e[n])return e[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let o=i;if(i===e.RED&&(r===e.FLOAT&&(o=e.R32F),r===e.HALF_FLOAT&&(o=e.R16F),r===e.UNSIGNED_BYTE&&(o=e.R8)),i===e.RED_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.R8UI),r===e.UNSIGNED_SHORT&&(o=e.R16UI),r===e.UNSIGNED_INT&&(o=e.R32UI),r===e.BYTE&&(o=e.R8I),r===e.SHORT&&(o=e.R16I),r===e.INT&&(o=e.R32I)),i===e.RG&&(r===e.FLOAT&&(o=e.RG32F),r===e.HALF_FLOAT&&(o=e.RG16F),r===e.UNSIGNED_BYTE&&(o=e.RG8)),i===e.RG_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RG8UI),r===e.UNSIGNED_SHORT&&(o=e.RG16UI),r===e.UNSIGNED_INT&&(o=e.RG32UI),r===e.BYTE&&(o=e.RG8I),r===e.SHORT&&(o=e.RG16I),r===e.INT&&(o=e.RG32I)),i===e.RGB_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RGB8UI),r===e.UNSIGNED_SHORT&&(o=e.RGB16UI),r===e.UNSIGNED_INT&&(o=e.RGB32UI),r===e.BYTE&&(o=e.RGB8I),r===e.SHORT&&(o=e.RGB16I),r===e.INT&&(o=e.RGB32I)),i===e.RGBA_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RGBA8UI),r===e.UNSIGNED_SHORT&&(o=e.RGBA16UI),r===e.UNSIGNED_INT&&(o=e.RGBA32UI),r===e.BYTE&&(o=e.RGBA8I),r===e.SHORT&&(o=e.RGBA16I),r===e.INT&&(o=e.RGBA32I)),i===e.RGB&&r===e.UNSIGNED_INT_5_9_9_9_REV&&(o=e.RGB9_E5),i===e.RGBA){let t=s?N:eu.getTransfer(a);r===e.FLOAT&&(o=e.RGBA32F),r===e.HALF_FLOAT&&(o=e.RGBA16F),r===e.UNSIGNED_BYTE&&(o=t===U?e.SRGB8_ALPHA8:e.RGBA8),r===e.UNSIGNED_SHORT_4_4_4_4&&(o=e.RGBA4),r===e.UNSIGNED_SHORT_5_5_5_1&&(o=e.RGB5_A1)}return(o===e.R16F||o===e.R32F||o===e.RG16F||o===e.RG32F||o===e.RGBA16F||o===e.RGBA32F)&&t.get("EXT_color_buffer_float"),o}function y(t,n){let i;return t?null===n||1014===n||1020===n?i=e.DEPTH24_STENCIL8:1015===n?i=e.DEPTH32F_STENCIL8:1012===n&&(i=e.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===n||1014===n||1020===n?i=e.DEPTH_COMPONENT24:1015===n?i=e.DEPTH_COMPONENT32F:1012===n&&(i=e.DEPTH_COMPONENT16),i}function x(e,t){return!0===g(e)||e.isFramebufferTexture&&1003!==e.minFilter&&1006!==e.minFilter?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function b(e){let t=e.target;t.removeEventListener("dispose",b),function(e){let t=i.get(e);if(void 0===t.__webglInit)return;let n=e.source,r=d.get(n);if(r){let i=r[t.__cacheKey];i.usedTimes--,0===i.usedTimes&&M(e),0===Object.keys(r).length&&d.delete(n)}i.remove(e)}(t),t.isVideoTexture&&h.delete(t)}function S(t){let n=t.target;n.removeEventListener("dispose",S),function(t){let n=i.get(t);if(t.depthTexture&&(t.depthTexture.dispose(),i.remove(t.depthTexture)),t.isWebGLCubeRenderTarget)for(let t=0;t<6;t++){if(Array.isArray(n.__webglFramebuffer[t]))for(let i=0;i0&&l.__version!==t.version){let e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void I(l,t,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(e.TEXTURE_2D,l.__webglTexture,e.TEXTURE0+r)}let E={1e3:e.REPEAT,1001:e.CLAMP_TO_EDGE,1002:e.MIRRORED_REPEAT},A={1003:e.NEAREST,1004:e.NEAREST_MIPMAP_NEAREST,1005:e.NEAREST_MIPMAP_LINEAR,1006:e.LINEAR,1007:e.LINEAR_MIPMAP_NEAREST,1008:e.LINEAR_MIPMAP_LINEAR},C={512:e.NEVER,519:e.ALWAYS,513:e.LESS,515:e.LEQUAL,514:e.EQUAL,518:e.GEQUAL,516:e.GREATER,517:e.NOTEQUAL};function R(n,a){if((1015===a.type&&!1===t.has("OES_texture_float_linear")&&(1006===a.magFilter||1007===a.magFilter||1005===a.magFilter||1008===a.magFilter||1006===a.minFilter||1007===a.minFilter||1005===a.minFilter||1008===a.minFilter)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),e.texParameteri(n,e.TEXTURE_WRAP_S,E[a.wrapS]),e.texParameteri(n,e.TEXTURE_WRAP_T,E[a.wrapT]),(n===e.TEXTURE_3D||n===e.TEXTURE_2D_ARRAY)&&e.texParameteri(n,e.TEXTURE_WRAP_R,E[a.wrapR]),e.texParameteri(n,e.TEXTURE_MAG_FILTER,A[a.magFilter]),e.texParameteri(n,e.TEXTURE_MIN_FILTER,A[a.minFilter]),a.compareFunction&&(e.texParameteri(n,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE),e.texParameteri(n,e.TEXTURE_COMPARE_FUNC,C[a.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic"))&&1003!==a.magFilter&&(1005===a.minFilter||1008===a.minFilter)&&(1015!==a.type||!1!==t.has("OES_texture_float_linear"))&&(a.anisotropy>1||i.get(a).__currentAnisotropy)){let s=t.get("EXT_texture_filter_anisotropic");e.texParameterf(n,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),i.get(a).__currentAnisotropy=a.anisotropy}}function P(t,n){let i,r=!1;void 0===t.__webglInit&&(t.__webglInit=!0,n.addEventListener("dispose",b));let a=n.source,o=d.get(a);void 0===o&&(o={},d.set(a,o));let l=((i=[]).push(n.wrapS),i.push(n.wrapT),i.push(n.wrapR||0),i.push(n.magFilter),i.push(n.minFilter),i.push(n.anisotropy),i.push(n.internalFormat),i.push(n.format),i.push(n.type),i.push(n.generateMipmaps),i.push(n.premultiplyAlpha),i.push(n.flipY),i.push(n.unpackAlignment),i.push(n.colorSpace),i.join());if(l!==t.__cacheKey){void 0===o[l]&&(o[l]={texture:e.createTexture(),usedTimes:0},s.memory.textures++,r=!0),o[l].usedTimes++;let i=o[t.__cacheKey];void 0!==i&&(o[t.__cacheKey].usedTimes--,0===i.usedTimes&&M(n)),t.__cacheKey=l,t.__webglTexture=o[l].texture}return r}function I(t,s,o){let l=e.TEXTURE_2D;(s.isDataArrayTexture||s.isCompressedArrayTexture)&&(l=e.TEXTURE_2D_ARRAY),s.isData3DTexture&&(l=e.TEXTURE_3D);let u=P(t,s),c=s.source;n.bindTexture(l,t.__webglTexture,e.TEXTURE0+o);let h=i.get(c);if(c.version!==h.__version||!0===u){let t;n.activeTexture(e.TEXTURE0+o);let i=eu.getPrimaries(eu.workingColorSpace),d=""===s.colorSpace?null:eu.getPrimaries(s.colorSpace),p=""===s.colorSpace||i===d?e.NONE:e.BROWSER_DEFAULT_WEBGL;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,s.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,s.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,p);let f=m(s.image,!1,r.maxTextureSize);f=V(s,f);let b=a.convert(s.format,s.colorSpace),S=a.convert(s.type),M=_(s.internalFormat,b,S,s.colorSpace,s.isVideoTexture);R(l,s);let T=s.mipmaps,w=!0!==s.isVideoTexture,E=void 0===h.__version||!0===u,A=c.dataReady,C=x(s,f);if(s.isDepthTexture)M=y(1027===s.format,s.type),E&&(w?n.texStorage2D(e.TEXTURE_2D,1,M,f.width,f.height):n.texImage2D(e.TEXTURE_2D,0,M,f.width,f.height,0,b,S,null));else if(s.isDataTexture)if(T.length>0){w&&E&&n.texStorage2D(e.TEXTURE_2D,C,M,T[0].width,T[0].height);for(let i=0,r=T.length;i0){let r=oU(t.width,t.height,s.format,s.type);for(let a of s.layerUpdates){let s=t.data.subarray(a*r/t.data.BYTES_PER_ELEMENT,(a+1)*r/t.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,a,t.width,t.height,1,b,s)}s.clearLayerUpdates()}else n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,0,t.width,t.height,f.depth,b,t.data)}else n.compressedTexImage3D(e.TEXTURE_2D_ARRAY,i,M,t.width,t.height,f.depth,0,t.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else w?A&&n.texSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,0,t.width,t.height,f.depth,b,S,t.data):n.texImage3D(e.TEXTURE_2D_ARRAY,i,M,t.width,t.height,f.depth,0,b,S,t.data)}else{w&&E&&n.texStorage2D(e.TEXTURE_2D,C,M,T[0].width,T[0].height);for(let i=0,r=T.length;i0){let t=oU(f.width,f.height,s.format,s.type);for(let i of s.layerUpdates){let r=f.data.subarray(i*t/f.data.BYTES_PER_ELEMENT,(i+1)*t/f.data.BYTES_PER_ELEMENT);n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,i,f.width,f.height,1,b,S,r)}s.clearLayerUpdates()}else n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,0,f.width,f.height,f.depth,b,S,f.data)}else n.texImage3D(e.TEXTURE_2D_ARRAY,0,M,f.width,f.height,f.depth,0,b,S,f.data);else if(s.isData3DTexture)w?(E&&n.texStorage3D(e.TEXTURE_3D,C,M,f.width,f.height,f.depth),A&&n.texSubImage3D(e.TEXTURE_3D,0,0,0,0,f.width,f.height,f.depth,b,S,f.data)):n.texImage3D(e.TEXTURE_3D,0,M,f.width,f.height,f.depth,0,b,S,f.data);else if(s.isFramebufferTexture){if(E)if(w)n.texStorage2D(e.TEXTURE_2D,C,M,f.width,f.height);else{let t=f.width,i=f.height;for(let r=0;r>=1,i>>=1}}else if(T.length>0){if(w&&E){let t=G(T[0]);n.texStorage2D(e.TEXTURE_2D,C,M,t.width,t.height)}for(let i=0,r=T.length;i>c),i=Math.max(1,r.height>>c);u===e.TEXTURE_3D||u===e.TEXTURE_2D_ARRAY?n.texImage3D(u,c,p,t,i,r.depth,0,h,d,null):n.texImage2D(u,c,p,t,i,0,h,d,null)}n.bindFramebuffer(e.FRAMEBUFFER,t),H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,o,u,m.__webglTexture,0,k(r)):(u===e.TEXTURE_2D||u>=e.TEXTURE_CUBE_MAP_POSITIVE_X&&u<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,u,m.__webglTexture,c),n.bindFramebuffer(e.FRAMEBUFFER,null)}function O(t,n,i){if(e.bindRenderbuffer(e.RENDERBUFFER,t),n.depthBuffer){let r=n.depthTexture,a=r&&r.isDepthTexture?r.type:null,s=y(n.stencilBuffer,a),o=n.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,u=k(n);H(n)?l.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,u,s,n.width,n.height):i?e.renderbufferStorageMultisample(e.RENDERBUFFER,u,s,n.width,n.height):e.renderbufferStorage(e.RENDERBUFFER,s,n.width,n.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,o,e.RENDERBUFFER,t)}else{let t=n.textures;for(let r=0;r{delete r.__boundDepthTexture,delete r.__depthDisposeCallback,e.removeEventListener("dispose",t)};e.addEventListener("dispose",t),r.__depthDisposeCallback=t}r.__boundDepthTexture=e}if(t.depthTexture&&!r.__autoAllocateDepthBuffer){if(a)throw Error("target.depthTexture not supported in Cube render targets");!function(t,r){if(r&&r.isWebGLCubeRenderTarget)throw Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(e.FRAMEBUFFER,t),!(r.depthTexture&&r.depthTexture.isDepthTexture))throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");let a=i.get(r.depthTexture);a.__renderTarget=r,a.__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),w(r.depthTexture,0);let s=a.__webglTexture,o=k(r);if(1026===r.depthTexture.format)H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,s,0,o):e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,s,0);else if(1027===r.depthTexture.format)H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,s,0,o):e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,s,0);else throw Error("Unknown depthTexture format")}(r.__webglFramebuffer,t)}else if(a){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)if(n.bindFramebuffer(e.FRAMEBUFFER,r.__webglFramebuffer[i]),void 0===r.__webglDepthbuffer[i])r.__webglDepthbuffer[i]=e.createRenderbuffer(),O(r.__webglDepthbuffer[i],t,!1);else{let n=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,a=r.__webglDepthbuffer[i];e.bindRenderbuffer(e.RENDERBUFFER,a),e.framebufferRenderbuffer(e.FRAMEBUFFER,n,e.RENDERBUFFER,a)}}else if(n.bindFramebuffer(e.FRAMEBUFFER,r.__webglFramebuffer),void 0===r.__webglDepthbuffer)r.__webglDepthbuffer=e.createRenderbuffer(),O(r.__webglDepthbuffer,t,!1);else{let n=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,i=r.__webglDepthbuffer;e.bindRenderbuffer(e.RENDERBUFFER,i),e.framebufferRenderbuffer(e.FRAMEBUFFER,n,e.RENDERBUFFER,i)}n.bindFramebuffer(e.FRAMEBUFFER,null)}let z=[],B=[];function k(e){return Math.min(r.maxSamples,e.samples)}function H(e){let n=i.get(e);return e.samples>0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function V(e,t){let n=e.colorSpace,i=e.format,r=e.type;return!0===e.isCompressedTexture||!0===e.isVideoTexture||n!==L&&""!==n&&(eu.getTransfer(n)===U?(1023!==i||1009!==r)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),t}function G(e){return"u">typeof HTMLImageElement&&e instanceof HTMLImageElement?(c.width=e.naturalWidth||e.width,c.height=e.naturalHeight||e.height):"u">typeof VideoFrame&&e instanceof VideoFrame?(c.width=e.displayWidth,c.height=e.displayHeight):(c.width=e.width,c.height=e.height),c}this.allocateTextureUnit=function(){let e=T;return e>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+r.maxTextures),T+=1,e},this.resetTextureUnits=function(){T=0},this.setTexture2D=w,this.setTexture2DArray=function(t,r){let a=i.get(t);t.version>0&&a.__version!==t.version?I(a,t,r):n.bindTexture(e.TEXTURE_2D_ARRAY,a.__webglTexture,e.TEXTURE0+r)},this.setTexture3D=function(t,r){let a=i.get(t);t.version>0&&a.__version!==t.version?I(a,t,r):n.bindTexture(e.TEXTURE_3D,a.__webglTexture,e.TEXTURE0+r)},this.setTextureCube=function(t,s){let o=i.get(t);t.version>0&&o.__version!==t.version?function(t,s,o){if(6!==s.image.length)return;let l=P(t,s),u=s.source;n.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+o);let c=i.get(u);if(u.version!==c.__version||!0===l){let t;n.activeTexture(e.TEXTURE0+o);let i=eu.getPrimaries(eu.workingColorSpace),h=""===s.colorSpace?null:eu.getPrimaries(s.colorSpace),d=""===s.colorSpace||i===h?e.NONE:e.BROWSER_DEFAULT_WEBGL;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,s.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,s.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);let p=s.isCompressedTexture||s.image[0].isCompressedTexture,f=s.image[0]&&s.image[0].isDataTexture,y=[];for(let e=0;e<6;e++)p||f?y[e]=f?s.image[e].image:s.image[e]:y[e]=m(s.image[e],!0,r.maxCubemapSize),y[e]=V(s,y[e]);let b=y[0],S=a.convert(s.format,s.colorSpace),M=a.convert(s.type),T=_(s.internalFormat,S,M,s.colorSpace),w=!0!==s.isVideoTexture,E=void 0===c.__version||!0===l,A=u.dataReady,C=x(s,b);if(R(e.TEXTURE_CUBE_MAP,s),p){w&&E&&n.texStorage2D(e.TEXTURE_CUBE_MAP,C,T,b.width,b.height);for(let i=0;i<6;i++){t=y[i].mipmaps;for(let r=0;r0&&C++;let i=G(y[0]);n.texStorage2D(e.TEXTURE_CUBE_MAP,C,T,i.width,i.height)}for(let i=0;i<6;i++)if(f){w?A&&n.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,0,0,y[i].width,y[i].height,S,M,y[i].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,T,y[i].width,y[i].height,0,S,M,y[i].data);for(let r=0;r1;if(!h&&(void 0===l.__webglTexture&&(l.__webglTexture=e.createTexture()),l.__version=r.version,s.memory.textures++),c){o.__webglFramebuffer=[];for(let t=0;t<6;t++)if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer[t]=[];for(let n=0;n0){o.__webglFramebuffer=[];for(let t=0;t0&&!1===H(t)){o.__webglMultisampledFramebuffer=e.createFramebuffer(),o.__webglColorRenderbuffer=[],n.bindFramebuffer(e.FRAMEBUFFER,o.__webglMultisampledFramebuffer);for(let n=0;n0)for(let i=0;i0)for(let n=0;n0){if(!1===H(t)){let r=t.textures,a=t.width,s=t.height,o=e.COLOR_BUFFER_BIT,l=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,c=i.get(t),h=r.length>1;if(h)for(let t=0;t.025?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&s<=.015&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&null!==(r=t.getPose(e.gripSpace,n))&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1);null!==s&&(null===(i=t.getPose(e.targetRaySpace,n))&&null!==r&&(i=r),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(uH)))}return null!==s&&(s.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==a),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){let n=new i6;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}}let uG=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,uW=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class uj{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,n){if(null===this.texture){let i=new ev;e.properties.get(i).__webglTexture=t.texture,(t.depthNear!=n.depthNear||t.depthFar!=n.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=i}}getMesh(e){if(null!==this.texture&&null===this.mesh){let t=e.cameras[0].viewport,n=new nb({vertexShader:uG,fragmentShader:uW,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new nf(new r9(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class uX extends O{constructor(e,t){super();const n=this;let i=null,r=1,a=null,s="local-floor",o=1,l=null,u=null,c=null,h=null,d=null,p=null;const f=new uj,m=t.getContextAttributes();let g=null,v=null;const _=[],y=[],x=new Y;let b=null;const S=new nE;S.viewport=new e_;const M=new nE;M.viewport=new e_;const T=[S,M],w=new sT;let E=null,A=null;function C(e){let t=y.indexOf(e.inputSource);if(-1===t)return;let n=_[t];void 0!==n&&(n.update(e.inputSource,e.frame,l||a),n.dispatchEvent({type:e.type,data:e.inputSource}))}function R(){i.removeEventListener("select",C),i.removeEventListener("selectstart",C),i.removeEventListener("selectend",C),i.removeEventListener("squeeze",C),i.removeEventListener("squeezestart",C),i.removeEventListener("squeezeend",C),i.removeEventListener("end",R),i.removeEventListener("inputsourceschange",P);for(let e=0;e<_.length;e++){let t=y[e];null!==t&&(y[e]=null,_[e].disconnect(t))}E=null,A=null,f.reset(),e.setRenderTarget(g),d=null,h=null,c=null,i=null,v=null,D.stop(),n.isPresenting=!1,e.setPixelRatio(b),e.setSize(x.width,x.height,!1),n.dispatchEvent({type:"sessionend"})}function P(e){for(let t=0;t=0&&(y[i]=null,_[i].disconnect(n))}for(let t=0;t=y.length){y.push(n),i=e;break}else if(null===y[e]){y[e]=n,i=e;break}if(-1===i)break}let r=_[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getGripSpace()},this.getHand=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){r=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){s=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||a},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==h?h:d},this.getBinding=function(){return c},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(u){if(null!==(i=u)){if(g=e.getRenderTarget(),i.addEventListener("select",C),i.addEventListener("selectstart",C),i.addEventListener("selectend",C),i.addEventListener("squeeze",C),i.addEventListener("squeezestart",C),i.addEventListener("squeezeend",C),i.addEventListener("end",R),i.addEventListener("inputsourceschange",P),!0!==m.xrCompatible&&await t.makeXRCompatible(),b=e.getPixelRatio(),e.getSize(x),void 0===i.renderState.layers){let n={antialias:m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,t,n),i.updateRenderState({baseLayer:d}),e.setPixelRatio(1),e.setSize(d.framebufferWidth,d.framebufferHeight,!1),v=new ex(d.framebufferWidth,d.framebufferHeight,{format:1023,type:1009,colorSpace:e.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,a=null,s=null;m.depth&&(s=m.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,n=m.stencil?1027:1026,a=m.stencil?1020:1014);let o={colorFormat:t.RGBA8,depthFormat:s,scaleFactor:r};h=(c=new XRWebGLBinding(i,t)).createProjectionLayer(o),i.updateRenderState({layers:[h]}),e.setPixelRatio(1),e.setSize(h.textureWidth,h.textureHeight,!1),v=new ex(h.textureWidth,h.textureHeight,{format:1023,type:1009,depthTexture:new ri(h.textureWidth,h.textureHeight,a,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:e.outputColorSpace,samples:4*!!m.antialias,resolveDepthBuffer:!1===h.ignoreDepthValues})}v.isXRRenderTarget=!0,this.setFoveation(o),l=null,a=await i.requestReferenceSpace(s),D.setContext(i),D.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode},this.getDepthTexture=function(){return f.getDepthTexture()};const I=new eE,L=new eE;function N(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){var t,n,r;if(null===i)return;let a=e.near,s=e.far;null!==f.texture&&(f.depthNear>0&&(a=f.depthNear),f.depthFar>0&&(s=f.depthFar)),w.near=M.near=S.near=a,w.far=M.far=S.far=s,(E!==w.near||A!==w.far)&&(i.updateRenderState({depthNear:w.near,depthFar:w.far}),E=w.near,A=w.far),S.layers.mask=2|e.layers.mask,M.layers.mask=4|e.layers.mask,w.layers.mask=S.layers.mask|M.layers.mask;let o=e.parent,l=w.cameras;N(w,o);for(let e=0;e0&&(e.alphaTest.value=i.alphaTest);let r=t.get(i),a=r.envMap,s=r.envMapRotation;a&&(e.envMap.value=a,uq.copy(s),uq.x*=-1,uq.y*=-1,uq.z*=-1,a.isCubeTexture&&!1===a.isRenderTargetTexture&&(uq.y*=-1,uq.z*=-1),e.envMapRotation.value.setFromMatrix4(uY.makeRotationFromEuler(uq)),e.flipEnvMap.value=a.isCubeTexture&&!1===a.isRenderTargetTexture?-1:1,e.reflectivity.value=i.reflectivity,e.ior.value=i.ior,e.refractionRatio.value=i.refractionRatio),i.lightMap&&(e.lightMap.value=i.lightMap,e.lightMapIntensity.value=i.lightMapIntensity,n(i.lightMap,e.lightMapTransform)),i.aoMap&&(e.aoMap.value=i.aoMap,e.aoMapIntensity.value=i.aoMapIntensity,n(i.aoMap,e.aoMapTransform))}return{refreshFogUniforms:function(t,n){n.color.getRGB(t.fogColor.value,ny(e)),n.isFog?(t.fogNear.value=n.near,t.fogFar.value=n.far):n.isFogExp2&&(t.fogDensity.value=n.density)},refreshMaterialUniforms:function(e,r,a,s,o){var l,u,c,h,d,p,f,m,g,v,_,y,x,b,S,M,T,w,E,A,C,R,P;let I;r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(e,r):r.isMeshToonMaterial?(i(e,r),l=e,(u=r).gradientMap&&(l.gradientMap.value=u.gradientMap)):r.isMeshPhongMaterial?(i(e,r),c=e,h=r,c.specular.value.copy(h.specular),c.shininess.value=Math.max(h.shininess,1e-4)):r.isMeshStandardMaterial?(i(e,r),d=e,p=r,d.metalness.value=p.metalness,p.metalnessMap&&(d.metalnessMap.value=p.metalnessMap,n(p.metalnessMap,d.metalnessMapTransform)),d.roughness.value=p.roughness,p.roughnessMap&&(d.roughnessMap.value=p.roughnessMap,n(p.roughnessMap,d.roughnessMapTransform)),p.envMap&&(d.envMapIntensity.value=p.envMapIntensity),r.isMeshPhysicalMaterial&&(f=e,m=r,g=o,f.ior.value=m.ior,m.sheen>0&&(f.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),f.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(f.sheenColorMap.value=m.sheenColorMap,n(m.sheenColorMap,f.sheenColorMapTransform)),m.sheenRoughnessMap&&(f.sheenRoughnessMap.value=m.sheenRoughnessMap,n(m.sheenRoughnessMap,f.sheenRoughnessMapTransform))),m.clearcoat>0&&(f.clearcoat.value=m.clearcoat,f.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(f.clearcoatMap.value=m.clearcoatMap,n(m.clearcoatMap,f.clearcoatMapTransform)),m.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap,n(m.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),m.clearcoatNormalMap&&(f.clearcoatNormalMap.value=m.clearcoatNormalMap,n(m.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),1===m.side&&f.clearcoatNormalScale.value.negate())),m.dispersion>0&&(f.dispersion.value=m.dispersion),m.iridescence>0&&(f.iridescence.value=m.iridescence,f.iridescenceIOR.value=m.iridescenceIOR,f.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(f.iridescenceMap.value=m.iridescenceMap,n(m.iridescenceMap,f.iridescenceMapTransform)),m.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=m.iridescenceThicknessMap,n(m.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),m.transmission>0&&(f.transmission.value=m.transmission,f.transmissionSamplerMap.value=g.texture,f.transmissionSamplerSize.value.set(g.width,g.height),m.transmissionMap&&(f.transmissionMap.value=m.transmissionMap,n(m.transmissionMap,f.transmissionMapTransform)),f.thickness.value=m.thickness,m.thicknessMap&&(f.thicknessMap.value=m.thicknessMap,n(m.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=m.attenuationDistance,f.attenuationColor.value.copy(m.attenuationColor)),m.anisotropy>0&&(f.anisotropyVector.value.set(m.anisotropy*Math.cos(m.anisotropyRotation),m.anisotropy*Math.sin(m.anisotropyRotation)),m.anisotropyMap&&(f.anisotropyMap.value=m.anisotropyMap,n(m.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=m.specularIntensity,f.specularColor.value.copy(m.specularColor),m.specularColorMap&&(f.specularColorMap.value=m.specularColorMap,n(m.specularColorMap,f.specularColorMapTransform)),m.specularIntensityMap&&(f.specularIntensityMap.value=m.specularIntensityMap,n(m.specularIntensityMap,f.specularIntensityMapTransform)))):r.isMeshMatcapMaterial?(i(e,r),v=e,(_=r).matcap&&(v.matcap.value=_.matcap)):r.isMeshDepthMaterial?i(e,r):r.isMeshDistanceMaterial?(i(e,r),y=e,x=r,I=t.get(x).light,y.referencePosition.value.setFromMatrixPosition(I.matrixWorld),y.nearDistance.value=I.shadow.camera.near,y.farDistance.value=I.shadow.camera.far):r.isMeshNormalMaterial?i(e,r):r.isLineBasicMaterial?(b=e,S=r,b.diffuse.value.copy(S.color),b.opacity.value=S.opacity,S.map&&(b.map.value=S.map,n(S.map,b.mapTransform)),r.isLineDashedMaterial&&(M=e,T=r,M.dashSize.value=T.dashSize,M.totalSize.value=T.dashSize+T.gapSize,M.scale.value=T.scale)):r.isPointsMaterial?(w=e,E=r,A=a,C=s,w.diffuse.value.copy(E.color),w.opacity.value=E.opacity,w.size.value=E.size*A,w.scale.value=.5*C,E.map&&(w.map.value=E.map,n(E.map,w.uvTransform)),E.alphaMap&&(w.alphaMap.value=E.alphaMap,n(E.alphaMap,w.alphaMapTransform)),E.alphaTest>0&&(w.alphaTest.value=E.alphaTest)):r.isSpriteMaterial?(R=e,P=r,R.diffuse.value.copy(P.color),R.opacity.value=P.opacity,R.rotation.value=P.rotation,P.map&&(R.map.value=P.map,n(P.map,R.mapTransform)),P.alphaMap&&(R.alphaMap.value=P.alphaMap,n(P.alphaMap,R.alphaMapTransform)),P.alphaTest>0&&(R.alphaTest.value=P.alphaTest)):r.isShadowMaterial?(e.color.value.copy(r.color),e.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function uJ(e,t,n,i){let r={},a={},s=[],o=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS);function l(e){let t={boundary:0,storage:0};return"number"==typeof e||"boolean"==typeof e?(t.boundary=4,t.storage=4):e.isVector2?(t.boundary=8,t.storage=8):e.isVector3||e.isColor?(t.boundary=16,t.storage=12):e.isVector4?(t.boundary=16,t.storage=16):e.isMatrix3?(t.boundary=48,t.storage=48):e.isMatrix4?(t.boundary=64,t.storage=64):e.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",e),t}function u(t){let n=t.target;n.removeEventListener("dispose",u);let i=s.indexOf(n.__bindingPointIndex);s.splice(i,1),e.deleteBuffer(r[n.id]),delete r[n.id],delete a[n.id]}return{bind:function(e,t){let n=t.program;i.uniformBlockBinding(e,n)},update:function(n,c){var h;let d,p,f,m,g=r[n.id];void 0===g&&(function(e){let t=e.uniforms,n=0;for(let e=0,i=t.length;e0&&(n+=16-i),e.__size=n,e.__cache={}}(n),(h=n).__bindingPointIndex=d=function(){for(let e=0;etypeof WebGLRenderingContext&&A instanceof WebGLRenderingContext)throw Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");t=A.getContextAttributes().alpha}else t=P;const B=new Uint32Array(4),k=new Int32Array(4);let H=null,V=null;const G=[],W=[];this.domElement=E,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=I,this.toneMapping=0,this.toneMappingExposure=1;const j=this;let X=!1,q=0,Y=0,Z=null,J=-1,K=null;const $=new e_,Q=new e_;let ee=null;const en=new tz(0);let eo=0,el=E.width,ec=E.height,eh=1,ed=null,ep=null;const ef=new e_(0,0,el,ec),em=new e_(0,0,el,ec);let eg=!1;const ev=new iS;let ey=!1,eb=!1;const eS=new e2,eM=new e2,eT=new eE,ew=new e_,eA={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let eC=!1;function eR(){return null===Z?eh:1}let eP=A;function eI(e,t){return E.getContext(e,t)}try{if("setAttribute"in E&&E.setAttribute("data-engine","three.js r171"),E.addEventListener("webglcontextlost",eU,!1),E.addEventListener("webglcontextrestored",eD,!1),E.addEventListener("webglcontextcreationerror",eO,!1),null===eP){const e="webgl2";if(eP=eI(e,{alpha:!0,depth:C,stencil:R,antialias:N,premultipliedAlpha:U,preserveDrawingBuffer:D,powerPreference:O,failIfMajorPerformanceCaveat:F}),null===eP)if(eI(e))throw Error("Error creating WebGL context with your selected attributes.");else throw Error("Error creating WebGL context.")}}catch(e){throw console.error("THREE.WebGLRenderer: "+e.message),e}function eL(){(n=new lr(eP)).init(),M=new uk(eP,n),i=new oY(eP,n,e,M),r=new uz(eP,n),i.reverseDepthBuffer&&z&&r.buffers.depth.setReversed(!0),a=new lo(eP),s=new uw,o=new uB(eP,n,r,s,i,M,a),l=new oJ(j),u=new li(j),c=new oz(eP),T=new oX(eP,c),h=new la(eP,c,a,T),d=new lu(eP,h,c,a),x=new ll(eP,i,o),v=new oZ(s),p=new uT(j,l,u,n,i,T,v),f=new uZ(j,s),m=new uR,g=new uD(n),y=new oj(j,l,u,r,d,t,U),_=new uO(j,d,i),w=new uJ(eP,a,i,r),b=new oq(eP,n,a),S=new ls(eP,n,a),a.programs=p.programs,j.capabilities=i,j.extensions=n,j.properties=s,j.renderLists=m,j.shadowMap=_,j.state=r,j.info=a}eL();const eN=new uX(j,eP);function eU(e){e.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),X=!0}function eD(){console.log("THREE.WebGLRenderer: Context Restored."),X=!1;let e=a.autoReset,t=_.enabled,n=_.autoUpdate,i=_.needsUpdate,r=_.type;eL(),a.autoReset=e,_.enabled=t,_.autoUpdate=n,_.needsUpdate=i,_.type=r}function eO(e){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",e.statusMessage)}function eF(e){var t,n;let i,r=e.target;r.removeEventListener("dispose",eF),n=t=r,void 0!==(i=s.get(n).programs)&&(i.forEach(function(e){p.releaseProgram(e)}),n.isShaderMaterial&&p.releaseShaderCache(n)),s.remove(t)}function ez(e,t,n){!0===e.transparent&&2===e.side&&!1===e.forceSinglePass?(e.side=1,e.needsUpdate=!0,eY(e,t,n),e.side=0,e.needsUpdate=!0,eY(e,t,n),e.side=2):eY(e,t,n)}this.xr=eN,this.getContext=function(){return eP},this.getContextAttributes=function(){return eP.getContextAttributes()},this.forceContextLoss=function(){let e=n.get("WEBGL_lose_context");e&&e.loseContext()},this.forceContextRestore=function(){let e=n.get("WEBGL_lose_context");e&&e.restoreContext()},this.getPixelRatio=function(){return eh},this.setPixelRatio=function(e){void 0!==e&&(eh=e,this.setSize(el,ec,!1))},this.getSize=function(e){return e.set(el,ec)},this.setSize=function(e,t,n=!0){eN.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(el=e,ec=t,E.width=Math.floor(e*eh),E.height=Math.floor(t*eh),!0===n&&(E.style.width=e+"px",E.style.height=t+"px"),this.setViewport(0,0,e,t))},this.getDrawingBufferSize=function(e){return e.set(el*eh,ec*eh).floor()},this.setDrawingBufferSize=function(e,t,n){el=e,ec=t,eh=n,E.width=Math.floor(e*n),E.height=Math.floor(t*n),this.setViewport(0,0,e,t)},this.getCurrentViewport=function(e){return e.copy($)},this.getViewport=function(e){return e.copy(ef)},this.setViewport=function(e,t,n,i){e.isVector4?ef.set(e.x,e.y,e.z,e.w):ef.set(e,t,n,i),r.viewport($.copy(ef).multiplyScalar(eh).round())},this.getScissor=function(e){return e.copy(em)},this.setScissor=function(e,t,n,i){e.isVector4?em.set(e.x,e.y,e.z,e.w):em.set(e,t,n,i),r.scissor(Q.copy(em).multiplyScalar(eh).round())},this.getScissorTest=function(){return eg},this.setScissorTest=function(e){r.setScissorTest(eg=e)},this.setOpaqueSort=function(e){ed=e},this.setTransparentSort=function(e){ep=e},this.getClearColor=function(e){return e.copy(y.getClearColor())},this.setClearColor=function(){y.setClearColor.apply(y,arguments)},this.getClearAlpha=function(){return y.getClearAlpha()},this.setClearAlpha=function(){y.setClearAlpha.apply(y,arguments)},this.clear=function(e=!0,t=!0,n=!0){let i=0;if(e){let e=!1;if(null!==Z){let t=Z.texture.format;e=1033===t||1031===t||1029===t}if(e){let e=Z.texture.type,t=1009===e||1014===e||1012===e||1020===e||1017===e||1018===e,n=y.getClearColor(),i=y.getClearAlpha(),r=n.r,a=n.g,s=n.b;t?(B[0]=r,B[1]=a,B[2]=s,B[3]=i,eP.clearBufferuiv(eP.COLOR,0,B)):(k[0]=r,k[1]=a,k[2]=s,k[3]=i,eP.clearBufferiv(eP.COLOR,0,k))}else i|=eP.COLOR_BUFFER_BIT}t&&(i|=eP.DEPTH_BUFFER_BIT),n&&(i|=eP.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(0xffffffff)),eP.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){E.removeEventListener("webglcontextlost",eU,!1),E.removeEventListener("webglcontextrestored",eD,!1),E.removeEventListener("webglcontextcreationerror",eO,!1),y.dispose(),m.dispose(),g.dispose(),s.dispose(),l.dispose(),u.dispose(),d.dispose(),T.dispose(),w.dispose(),p.dispose(),eN.dispose(),eN.removeEventListener("sessionstart",ek),eN.removeEventListener("sessionend",eH),eV.stop()},this.renderBufferDirect=function(e,t,a,d,p,m){let g;null===t&&(t=eA);let _=p.isMesh&&0>p.matrixWorld.determinant(),y=function(e,t,n,a,c){var h,d;!0!==t.isScene&&(t=eA),o.resetTextureUnits();let p=t.fog,m=a.isMeshStandardMaterial?t.environment:null,g=null===Z?j.outputColorSpace:!0===Z.isXRRenderTarget?Z.texture.colorSpace:L,_=(a.isMeshStandardMaterial?u:l).get(a.envMap||m),y=!0===a.vertexColors&&!!n.attributes.color&&4===n.attributes.color.itemSize,b=!!n.attributes.tangent&&(!!a.normalMap||a.anisotropy>0),S=!!n.morphAttributes.position,M=!!n.morphAttributes.normal,T=!!n.morphAttributes.color,E=0;a.toneMapped&&(null===Z||!0===Z.isXRRenderTarget)&&(E=j.toneMapping);let A=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,C=void 0!==A?A.length:0,R=s.get(a),P=V.state.lights;if(!0===ey&&(!0===eb||e!==K)){let t=e===K&&a.id===J;v.setState(a,e,t)}let I=!1;a.version===R.__version?R.needsLights&&R.lightsStateVersion!==P.state.version||R.outputColorSpace!==g||c.isBatchedMesh&&!1===R.batching?I=!0:c.isBatchedMesh||!0!==R.batching?c.isBatchedMesh&&!0===R.batchingColor&&null===c.colorTexture||c.isBatchedMesh&&!1===R.batchingColor&&null!==c.colorTexture||c.isInstancedMesh&&!1===R.instancing?I=!0:c.isInstancedMesh||!0!==R.instancing?c.isSkinnedMesh&&!1===R.skinning?I=!0:c.isSkinnedMesh||!0!==R.skinning?c.isInstancedMesh&&!0===R.instancingColor&&null===c.instanceColor||c.isInstancedMesh&&!1===R.instancingColor&&null!==c.instanceColor||c.isInstancedMesh&&!0===R.instancingMorph&&null===c.morphTexture||c.isInstancedMesh&&!1===R.instancingMorph&&null!==c.morphTexture||R.envMap!==_||!0===a.fog&&R.fog!==p||void 0!==R.numClippingPlanes&&(R.numClippingPlanes!==v.numPlanes||R.numIntersection!==v.numIntersection)||R.vertexAlphas!==y||R.vertexTangents!==b||R.morphTargets!==S||R.morphNormals!==M||R.morphColors!==T||R.toneMapping!==E?I=!0:R.morphTargetsCount!==C&&(I=!0):I=!0:I=!0:I=!0:(I=!0,R.__version=a.version);let N=R.currentProgram;!0===I&&(N=eY(a,t,c));let U=!1,D=!1,O=!1,F=N.getUniforms(),z=R.uniforms;if(r.useProgram(N.program)&&(U=!0,D=!0,O=!0),a.id!==J&&(J=a.id,D=!0),U||K!==e){r.buffers.depth.getReversed()?(eS.copy(e.projectionMatrix),ea(eS),es(eS),F.setValue(eP,"projectionMatrix",eS)):F.setValue(eP,"projectionMatrix",e.projectionMatrix),F.setValue(eP,"viewMatrix",e.matrixWorldInverse);let t=F.map.cameraPosition;void 0!==t&&t.setValue(eP,eT.setFromMatrixPosition(e.matrixWorld)),i.logarithmicDepthBuffer&&F.setValue(eP,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),(a.isMeshPhongMaterial||a.isMeshToonMaterial||a.isMeshLambertMaterial||a.isMeshBasicMaterial||a.isMeshStandardMaterial||a.isShaderMaterial)&&F.setValue(eP,"isOrthographic",!0===e.isOrthographicCamera),K!==e&&(K=e,D=!0,O=!0)}if(c.isSkinnedMesh){F.setOptional(eP,c,"bindMatrix"),F.setOptional(eP,c,"bindMatrixInverse");let e=c.skeleton;e&&(null===e.boneTexture&&e.computeBoneTexture(),F.setValue(eP,"boneTexture",e.boneTexture,o))}c.isBatchedMesh&&(F.setOptional(eP,c,"batchingTexture"),F.setValue(eP,"batchingTexture",c._matricesTexture,o),F.setOptional(eP,c,"batchingIdTexture"),F.setValue(eP,"batchingIdTexture",c._indirectTexture,o),F.setOptional(eP,c,"batchingColorTexture"),null!==c._colorsTexture&&F.setValue(eP,"batchingColorTexture",c._colorsTexture,o));let B=n.morphAttributes;if((void 0!==B.position||void 0!==B.normal||void 0!==B.color)&&x.update(c,n,N),(D||R.receiveShadow!==c.receiveShadow)&&(R.receiveShadow=c.receiveShadow,F.setValue(eP,"receiveShadow",c.receiveShadow)),a.isMeshGouraudMaterial&&null!==a.envMap&&(z.envMap.value=_,z.flipEnvMap.value=_.isCubeTexture&&!1===_.isRenderTargetTexture?-1:1),a.isMeshStandardMaterial&&null===a.envMap&&null!==t.environment&&(z.envMapIntensity.value=t.environmentIntensity),D&&(F.setValue(eP,"toneMappingExposure",j.toneMappingExposure),R.needsLights&&(h=z,d=O,h.ambientLightColor.needsUpdate=d,h.lightProbe.needsUpdate=d,h.directionalLights.needsUpdate=d,h.directionalLightShadows.needsUpdate=d,h.pointLights.needsUpdate=d,h.pointLightShadows.needsUpdate=d,h.spotLights.needsUpdate=d,h.spotLightShadows.needsUpdate=d,h.rectAreaLights.needsUpdate=d,h.hemisphereLights.needsUpdate=d),p&&!0===a.fog&&f.refreshFogUniforms(z,p),f.refreshMaterialUniforms(z,a,eh,ec,V.state.transmissionRenderTarget[e.id]),ui.upload(eP,eZ(R),z,o)),a.isShaderMaterial&&!0===a.uniformsNeedUpdate&&(ui.upload(eP,eZ(R),z,o),a.uniformsNeedUpdate=!1),a.isSpriteMaterial&&F.setValue(eP,"center",c.center),F.setValue(eP,"modelViewMatrix",c.modelViewMatrix),F.setValue(eP,"normalMatrix",c.normalMatrix),F.setValue(eP,"modelMatrix",c.matrixWorld),a.isShaderMaterial||a.isRawShaderMaterial){let e=a.uniformsGroups;for(let t=0,n=e.length;t{function i(){(r.forEach(function(e){s.get(e).currentProgram.isReady()&&r.delete(e)}),0===r.size)?t(e):setTimeout(i,10)}null!==n.get("KHR_parallel_shader_compile")?i():setTimeout(i,10)})};let eB=null;function ek(){eV.stop()}function eH(){eV.start()}const eV=new oF;function eG(e,t,n,i){if(!1===e.visible)return;if(e.layers.test(t.layers)){if(e.isGroup)n=e.renderOrder;else if(e.isLOD)!0===e.autoUpdate&&e.update(t);else if(e.isLight)V.pushLight(e),e.castShadow&&V.pushShadow(e);else if(e.isSprite){if(!e.frustumCulled||ev.intersectsSprite(e)){i&&ew.setFromMatrixPosition(e.matrixWorld).applyMatrix4(eM);let t=d.update(e),r=e.material;r.visible&&H.push(e,t,r,n,ew.z,null)}}else if((e.isMesh||e.isLine||e.isPoints)&&(!e.frustumCulled||ev.intersectsObject(e))){let t=d.update(e),r=e.material;if(i&&(void 0!==e.boundingSphere?(null===e.boundingSphere&&e.computeBoundingSphere(),ew.copy(e.boundingSphere.center)):(null===t.boundingSphere&&t.computeBoundingSphere(),ew.copy(t.boundingSphere.center)),ew.applyMatrix4(e.matrixWorld).applyMatrix4(eM)),Array.isArray(r)){let i=t.groups;for(let a=0,s=i.length;a0&&eX(a,t,n),s.length>0&&eX(s,t,n),o.length>0&&eX(o,t,n),r.buffers.depth.setTest(!0),r.buffers.depth.setMask(!0),r.buffers.color.setMask(!0),r.setPolygonOffset(!1)}function ej(e,t,i,r){if(null!==(!0===i.isScene?i.overrideMaterial:null))return;void 0===V.state.transmissionRenderTarget[r.id]&&(V.state.transmissionRenderTarget[r.id]=new ex(1,1,{generateMipmaps:!0,type:n.has("EXT_color_buffer_half_float")||n.has("EXT_color_buffer_float")?1016:1009,minFilter:1008,samples:4,stencilBuffer:R,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:eu.workingColorSpace}));let a=V.state.transmissionRenderTarget[r.id],s=r.viewport||$;a.setSize(s.z,s.w);let l=j.getRenderTarget();j.setRenderTarget(a),j.getClearColor(en),(eo=j.getClearAlpha())<1&&j.setClearColor(0xffffff,.5),j.clear(),eC&&y.render(i);let u=j.toneMapping;j.toneMapping=0;let c=r.viewport;if(void 0!==r.viewport&&(r.viewport=void 0),V.setupLightsView(r),!0===ey&&v.setGlobalState(j.clippingPlanes,r),eX(e,i,r),o.updateMultisampleRenderTarget(a),o.updateRenderTargetMipmap(a),!1===n.has("WEBGL_multisampled_render_to_texture")){let e=!1;for(let n=0,a=t.length;ntypeof self&&eV.setContext(self),this.setAnimationLoop=function(e){eB=e,eN.setAnimationLoop(e),null===e?eV.stop():eV.start()},eN.addEventListener("sessionstart",ek),eN.addEventListener("sessionend",eH),this.render=function(e,t){if(void 0!==t&&!0!==t.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===X)return;if(!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===t.parent&&!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),!0===eN.enabled&&!0===eN.isPresenting&&(!0===eN.cameraAutoUpdate&&eN.updateCamera(t),t=eN.getCamera()),!0===e.isScene&&e.onBeforeRender(j,e,t,Z),(V=g.get(e,W.length)).init(t),W.push(V),eM.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),ev.setFromProjectionMatrix(eM),eb=this.localClippingEnabled,ey=v.init(this.clippingPlanes,eb),(H=m.get(e,G.length)).init(),G.push(H),!0===eN.enabled&&!0===eN.isPresenting){let e=j.xr.getDepthSensingMesh();null!==e&&eG(e,t,-1/0,j.sortObjects)}eG(e,t,0,j.sortObjects),H.finish(),!0===j.sortObjects&&H.sort(ed,ep),(eC=!1===eN.enabled||!1===eN.isPresenting||!1===eN.hasDepthSensing())&&y.addToRenderList(H,e),this.info.render.frame++,!0===ey&&v.beginShadows();let n=V.state.shadowsArray;_.render(n,e,t),!0===ey&&v.endShadows(),!0===this.info.autoReset&&this.info.reset();let i=H.opaque,r=H.transmissive;if(V.setupLights(),t.isArrayCamera){let n=t.cameras;if(r.length>0)for(let t=0,a=n.length;t0&&ej(i,r,e,t),eC&&y.render(e),eW(H,e,t);null!==Z&&(o.updateMultisampleRenderTarget(Z),o.updateRenderTargetMipmap(Z)),!0===e.isScene&&e.onAfterRender(j,e,t),T.resetDefaultState(),J=-1,K=null,W.pop(),W.length>0?(V=W[W.length-1],!0===ey&&v.setGlobalState(j.clippingPlanes,V.state.camera)):V=null,G.pop(),H=G.length>0?G[G.length-1]:null},this.getActiveCubeFace=function(){return q},this.getActiveMipmapLevel=function(){return Y},this.getRenderTarget=function(){return Z},this.setRenderTargetTextures=function(e,t,i){s.get(e.texture).__webglTexture=t,s.get(e.depthTexture).__webglTexture=i;let r=s.get(e);r.__hasExternalTextures=!0,r.__autoAllocateDepthBuffer=void 0===i,r.__autoAllocateDepthBuffer||!0!==n.has("WEBGL_multisampled_render_to_texture")||(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),r.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(e,t){let n=s.get(e);n.__webglFramebuffer=t,n.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,n=0){Z=e,q=t,Y=n;let i=!0,a=null,l=!1,u=!1;if(e){let c=s.get(e);if(void 0!==c.__useDefaultFramebuffer)r.bindFramebuffer(eP.FRAMEBUFFER,null),i=!1;else if(void 0===c.__webglFramebuffer)o.setupRenderTarget(e);else if(c.__hasExternalTextures)o.rebindTextures(e,s.get(e.texture).__webglTexture,s.get(e.depthTexture).__webglTexture);else if(e.depthBuffer){let t=e.depthTexture;if(c.__boundDepthTexture!==t){if(null!==t&&s.has(t)&&(e.width!==t.image.width||e.height!==t.image.height))throw Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");o.setupDepthRenderbuffer(e)}}let h=e.texture;(h.isData3DTexture||h.isDataArrayTexture||h.isCompressedArrayTexture)&&(u=!0);let d=s.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(a=Array.isArray(d[t])?d[t][n]:d[t],l=!0):a=e.samples>0&&!1===o.useMultisampledRTT(e)?s.get(e).__webglMultisampledFramebuffer:Array.isArray(d)?d[n]:d,$.copy(e.viewport),Q.copy(e.scissor),ee=e.scissorTest}else $.copy(ef).multiplyScalar(eh).floor(),Q.copy(em).multiplyScalar(eh).floor(),ee=eg;if(r.bindFramebuffer(eP.FRAMEBUFFER,a)&&i&&r.drawBuffers(e,a),r.viewport($),r.scissor(Q),r.setScissorTest(ee),l){let i=s.get(e.texture);eP.framebufferTexture2D(eP.FRAMEBUFFER,eP.COLOR_ATTACHMENT0,eP.TEXTURE_CUBE_MAP_POSITIVE_X+t,i.__webglTexture,n)}else if(u){let i=s.get(e.texture);eP.framebufferTextureLayer(eP.FRAMEBUFFER,eP.COLOR_ATTACHMENT0,i.__webglTexture,n||0,t||0)}J=-1},this.readRenderTargetPixels=function(e,t,n,a,o,l,u){if(!(e&&e.isWebGLRenderTarget))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let c=s.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==u&&(c=c[u]),c){r.bindFramebuffer(eP.FRAMEBUFFER,c);try{let r=e.texture,s=r.format,u=r.type;if(!i.textureFormatReadable(s))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!i.textureTypeReadable(u))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-a&&n>=0&&n<=e.height-o&&eP.readPixels(t,n,a,o,M.convert(s),M.convert(u),l)}finally{let e=null!==Z?s.get(Z).__webglFramebuffer:null;r.bindFramebuffer(eP.FRAMEBUFFER,e)}}},this.readRenderTargetPixelsAsync=async function(e,t,n,a,o,l,u){if(!(e&&e.isWebGLRenderTarget))throw Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let c=s.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==u&&(c=c[u]),c){let u=e.texture,h=u.format,d=u.type;if(!i.textureFormatReadable(h))throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!i.textureTypeReadable(d))throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(t>=0&&t<=e.width-a&&n>=0&&n<=e.height-o){r.bindFramebuffer(eP.FRAMEBUFFER,c);let e=eP.createBuffer();eP.bindBuffer(eP.PIXEL_PACK_BUFFER,e),eP.bufferData(eP.PIXEL_PACK_BUFFER,l.byteLength,eP.STREAM_READ),eP.readPixels(t,n,a,o,M.convert(h),M.convert(d),0);let i=null!==Z?s.get(Z).__webglFramebuffer:null;r.bindFramebuffer(eP.FRAMEBUFFER,i);let u=eP.fenceSync(eP.SYNC_GPU_COMMANDS_COMPLETE,0);return eP.flush(),await er(eP,u,4),eP.bindBuffer(eP.PIXEL_PACK_BUFFER,e),eP.getBufferSubData(eP.PIXEL_PACK_BUFFER,0,l),eP.deleteBuffer(e),eP.deleteSync(u),l}throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(e,t=null,n=0){!0!==e.isTexture&&(ei("WebGLRenderer: copyFramebufferToTexture function signature has changed."),t=arguments[0]||null,e=arguments[1]);let i=Math.pow(2,-n),a=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i),l=null!==t?t.x:0,u=null!==t?t.y:0;o.setTexture2D(e,0),eP.copyTexSubImage2D(eP.TEXTURE_2D,n,0,0,l,u,a,s),r.unbindTexture()};const eK=eP.createFramebuffer(),e$=eP.createFramebuffer();this.copyTextureToTexture=function(e,t,n=null,i=null,a=0,l=null){let u,c,h,d,p,f,m,g,v,_;!0!==e.isTexture&&(ei("WebGLRenderer: copyTextureToTexture function signature has changed."),i=arguments[0]||null,e=arguments[1],t=arguments[2],l=arguments[3]||0,n=null),null===l&&(0!==a?(ei("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),l=a,a=0):l=0);let y=e.isCompressedTexture?e.mipmaps[l]:e.image;if(null!==n)u=n.max.x-n.min.x,c=n.max.y-n.min.y,h=n.isBox3?n.max.z-n.min.z:1,d=n.min.x,p=n.min.y,f=n.isBox3?n.min.z:0;else{let t=Math.pow(2,-a);u=Math.floor(y.width*t),c=Math.floor(y.height*t),h=e.isDataArrayTexture?y.depth:e.isData3DTexture?Math.floor(y.depth*t):1,d=0,p=0,f=0}null!==i?(m=i.x,g=i.y,v=i.z):(m=0,g=0,v=0);let x=M.convert(t.format),b=M.convert(t.type);t.isData3DTexture?(o.setTexture3D(t,0),_=eP.TEXTURE_3D):t.isDataArrayTexture||t.isCompressedArrayTexture?(o.setTexture2DArray(t,0),_=eP.TEXTURE_2D_ARRAY):(o.setTexture2D(t,0),_=eP.TEXTURE_2D),eP.pixelStorei(eP.UNPACK_FLIP_Y_WEBGL,t.flipY),eP.pixelStorei(eP.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),eP.pixelStorei(eP.UNPACK_ALIGNMENT,t.unpackAlignment);let S=eP.getParameter(eP.UNPACK_ROW_LENGTH),T=eP.getParameter(eP.UNPACK_IMAGE_HEIGHT),w=eP.getParameter(eP.UNPACK_SKIP_PIXELS),E=eP.getParameter(eP.UNPACK_SKIP_ROWS),A=eP.getParameter(eP.UNPACK_SKIP_IMAGES);eP.pixelStorei(eP.UNPACK_ROW_LENGTH,y.width),eP.pixelStorei(eP.UNPACK_IMAGE_HEIGHT,y.height),eP.pixelStorei(eP.UNPACK_SKIP_PIXELS,d),eP.pixelStorei(eP.UNPACK_SKIP_ROWS,p),eP.pixelStorei(eP.UNPACK_SKIP_IMAGES,f);let C=e.isDataArrayTexture||e.isData3DTexture,R=t.isDataArrayTexture||t.isData3DTexture;if(e.isDepthTexture){let n=s.get(e),i=s.get(t),o=s.get(n.__renderTarget),_=s.get(i.__renderTarget);r.bindFramebuffer(eP.READ_FRAMEBUFFER,o.__webglFramebuffer),r.bindFramebuffer(eP.DRAW_FRAMEBUFFER,_.__webglFramebuffer);for(let n=0;ntypeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return 2e3}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;let t=this.getContext();t.drawingBufferColorspace=eu._getDrawingBufferColorSpace(e),t.unpackColorSpace=eu._getUnpackColorSpace()}}e.s(["PMREMGenerator",0,o8,"ShaderChunk",0,oB,"ShaderLib",0,oH,"UniformsLib",0,ok,"WebGLRenderer",0,uK,"WebGLUtils",0,uk],8560);var u$=e.i(30224);let uQ=e=>{let t,n=new Set,i=(e,i)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=i?i:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,a={setState:i,getState:r,getInitialState:()=>s,subscribe:e=>(n.add(e),()=>n.delete(e))},s=t=e(i,r,a);return a},u0=e=>e?uQ(e):uQ;e.s(["createStore",0,u0],8155);let{useSyncExternalStoreWithSelector:u1}=u$.default,u2=(e,t)=>{let n=u0(e),i=(e,i=t)=>(function(e,t=e=>e,n){let i=u1(e.subscribe,e.getState,e.getInitialState,t,n);return E.default.useDebugValue(i),i})(n,e,i);return Object.assign(i,n),i},u3=(e,t)=>e?u2(e,t):u2,u4=[];function u5(e,t,n=(e,t)=>e===t){if(e===t)return!0;if(!e||!t)return!1;let i=e.length;if(t.length!==i)return!1;for(let r=0;r0&&(r.timeout&&clearTimeout(r.timeout),r.timeout=setTimeout(r.remove,i.lifespan)),r.response;if(!n)throw r.promise}let r={keys:t,equal:i.equal,remove:()=>{let e=u4.indexOf(r);-1!==e&&u4.splice(e,1)},promise:("object"==typeof e&&"function"==typeof e.then?e:e(...t)).then(e=>{r.response=e,i.lifespan&&i.lifespan>0&&(r.timeout=setTimeout(r.remove,i.lifespan))}).catch(e=>r.error=e)};if(u4.push(r),!n)throw r.promise}var u8=e.i(89499),u9=e.i(43476),u7=E;function ce(e,t,n){if(!e)return;if(!0===n(e))return e;let i=t?e.return:e.child;for(;i;){let e=ce(i,t,n);if(e)return e;i=t?null:i.sibling}}function ct(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}"u">typeof window&&((null==(y=window.document)?void 0:y.createElement)||(null==(x=window.navigator)?void 0:x.product)==="ReactNative")?u7.useLayoutEffect:u7.useEffect;let cn=ct(u7.createContext(null));class ci extends u7.Component{render(){return u7.createElement(cn.Provider,{value:this._reactInternals},this.props.children)}}function cr(){let e=u7.useContext(cn);if(null===e)throw Error("its-fine: useFiber must be called within a !");let t=u7.useId();return u7.useMemo(()=>{for(let n of[e,null==e?void 0:e.alternate]){if(!n)continue;let e=ce(n,!1,e=>{let n=e.memoizedState;for(;n;){if(n.memoizedState===t)return!0;n=n.next}});if(e)return e}},[e,t])}let ca=Symbol.for("react.context"),cs=e=>null!==e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===ca;function co(e){let t=e.root;for(;t.getState().previousRoot;)t=t.getState().previousRoot;return t}E.act;let cl=e=>e&&e.hasOwnProperty("current"),cu=e=>null!=e&&("string"==typeof e||"number"==typeof e||e.isColor),cc="u">typeof window&&((null==(m=window.document)?void 0:m.createElement)||(null==(g=window.navigator)?void 0:g.product)==="ReactNative")?E.useLayoutEffect:E.useEffect;function ch(e){let t=E.useRef(e);return cc(()=>void(t.current=e),[e]),t}function cd(){let e,t=cr(),n=(e=function(){let e=cr(),[t]=u7.useState(()=>new Map);t.clear();let n=e;for(;n;){let e=n.type;cs(e)&&e!==cn&&!t.has(e)&&t.set(e,u7.use(ct(e))),n=n.return}return t}(),u7.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>i=>u7.createElement(t,null,u7.createElement(n.Provider,{...i,value:e.get(n)})),e=>u7.createElement(ci,{...e})),[e]));return E.useMemo(()=>({children:e})=>{let i=ce(t,!0,e=>e.type===E.StrictMode)?E.StrictMode:E.Fragment;return(0,u9.jsx)(i,{children:(0,u9.jsx)(n,{children:e})})},[t,n])}function cp({set:e}){return cc(()=>(e(new Promise(()=>null)),()=>e(!1)),[e]),null}let cf=((v=class extends E.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}).getDerivedStateFromError=()=>({error:!0}),v);function cm(e){var t;let n="u">typeof window?null!=(t=window.devicePixelRatio)?t:2:1;return Array.isArray(e)?Math.min(Math.max(e[0],n),e[1]):e}function cg(e){var t;return null==(t=e.__r3f)?void 0:t.root.getState()}let cv={obj:e=>e===Object(e)&&!cv.arr(e)&&"function"!=typeof e,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,boo:e=>"boolean"==typeof e,und:e=>void 0===e,nul:e=>null===e,arr:e=>Array.isArray(e),equ(e,t,{arrays:n="shallow",objects:i="reference",strict:r=!0}={}){let a;if(typeof e!=typeof t||!!e!=!!t)return!1;if(cv.str(e)||cv.num(e)||cv.boo(e))return e===t;let s=cv.obj(e);if(s&&"reference"===i)return e===t;let o=cv.arr(e);if(o&&"reference"===n)return e===t;if((o||s)&&e===t)return!0;for(a in e)if(!(a in t))return!1;if(s&&"shallow"===n&&"shallow"===i){for(a in r?t:e)if(!cv.equ(e[a],t[a],{strict:r,objects:"reference"}))return!1}else for(a in r?t:e)if(e[a]!==t[a])return!1;if(cv.und(a)){if(o&&0===e.length&&0===t.length||s&&0===Object.keys(e).length&&0===Object.keys(t).length)return!0;if(e!==t)return!1}return!0}},c_=["children","key","ref"];function cy(e,t,n,i){let r=null==e?void 0:e.__r3f;return!r&&(r={root:t,type:n,parent:null,children:[],props:function(e){let t={};for(let n in e)c_.includes(n)||(t[n]=e[n]);return t}(i),object:e,eventCount:0,handlers:{},isHidden:!1},e&&(e.__r3f=r)),r}function cx(e,t){if(!t.includes("-")||t in e)return{root:e,key:t,target:e[t]};let n=e,i=t.split("-");for(let r of i){if("object"!=typeof n||null===n){if(void 0!==n)return{root:n,key:i.slice(i.indexOf(r)).join("-"),target:void 0};return{root:e,key:t,target:void 0}}t=r,e=n,n=n[t]}return{root:e,key:t,target:n}}let cb=/-\d+$/;function cS(e,t){if(cv.str(t.props.attach)){if(cb.test(t.props.attach)){let n=t.props.attach.replace(cb,""),{root:i,key:r}=cx(e.object,n);Array.isArray(i[r])||(i[r]=[])}let{root:n,key:i}=cx(e.object,t.props.attach);t.previousAttach=n[i],n[i]=t.object}else cv.fun(t.props.attach)&&(t.previousAttach=t.props.attach(e.object,t.object))}function cM(e,t){if(cv.str(t.props.attach)){let{root:n,key:i}=cx(e.object,t.props.attach),r=t.previousAttach;void 0===r?delete n[i]:n[i]=r}else null==t.previousAttach||t.previousAttach(e.object,t.object);delete t.previousAttach}let cT=[...c_,"args","dispose","attach","object","onUpdate","dispose"],cw=new Map,cE=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],cA=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function cC(e,t){var n,i;let r=e.__r3f,a=r&&co(r).getState(),s=null==r?void 0:r.eventCount;for(let n in t){let s=t[n];if(cT.includes(n))continue;if(r&&cA.test(n)){"function"==typeof s?r.handlers[n]=s:delete r.handlers[n],r.eventCount=Object.keys(r.handlers).length;continue}if(void 0===s)continue;let{root:o,key:l,target:u}=cx(e,n);if(void 0===u&&("object"!=typeof o||null===o))throw Error(`R3F: Cannot set "${n}". Ensure it is an object before setting "${l}".`);if(u instanceof ti&&s instanceof ti)u.mask=s.mask;else if(u instanceof tz&&cu(s))u.set(s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&"function"==typeof u.copy&&null!=s&&s.constructor&&u.constructor===s.constructor)u.copy(s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&Array.isArray(s))"function"==typeof u.fromArray?u.fromArray(s):u.set(...s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&"number"==typeof s)"function"==typeof u.setScalar?u.setScalar(s):u.set(s);else if(o instanceof nb&&"uniforms"===l&&cv.obj(s)){cv.obj(o.uniforms)||(o.uniforms={});let e=o.uniforms;for(let t in s){let n=s[t],i=e[t];i?Object.assign(i,n):e[t]={...n}}}else o[l]=s,a&&!a.linear&&cE.includes(l)&&null!=(i=o[l])&&i.isTexture&&1023===o[l].format&&1009===o[l].type&&(o[l].colorSpace=I)}if(null!=r&&r.parent&&null!=a&&a.internal&&null!=(n=r.object)&&n.isObject3D&&s!==r.eventCount){let e=r.object,t=a.internal.interaction.indexOf(e);t>-1&&a.internal.interaction.splice(t,1),r.eventCount&&null!==e.raycast&&a.internal.interaction.push(e)}return r&&void 0===r.props.attach&&(r.object.isBufferGeometry?r.props.attach="geometry":r.object.isMaterial&&(r.props.attach="material")),r&&cR(r),e}function cR(e){var t;if(!e.parent)return;null==e.props.onUpdate||e.props.onUpdate(e.object);let n=null==(t=e.root)||null==t.getState?void 0:t.getState();n&&0===n.internal.frames&&n.invalidate()}function cP(e,t){!e.manual&&(e&&e.isOrthographicCamera?(e.left=-(t.width/2),e.right=t.width/2,e.top=t.height/2,e.bottom=-(t.height/2)):e.aspect=t.width/t.height,e.updateProjectionMatrix())}let cI=e=>null==e?void 0:e.isObject3D;function cL(e){return(e.eventObject||e.object).uuid+"/"+e.index+e.instanceId}function cN(e,t,n,i){let r=n.get(t);r&&(n.delete(t),0===n.size&&(e.delete(i),r.target.releasePointerCapture(i)))}let cU=e=>!!(null!=e&&e.render),cD=E.createContext(null);function cO(){let e=E.useContext(cD);if(!e)throw Error("R3F: Hooks can only be used within the Canvas component!");return e}function cF(e=e=>e,t){return cO()(e,t)}function cz(e,t=0){let n=cO(),i=n.getState().internal.subscribe,r=ch(e);return cc(()=>i(r,t,n),[t,i,n]),null}let cB=new WeakMap;function ck(e,t){return function(n,...i){var r;let a;return"function"==typeof n&&(null==n||null==(r=n.prototype)?void 0:r.constructor)===n?(a=cB.get(n))||(a=new n,cB.set(n,a)):a=n,e&&e(a),Promise.all(i.map(e=>new Promise((n,i)=>a.load(e,e=>{var t;let i;cI(null==e?void 0:e.scene)&&Object.assign(e,(t=e.scene,i={nodes:{},materials:{},meshes:{}},t&&t.traverse(e=>{e.name&&(i.nodes[e.name]=e),e.material&&!i.materials[e.material.name]&&(i.materials[e.material.name]=e.material),e.isMesh&&!i.meshes[e.name]&&(i.meshes[e.name]=e)}),i)),n(e)},t,t=>i(Error(`Could not load ${e}: ${null==t?void 0:t.message}`))))))}}function cH(e,t,n,i){let r=Array.isArray(t)?t:[t],a=u6(ck(n,i),[e,...r],!1,{equal:cv.equ});return Array.isArray(t)?a:a[0]}cH.preload=function(e,t,n){let i,r=Array.isArray(t)?t:[t];u6(ck(n),[e,...r],!0,i)},cH.clear=function(e,t){var n=[e,...Array.isArray(t)?t:[t]];if(void 0===n||0===n.length)u4.splice(0,u4.length);else{let e=u4.find(e=>u5(n,e.keys,e.equal));e&&e.remove()}};var cV={exports:{}},cG={exports:{}};cG.exports;let cW=(T||(T=1,M||(M=1,cG.exports=function(e){function t(e,t,n,i){return new iJ(e,t,n,i)}function n(){}function i(e){var t="https://react.dev/errors/"+e;if(1sT||(e.current=sM[sT],sM[sT]=null,sT--)}function h(e,t){sM[++sT]=e.current,e.current=t}function d(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function p(e,t,n){var i=e.pendingLanes;if(0===i)return 0;var r=0,a=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var o=0x7ffffff&i;return 0!==o?0!=(i=o&~a)?r=d(i):0!=(s&=o)?r=d(s):n||0!=(n=o&~e)&&(r=d(n)):0!=(o=i&~a)?r=d(o):0!==s?r=d(s):n||0!=(n=i&~e)&&(r=d(n)),0===r?0:0!==t&&t!==r&&(t&a)==0&&((a=r&-r)>=(n=t&-t)||32===a&&(4194048&n)!=0)?t:r}function f(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)==0}function m(){var e=sI;return(0x3c00000&(sI<<=1))==0&&(sI=4194304),e}function g(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function v(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function _(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var i=31-sE(t);e.entangledLanes|=t,e.entanglements[i]=0x40000000|e.entanglements[i]|261930&n}function y(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var i=31-sE(n),r=1<)":-1r||l[i]!==u[r]){var c=` +`+l[i].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=i&&0<=r)break}}}finally{sY=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?T(n):""}function C(e){try{var t="",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return T(e.type);case 16:return T("Lazy");case 13:return e.child!==t&&null!==t?T("Suspense Fallback"):T("Suspense");case 19:return T("SuspenseList");case 0:case 15:return A(e.type,!1);case 11:return A(e.type.render,!1);case 1:return A(e.type,!0);case 31:return T("Activity");default:return""}}(e,n),n=e,e=e.return;while(e)return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}function R(e,t){if("object"==typeof e&&null!==e){var n=sZ.get(e);return void 0!==n?n:(t={value:e,source:t,stack:C(t)},sZ.set(e,t),t)}return{value:e,source:t,stack:C(t)}}function P(e,t){sJ[sK++]=sQ,sJ[sK++]=s$,s$=e,sQ=t}function I(e,t,n){s0[s1++]=s3,s0[s1++]=s4,s0[s1++]=s2,s2=e;var i=s3;e=s4;var r=32-sE(i)-1;i&=~(1<>=s,r-=s,s3=1<<32-sE(t)+r|n<d?(p=h,h=null):p=h.sibling;var v=m(t,h,s[d],o);if(null===v){null===h&&(h=p);break}e&&h&&null===v.alternate&&n(t,h),i=l(v,i,d),null===c?u=v:c.sibling=v,c=v,h=p}if(d===s.length)return r(t,h),ot&&P(t,d),u;if(null===h){for(;dp?(v=d,d=null):v=d.sibling;var y=m(t,d,_.value,u);if(null===y){null===d&&(d=v);break}e&&d&&null===y.alternate&&n(t,d),s=l(y,s,p),null===h?c=y:h.sibling=y,h=y,d=v}if(_.done)return r(t,d),ot&&P(t,p),c;if(null===d){for(;!_.done;p++,_=o.next())null!==(_=f(t,_.value,u))&&(s=l(_,s,p),null===h?c=_:h.sibling=_,h=_);return ot&&P(t,p),c}for(d=a(d);!_.done;p++,_=o.next())null!==(_=g(d,t,p,_.value,u))&&(e&&null!==_.alternate&&d.delete(null===_.key?p:_.key),s=l(_,s,p),null===h?c=_:h.sibling=_,h=_);return e&&d.forEach(function(e){return n(t,e)}),ot&&P(t,p),c}(c,h,d=v.call(d),p)}if("function"==typeof d.then)return t(c,h,eM(d),p);if(d.$$typeof===rd)return t(c,h,ee(c,d),p);ew(c,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==h&&6===h.tag?(r(c,h.sibling),(p=s(h,d)).return=c):(r(c,h),(p=i2(d,c.mode,p)).return=c),u(c=p)):r(c,h)}(c,h,d,p);return oR=null,v}catch(e){if(e===oT||e===oE)throw e;var _=t(29,e,null,c.mode);return _.lanes=p,_.return=c,_}finally{}}}function eA(){for(var e=oU,t=oD=oU=0;ta?a:8);var s=rM.T,o={};rM.T=o,t$(e,!1,t,n);try{var l=r(),u=rM.S;if(null!==u&&u(o,l),null!==l&&"object"==typeof l&&"function"==typeof l.then){var c,h,d=(c=[],h={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},l.then(function(){h.status="fulfilled",h.value=i;for(var e=0;e";case lu:return":has("+(id(e)||"")+")";case lc:return'[role="'+e.value+'"]';case ld:return'"'+e.value+'"';case lh:return'[data-testname="'+e.value+'"]';default:throw Error(i(365))}}function ip(e,t){var n=[];e=[e,0];for(var i=0;ilO&&(t.flags|=128,a=!0,nO(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=eK(s))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,nD(t,e),nO(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!ot)return nF(t),null}else 2*sO()-r.renderingStartTime>lO&&0x20000000!==n&&(t.flags|=128,a=!0,nO(r,!1),t.lanes=4194304);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(e=r.last)?e.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=sO(),e.sibling=null,n=oV.current,h(oV,a?1&n|2:1&n),ot&&P(t,r.treeForkCount),e):(nF(t),null);case 22:case 23:return eJ(t),ej(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?(0x20000000&n)!=0&&(128&t.flags)==0&&(nF(t),6&t.subtreeFlags&&(t.flags|=8192)):nF(t),null!==(n=t.updateQueue)&&nD(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&c(oM),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),q(oh),nF(t),null;case 25:case 30:return null}throw Error(i(156,t.tag))}(t.alternate,t,lT);if(null!==n){lv=n;return}if(null!==(t=t.sibling)){lv=t;return}lv=t=e}while(null!==t)0===lw&&(lw=5)}function iD(e,t){do{var n=function(e,t){switch(N(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return q(oh),O(),(65536&(e=t.flags))!=0&&(128&e)==0?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return z(t),null;case 31:if(null!==t.memoizedState){if(eJ(t),null===t.alternate)throw Error(i(340));G()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(eJ(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));G()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return c(oV),null;case 4:return O(),null;case 10:return q(t.type),null;case 22:case 23:return eJ(t),ej(),null!==e&&c(oM),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return q(oh),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lv=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lv=e;return}lv=e=n}while(null!==e)lw=6,lv=null}function iO(e,t,n,r,a,s,o,l,u){e.cancelPendingCommit=null;do iH();while(0!==lB)if((6&lm)!=0)throw Error(i(327));if(null!==t){if(t===e.current)throw Error(i(177));if(function(e,t,n,i,r,a){var s=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,l=e.expirationTimes,u=e.hiddenUpdates;for(n=s&~n;0n?32:n;n=rM.T;var a=rq();try{rX(r),rM.T=null,r=lW,lW=null;var s=lk,o=lV;if(lB=0,lH=lk=null,lV=0,(6&lm)!=0)throw Error(i(331));var l=lm;if(lm|=4,il(s.current),it(s,s.current,o,r),lm=l,es(0,!1),sW&&"function"==typeof sW.onPostCommitFiberRoot)try{sW.onPostCommitFiberRoot(sG,s)}catch{}return!0}finally{rX(a),rM.T=n,ik(e,t)}}function iG(e,t,n){t=R(n,t),t=t9(e.stateNode,t,2),null!==(e=eO(e,t,2))&&(v(e,2),ea(e))}function iW(e,t,n){if(3===e.tag)iG(e,e,n);else for(;null!==t;){if(3===t.tag){iG(t,e,n);break}if(1===t.tag){var i=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof i.componentDidCatch&&(null===lz||!lz.has(i))){e=R(n,e),null!==(i=eO(t,n=t7(2),2))&&(ne(n,i,t,e),v(i,2),ea(i));break}}t=t.return}}function ij(e,t,n){var i=e.pingCache;if(null===i){i=e.pingCache=new lf;var r=new Set;i.set(t,r)}else void 0===(r=i.get(t))&&(r=new Set,i.set(t,r));r.has(n)||(lM=!0,r.add(n),e=iX.bind(null,e,t,n),t.then(e,e))}function iX(e,t,n){var i=e.pingCache;null!==i&&i.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lg===e&&(l_&n)===n&&(4===lw||3===lw&&(0x3c00000&l_)===l_&&300>sO()-lU?(2&lm)==0&&iT(e,0):lC|=n,lP===l_&&(lP=0)),ea(e)}function iq(e,t){0===t&&(t=m()),null!==(e=eP(e,t))&&(v(e,t),ea(e))}function iY(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),iq(e,n)}function iZ(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),iq(e,n)}function iJ(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function iK(e){return!(!(e=e.prototype)||!e.isReactComponent)}function i$(e,n){var i=e.alternate;return null===i?((i=t(e.tag,n,e.key,e.mode)).elementType=e.elementType,i.type=e.type,i.stateNode=e.stateNode,i.alternate=e,e.alternate=i):(i.pendingProps=n,i.type=e.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=0x3e00000&e.flags,i.childLanes=e.childLanes,i.lanes=e.lanes,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,n=e.dependencies,i.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},i.sibling=e.sibling,i.index=e.index,i.ref=e.ref,i.refCleanup=e.refCleanup,i}function iQ(e,t){e.flags&=0x3e00002;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,e.dependencies=null===(t=n.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function i0(e,n,r,a,s,o){var l=0;if(a=e,"function"==typeof e)iK(e)&&(l=1);else if("string"==typeof e)l=si&&sv?sr(e,r,s5.current)?26:sb(e)?27:5:si?sr(e,r,s5.current)?26:5:sv&&sb(e)?27:5;else o:switch(e){case r_:return(e=t(31,r,n,s)).elementType=r_,e.lanes=o,e;case rl:return i1(r.children,s,o,n);case ru:l=8,s|=24;break;case rc:return(e=t(12,r,n,2|s)).elementType=rc,e.lanes=o,e;case rf:return(e=t(13,r,n,s)).elementType=rf,e.lanes=o,e;case rm:return(e=t(19,r,n,s)).elementType=rm,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case rd:l=10;break o;case rh:l=9;break o;case rp:l=11;break o;case rg:l=14;break o;case rv:l=16,a=null;break o}l=29,r=Error(i(130,null===e?"null":typeof e,"")),a=null}return(n=t(l,r,n,s)).elementType=e,n.type=a,n.lanes=o,n}function i1(e,n,i,r){return(e=t(7,e,r,n)).lanes=i,e}function i2(e,n,i){return(e=t(6,e,null,n)).lanes=i,e}function i3(e){var n=t(18,null,null,0);return n.stateNode=e,n}function i4(e,n,i){return(n=t(4,null!==e.children?e.children:[],e.key,n)).lanes=i,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function i5(e,t,n,i,r,a,s,o,l){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=rB,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=g(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=g(0),this.hiddenUpdates=g(null),this.identifierPrefix=i,this.onUncaughtError=r,this.onCaughtError=a,this.onRecoverableError=s,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=l,this.incompleteTransitions=new Map}function i6(e,n,i,r,a,s,o,l,u,c,h,d){return e=new i5(e,n,i,o,u,c,h,d,l),n=1,!0===s&&(n|=24),s=t(3,null,null,n),e.current=s,s.stateNode=e,n=en(),n.refCount++,e.pooledCache=n,n.refCount++,s.memoizedState={element:r,isDehydrated:i,cache:n},eN(s),e}function i8(e){var t=e._reactInternals;if(void 0===t)throw"function"==typeof e.render?Error(i(188)):Error(i(268,e=Object.keys(e).join(",")));return null===(e=null!==(e=s(t))?function e(t){var n=t.tag;if(5===n||26===n||27===n||6===n)return t;for(t=t.child;null!==t;){if(null!==(n=e(t)))return n;t=t.sibling}return null}(e):null)?null:rA(e.stateNode)}function i9(e,t,n,i,r,a){r=sw,null===i.context?i.context=r:i.pendingContext=r,(i=eD(t)).payload={element:n},null!==(a=void 0===a?null:a)&&(i.callback=a),null!==(n=eO(e,i,t))&&(i_(n,e,t),eF(n,e,t))}function i7(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n>>=0)?32:31-(sA(e)/sC|0)|0},sA=Math.log,sC=Math.LN2,sR=256,sP=262144,sI=4194304,sL=ri.unstable_scheduleCallback,sN=ri.unstable_cancelCallback,sU=ri.unstable_shouldYield,sD=ri.unstable_requestPaint,sO=ri.unstable_now,sF=ri.unstable_ImmediatePriority,sz=ri.unstable_UserBlockingPriority,sB=ri.unstable_NormalPriority,sk=ri.unstable_IdlePriority,sH=ri.log,sV=ri.unstable_setDisableYieldValue,sG=null,sW=null,sj="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},sX="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof w.default&&"function"==typeof w.default.emit)return void w.default.emit("uncaughtException",e);console.error(e)},sq=Object.prototype.hasOwnProperty,sY=!1,sZ=new WeakMap,sJ=[],sK=0,s$=null,sQ=0,s0=[],s1=0,s2=null,s3=1,s4="",s5=u(null),s6=u(null),s8=u(null),s9=u(null),s7=null,oe=null,ot=!1,on=null,oi=!1,or=Error(i(519)),oa=u(null),os=null,oo=null,ol="u">typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ou=ri.unstable_scheduleCallback,oc=ri.unstable_NormalPriority,oh={$$typeof:rd,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0},od=null,op=null,of=!1,om=!1,og=!1,ov=0,o_=null,oy=0,ox=0,ob=null,oS=rM.S;rM.S=function(e,t){lD=sO(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e){if(null===o_){var t=o_=[];oy=0,ox=ed(),ob={status:"pending",value:void 0,then:function(e){t.push(e)}}}oy++,e.then(ep,ep)}(t),null!==oS&&oS(e,t)};var oM=u(null),oT=Error(i(460)),ow=Error(i(474)),oE=Error(i(542)),oA={then:function(){}},oC=null,oR=null,oP=0,oI=eE(!0),oL=eE(!1),oN=[],oU=0,oD=0,oO=!1,oF=!1,oz=u(null),oB=u(0),ok=u(null),oH=null,oV=u(0),oG=0,oW=null,oj=null,oX=null,oq=!1,oY=!1,oZ=!1,oJ=0,oK=0,o$=null,oQ=0,o0={readContext:Q,use:tt,useCallback:e$,useContext:e$,useEffect:e$,useImperativeHandle:e$,useLayoutEffect:e$,useInsertionEffect:e$,useMemo:e$,useReducer:e$,useRef:e$,useState:e$,useDebugValue:e$,useDeferredValue:e$,useTransition:e$,useSyncExternalStore:e$,useId:e$,useHostTransitionStatus:e$,useFormState:e$,useActionState:e$,useOptimistic:e$,useMemoCache:e$,useCacheRefresh:e$};o0.useEffectEvent=e$;var o1={readContext:Q,use:tt,useCallback:function(e,t){return e8().memoizedState=[e,void 0===t?null:t],e},useContext:Q,useEffect:tI,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,tR(4194308,4,tO.bind(null,t,e),n)},useLayoutEffect:function(e,t){return tR(4194308,4,e,t)},useInsertionEffect:function(e,t){tR(4,2,e,t)},useMemo:function(e,t){var n=e8();t=void 0===t?null:t;var i=e();return n.memoizedState=[i,t],i},useReducer:function(e,t,n){var i=e8();if(void 0!==n)var r=n(t);else r=t;return i.memoizedState=i.baseState=r,i.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:r},e=e.dispatch=tZ.bind(null,oW,e),[i.memoizedState,e]},useRef:function(e){return e8().memoizedState={current:e}},useState:function(e){var t=(e=tp(e)).queue,n=tJ.bind(null,oW,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:tz,useDeferredValue:function(e,t){return tH(e8(),e,t)},useTransition:function(){var e=tp(!1);return e=tG.bind(null,oW,e.queue,!0,!1),e8().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=oW,a=e8();if(ot){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===lg)throw Error(i(349));(127&l_)!=0||tl(r,t,n)}a.memoizedState=n;var s={value:n,getSnapshot:t};return a.queue=s,tI(tc.bind(null,r,s,e),[e]),r.flags|=2048,tA(9,{destroy:void 0},tu.bind(null,r,s,n,t),null),n},useId:function(){var e=e8(),t=lg.identifierPrefix;if(ot){var n=s4,i=s3;t="_"+t+"R_"+(n=(i&~(1<<32-sE(i)-1)).toString(32)+n),0<(n=oJ++)&&(t+="H"+n.toString(32)),t+="_"}else t="_"+t+"r_"+(n=oQ++).toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:tj,useFormState:tS,useActionState:tS,useOptimistic:function(e){var t=e8();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=t$.bind(null,oW,!0,n),n.dispatch=t,[e,t]},useMemoCache:tn,useCacheRefresh:function(){return e8().memoizedState=tY.bind(null,oW)},useEffectEvent:function(e){var t=e8(),n={impl:e};return t.memoizedState=n,function(){if((2&lm)!=0)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},o2={readContext:Q,use:tt,useCallback:tB,useContext:Q,useEffect:tL,useImperativeHandle:tF,useInsertionEffect:tU,useLayoutEffect:tD,useMemo:tk,useReducer:tr,useRef:tC,useState:function(){return tr(ti)},useDebugValue:tz,useDeferredValue:function(e,t){return tV(e9(),oj.memoizedState,e,t)},useTransition:function(){var e=tr(ti)[0],t=e9().memoizedState;return["boolean"==typeof e?e:te(e),t]},useSyncExternalStore:to,useId:tX,useHostTransitionStatus:tj,useFormState:tM,useActionState:tM,useOptimistic:function(e,t){return tf(e9(),oj,e,t)},useMemoCache:tn,useCacheRefresh:tq};o2.useEffectEvent=tN;var o3={readContext:Q,use:tt,useCallback:tB,useContext:Q,useEffect:tL,useImperativeHandle:tF,useInsertionEffect:tU,useLayoutEffect:tD,useMemo:tk,useReducer:ts,useRef:tC,useState:function(){return ts(ti)},useDebugValue:tz,useDeferredValue:function(e,t){var n=e9();return null===oj?tH(n,e,t):tV(n,oj.memoizedState,e,t)},useTransition:function(){var e=ts(ti)[0],t=e9().memoizedState;return["boolean"==typeof e?e:te(e),t]},useSyncExternalStore:to,useId:tX,useHostTransitionStatus:tj,useFormState:tE,useActionState:tE,useOptimistic:function(e,t){var n=e9();return null!==oj?tf(n,oj,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:tn,useCacheRefresh:tq};o3.useEffectEvent=tN;var o4={enqueueSetState:function(e,t,n){e=e._reactInternals;var i=ig(),r=eD(i);r.payload=t,null!=n&&(r.callback=n),null!==(t=eO(e,r,i))&&(i_(t,e,i),eF(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var i=ig(),r=eD(i);r.tag=1,r.payload=t,null!=n&&(r.callback=n),null!==(t=eO(e,r,i))&&(i_(t,e,i),eF(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ig(),i=eD(n);i.tag=2,null!=t&&(i.callback=t),null!==(t=eO(e,i,n))&&(i_(t,e,n),eF(t,e,n))}},o5=Error(i(461)),o6=!1,o8={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null},o9=!1,o7=!1,le=!1,lt="function"==typeof WeakSet?WeakSet:Set,ln=null,li=null,lr=!1,la=null,ls=8192,lo={getCacheForType:function(e){var t=Q(oh),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Q(oh).controller.signal}},ll=0,lu=1,lc=2,lh=3,ld=4;if("function"==typeof Symbol&&Symbol.for){var lp=Symbol.for;ll=lp("selector.component"),lu=lp("selector.has_pseudo_class"),lc=lp("selector.role"),lh=lp("selector.test_id"),ld=lp("selector.text")}var lf="function"==typeof WeakMap?WeakMap:Map,lm=0,lg=null,lv=null,l_=0,ly=0,lx=null,lb=!1,lS=!1,lM=!1,lT=0,lw=0,lE=0,lA=0,lC=0,lR=0,lP=0,lI=null,lL=null,lN=!1,lU=0,lD=0,lO=1/0,lF=null,lz=null,lB=0,lk=null,lH=null,lV=0,lG=0,lW=null,lj=null,lX=0,lq=null;return rt.attemptContinuousHydration=function(e){if(13===e.tag||31===e.tag){var t=eP(e,0x4000000);null!==t&&i_(t,e,0x4000000),re(e,0x4000000)}},rt.attemptHydrationAtCurrentPriority=function(e){if(13===e.tag||31===e.tag){var t=ig(),n=eP(e,t=b(t));null!==n&&i_(n,e,t),re(e,t)}},rt.attemptSynchronousHydration=function(e){switch(e.tag){case 3:if((e=e.stateNode).current.memoizedState.isDehydrated){var t=d(e.pendingLanes);if(0!==t){for(e.pendingLanes|=2,e.entangledLanes|=2;t;){var n=1<<31-sE(t);e.entanglements[1]|=n,t&=~n}ea(e),(6&lm)==0&&(lO=sO()+500,es(0,!1))}}break;case 31:case 13:null!==(t=eP(e,2))&&i_(t,e,2),iS(),re(e,2)}},rt.batchedUpdates=function(e,t){return e(t)},rt.createComponentSelector=function(e){return{$$typeof:ll,value:e}},rt.createContainer=function(e,t,n,i,r,a,s,o,l,u){return i6(e,t,!1,null,n,i,a,null,s,o,l,u)},rt.createHasPseudoClassSelector=function(e){return{$$typeof:lu,value:e}},rt.createHydrationContainer=function(e,t,n,i,r,a,s,o,l,u,c,h,d,p){var f;return(e=i6(n,i,!0,e,r,a,o,p,l,u,c,h)).context=sw,n=e.current,(r=eD(i=b(i=ig()))).callback=null!=(f=t)?f:null,eO(n,r,i),t=i,e.current.lanes=t,v(e,t),ea(e),e},rt.createPortal=function(e,t,n){var i=3=c&&s>=d&&a<=h&&o<=p){e.splice(t,1);break}if(r!==c||n.width!==u.width||po){if(!(s!==d||n.height!==u.height||ha)){c>r&&(u.width+=c-r,u.x=r),hs&&(u.height+=d-s,u.y=s),pn&&(n=l)),l ")+` + +No matching component was found for: + `+e.join(" > ")}return null},rt.getPublicRootInstance=function(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 27:case 5:return rA(e.child.stateNode);default:return e.child.stateNode}},rt.injectIntoDevTools=function(){var e={bundleType:0,version:rT,rendererPackageName:rw,currentDispatcherRef:rM,reconcilerVersion:"19.2.0"};if(null!==rE&&(e.rendererConfig=rE),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)e=!0;else{try{sG=t.inject(e),sW=t}catch{}e=!!t.checkDCE}}return e},rt.isAlreadyRendering=function(){return(6&lm)!=0},rt.observeVisibleRects=function(e,t,n,r){if(!r7)throw Error(i(363));var a=as(e=im(e,t),n,r).disconnect;return{disconnect:function(){a()}}},rt.shouldError=function(){return null},rt.shouldSuspend=function(){return!1},rt.startHostTransition=function(e,t,r,a){if(5!==e.tag)throw Error(i(476));var s=tW(e).queue;tG(e,s,t,r4,null===r?n:function(){var t=tW(e);return null===t.next&&(t=e.alternate.memoizedState),tK(e,t.next.queue,{},ig()),r(a)})},rt.updateContainer=function(e,t,n,i){var r=t.current,a=ig();return i9(r,a,e,t,n,i),a},rt.updateContainerSync=function(e,t,n,i){return i9(t.current,2,e,t,n,i),2},rt},cG.exports.default=cG.exports,Object.defineProperty(cG.exports,"__esModule",{value:!0})),cV.exports=cG.exports),(b=cV.exports)&&b.__esModule&&Object.prototype.hasOwnProperty.call(b,"default"))?b.default:b,cj={},cX=/^three(?=[A-Z])/,cq=e=>`${e[0].toUpperCase()}${e.slice(1)}`,cY=0;function cZ(e){if("function"==typeof e){let t=`${cY++}`;return cj[t]=e,t}Object.assign(cj,e)}function cJ(e,t){let n=cq(e),i=cj[n];if("primitive"!==e&&!i)throw Error(`R3F: ${n} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if("primitive"===e&&!t.object)throw Error("R3F: Primitives without 'object' are invalid!");if(void 0!==t.args&&!Array.isArray(t.args))throw Error("R3F: The args prop must be an array!")}function cK(e){if(e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?cS(e.parent,e):cI(e.object)&&!1!==e.props.visible&&(e.object.visible=!0),e.isHidden=!1,cR(e)}}function c$(e,t,n){let i=t.root.getState();if(e.parent||e.object===i.scene){if(!t.object){var r,a;let e=cj[cq(t.type)];t.object=null!=(r=t.props.object)?r:new e(...null!=(a=t.props.args)?a:[]),t.object.__r3f=t}if(cC(t.object,t.props),t.props.attach)cS(e,t);else if(cI(t.object)&&cI(e.object)){let i=e.object.children.indexOf(null==n?void 0:n.object);if(n&&-1!==i){let n=e.object.children.indexOf(t.object);-1!==n?(e.object.children.splice(n,1),e.object.children.splice(n{try{e.dispose()}catch{}};"u">typeof IS_REACT_ACT_ENVIRONMENT?t():(0,u8.unstable_scheduleCallback)(u8.unstable_IdlePriority,t)}}function c2(e,t,n){if(!t)return;t.parent=null;let i=e.children.indexOf(t);-1!==i&&e.children.splice(i,1),t.props.attach?cM(e,t):cI(t.object)&&cI(e.object)&&(e.object.remove(t.object),function(e,t){let{internal:n}=e.getState();n.interaction=n.interaction.filter(e=>e!==t),n.initialHits=n.initialHits.filter(e=>e!==t),n.hovered.forEach((e,i)=>{(e.eventObject===t||e.object===t)&&n.hovered.delete(i)}),n.capturedMap.forEach((e,i)=>{cN(n.capturedMap,t,e,i)})}(co(t),t.object));let r=null!==t.props.dispose&&!1!==n;for(let e=t.children.length-1;e>=0;e--){let n=t.children[e];c2(t,n,r)}t.children.length=0,delete t.object.__r3f,r&&"primitive"!==t.type&&"Scene"!==t.object.type&&c1(t.object),void 0===n&&cR(t)}let c3=[],c4=()=>{},c5={},c6=0,c8=(S={isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:function(e,t,n){var i;return cJ(e=cq(e)in cj?e:e.replace(cX,""),t),"primitive"===e&&null!=(i=t.object)&&i.__r3f&&delete t.object.__r3f,cy(t.object,n,e,t)},removeChild:c2,appendChild:cQ,appendInitialChild:cQ,insertBefore:c0,appendChildToContainer(e,t){let n=e.getState().scene.__r3f;t&&n&&cQ(n,t)},removeChildFromContainer(e,t){let n=e.getState().scene.__r3f;t&&n&&c2(n,t)},insertInContainerBefore(e,t,n){let i=e.getState().scene.__r3f;t&&n&&i&&c0(i,t,n)},getRootHostContext:()=>c5,getChildHostContext:()=>c5,commitUpdate(e,t,n,i,r){var a,s,o;cJ(t,i);let l=!1;if("primitive"===e.type&&n.object!==i.object||(null==(a=i.args)?void 0:a.length)!==(null==(s=n.args)?void 0:s.length)?l=!0:null!=(o=i.args)&&o.some((e,t)=>{var i;return e!==(null==(i=n.args)?void 0:i[t])})&&(l=!0),l)c3.push([e,{...i},r]);else{let t=function(e,t){let n={};for(let i in t)if(!cT.includes(i)&&!cv.equ(t[i],e.props[i]))for(let e in n[i]=t[i],t)e.startsWith(`${i}-`)&&(n[e]=t[e]);for(let i in e.props){if(cT.includes(i)||t.hasOwnProperty(i))continue;let{root:r,key:a}=cx(e.object,i);if(r.constructor&&0===r.constructor.length){let e=function(e){let t=cw.get(e.constructor);try{t||(t=new e.constructor,cw.set(e.constructor,t))}catch(e){}return t}(r);cv.und(e)||(n[a]=e[a])}else n[a]=0}return n}(e,i);Object.keys(t).length&&(Object.assign(e.props,t),cC(e.object,t))}(null===r.sibling||(4&r.flags)==0)&&function(){for(let[e]of c3){let t=e.parent;if(t)for(let n of(e.props.attach?cM(t,e):cI(e.object)&&cI(t.object)&&t.object.remove(e.object),e.children))n.props.attach?cM(e,n):cI(n.object)&&cI(e.object)&&e.object.remove(n.object);e.isHidden&&cK(e),e.object.__r3f&&delete e.object.__r3f,"primitive"!==e.type&&c1(e.object)}for(let[i,r,a]of c3){i.props=r;let s=i.parent;if(s){let r=cj[cq(i.type)],o=i.object;i.object=null!=(e=i.props.object)?e:new r(...null!=(t=i.props.args)?t:[]),i.object.__r3f=i;var e,t,n=i.object;for(let e of[a,a.alternate])if(null!==e)if("function"==typeof e.ref){null==e.refCleanup||e.refCleanup();let t=e.ref(n);"function"==typeof t&&(e.refCleanup=t)}else e.ref&&(e.ref.current=n);for(let e of(!function(e,t,n){let{internal:i}=e.getState();for(let e=0;e{if(e.eventObject===t||e.object===t){i.hovered.delete(r);let a={...e,eventObject:e.eventObject===t?n:e.eventObject,object:e.object===t?n:e.object};i.hovered.set(cL(a),a)}}),i.capturedMap.forEach(e=>{let i=e.get(t);i&&(e.delete(t),e.set(n,i))})}(co(i),o,i.object),cC(i.object,i.props),i.props.attach?cS(s,i):cI(i.object)&&cI(s.object)&&s.object.add(i.object),i.children))e.props.attach?cS(i,e):cI(e.object)&&cI(i.object)&&i.object.add(e.object);cR(i)}}c3.length=0}()},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:e=>null==e?void 0:e.object,prepareForCommit:()=>null,preparePortalMount:e=>cy(e.getState().scene,e,"",{}),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:function(e){if(!e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?cM(e.parent,e):cI(e.object)&&(e.object.visible=!1),e.isHidden=!0,cR(e)}},unhideInstance:cK,createTextInstance:c4,hideTextInstance:c4,unhideTextInstance:c4,scheduleTimeout:"function"==typeof setTimeout?setTimeout:void 0,cancelTimeout:"function"==typeof clearTimeout?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:E.createContext(null),setCurrentUpdatePriority(e){c6=e},getCurrentUpdatePriority:()=>c6,resolveUpdatePriority(){var e;if(0!==c6)return c6;switch("u">typeof window&&(null==(e=window.event)?void 0:e.type)){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return 2;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return 8;default:return 32}},resetFormInstance(){},rendererPackageName:"@react-three/fiber",rendererVersion:"9.6.1",applyViewTransitionName(e,t,n){},restoreViewTransitionName(e,t){},cancelViewTransitionName(e,t,n){},cancelRootViewTransitionName(e){},restoreRootViewTransitionName(e){},InstanceMeasurement:null,measureInstance:e=>null,wasInstanceInViewport:e=>!0,hasInstanceChanged:(e,t)=>!1,hasInstanceAffectedParent:(e,t)=>!1,suspendOnActiveViewTransition(e,t){},startGestureTransition:()=>null,startViewTransition:()=>null,stopViewTransition(e){},createViewTransitionInstance:e=>null,getCurrentGestureOffset(e){throw Error("startGestureTransition is not yet supported in react-three-fiber.")},cloneMutableInstance:(e,t)=>e,cloneMutableTextInstance:e=>e,cloneRootViewTransitionContainer(e){throw Error("Not implemented.")},removeRootViewTransitionClone(e,t){throw Error("Not implemented.")},createFragmentInstance:e=>null,updateFragmentInstanceFiber(e,t){},commitNewChildToFragmentInstance(e,t){},deleteChildFromFragmentInstance(e,t){},measureClonedInstance:e=>null,maySuspendCommitOnUpdate:(e,t,n)=>!1,maySuspendCommitInSyncRender:(e,t)=>!1,startSuspendingCommit:()=>null,getSuspendedCommitReason:(e,t)=>null},(_=cW(S)).injectIntoDevTools(),_),c9=new Map,c7={objects:"shallow",strict:!1};function he(e){var t,n;let i,r,a,s,o,l,u,c=c9.get(e),h=null==c?void 0:c.fiber,d=null==c?void 0:c.store;c&&console.warn("R3F.createRoot should only be called once!");let p="function"==typeof reportError?reportError:console.error,f=d||(t=hp,n=hf,o=(s=(a=u3((e,i)=>{let r,a=new eE,s=new eE,o=new eE;function l(e=i().camera,t=s,n=i().size){let{width:r,height:u,top:c,left:h}=n,d=r/u;t.isVector3?o.copy(t):o.set(...t);let p=e.getWorldPosition(a).distanceTo(o);if(e&&e.isOrthographicCamera)return{width:r/e.zoom,height:u/e.zoom,top:c,left:h,factor:1,distance:p,aspect:d};{let t=2*Math.tan(e.fov*Math.PI/180/2)*p,n=r/u*t;return{width:n,height:t,top:c,left:h,factor:r/n,distance:p,aspect:d}}}let u=t=>e(e=>({performance:{...e.performance,current:t}})),c=new Y;return{set:e,get:i,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(e=1)=>t(i(),e),advance:(e,t)=>n(e,t,i()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new sw,pointer:c,mouse:c,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{let e=i();r&&clearTimeout(r),e.performance.current!==e.performance.min&&u(e.performance.min),r=setTimeout(()=>u(i().performance.max),e.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:l},setEvents:t=>e(e=>({...e,events:{...e.events,...t}})),setSize:(t,n,r=0,a=0)=>{let o=i().camera,u={width:t,height:n,top:r,left:a};e(e=>({size:u,viewport:{...e.viewport,...l(o,s,u)}}))},setDpr:t=>e(e=>{let n=cm(t);return{viewport:{...e.viewport,dpr:n,initialDpr:e.viewport.initialDpr||n}}}),setFrameloop:(t="always")=>{let n=i().clock;n.stop(),n.elapsedTime=0,"never"!==t&&(n.start(),n.elapsedTime=0),e(()=>({frameloop:t}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:E.createRef(),active:!1,frames:0,priority:0,subscribe:(e,t,n)=>{let r=i().internal;return r.priority=r.priority+ +(t>0),r.subscribers.push({ref:e,priority:t,store:n}),r.subscribers=r.subscribers.sort((e,t)=>e.priority-t.priority),()=>{let n=i().internal;null!=n&&n.subscribers&&(n.priority=n.priority-(t>0),n.subscribers=n.subscribers.filter(t=>t.ref!==e))}}}}})).getState()).size,l=s.viewport.dpr,u=s.camera,a.subscribe(()=>{let{camera:e,size:t,viewport:n,gl:i,set:r}=a.getState();if(t.width!==o.width||t.height!==o.height||n.dpr!==l){o=t,l=n.dpr,cP(e,t),n.dpr>0&&i.setPixelRatio(n.dpr);let r="u">typeof HTMLCanvasElement&&i.domElement instanceof HTMLCanvasElement;i.setSize(t.width,t.height,r)}e!==u&&(u=e,r(t=>({viewport:{...t.viewport,...t.viewport.getCurrentViewport(e)}})))}),a.subscribe(e=>t(e)),a),m=h||c8.createContainer(f,1,null,!1,null,"",p,p,p,null);c||c9.set(e,{fiber:m,store:f});let g=!1,v=null;return{async configure(t={}){var n,a;let s;v=new Promise(e=>s=e);let{gl:o,size:l,scene:u,events:c,onCreated:h,shadows:d=!1,linear:p=!1,flat:m=!1,legacy:_=!1,orthographic:y=!1,frameloop:x="always",dpr:b=[1,2],performance:S,raycaster:M,camera:T,onPointerMissed:w}=t,E=f.getState(),A=E.gl;if(!E.gl){let t={canvas:e,powerPreference:"high-performance",antialias:!0,alpha:!0},n="function"==typeof o?await o(t):o;A=cU(n)?n:new uK({...t,...o}),E.set({gl:A})}let C=E.raycaster;C||E.set({raycaster:C=new s3});let{params:R,...P}=M||{};if(cv.equ(P,C,c7)||cC(C,{...P}),cv.equ(R,C.params,c7)||cC(C,{params:{...C.params,...R}}),!E.camera||E.camera===r&&!cv.equ(r,T,c7)){r=T;let e=null==T?void 0:T.isCamera,t=e?T:y?new sn(0,0,0,0,.1,1e3):new nE(75,0,.1,1e3);!e&&(t.position.z=5,T&&(cC(t,T),!t.manual&&("aspect"in T||"left"in T||"right"in T||"bottom"in T||"top"in T)&&(t.manual=!0,t.updateProjectionMatrix())),E.camera||null!=T&&T.rotation||t.lookAt(0,0,0)),E.set({camera:t}),C.camera=t}if(!E.scene){let e;null!=u&&u.isScene?cy(e=u,f,"",{}):(cy(e=new nL,f,"",{}),u&&cC(e,u)),E.set({scene:e})}c&&!E.events.handlers&&E.set({events:c(f)});let N=function(e,t){if(!t&&"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&e.parentElement){let{width:t,height:n,top:i,left:r}=e.parentElement.getBoundingClientRect();return{width:t,height:n,top:i,left:r}}return!t&&"u">typeof OffscreenCanvas&&e instanceof OffscreenCanvas?{width:e.width,height:e.height,top:0,left:0}:{width:0,height:0,top:0,left:0,...t}}(e,l);if(cv.equ(N,E.size,c7)||E.setSize(N.width,N.height,N.top,N.left),b&&E.viewport.dpr!==cm(b)&&E.setDpr(b),E.frameloop!==x&&E.setFrameloop(x),E.onPointerMissed||E.set({onPointerMissed:w}),S&&!cv.equ(S,E.performance,c7)&&E.set(e=>({performance:{...e.performance,...S}})),!E.xr){let e=(e,t)=>{let n=f.getState();"never"!==n.frameloop&&hf(e,!0,n,t)},t=()=>{let t=f.getState();t.gl.xr.enabled=t.gl.xr.isPresenting,t.gl.xr.setAnimationLoop(t.gl.xr.isPresenting?e:null),t.gl.xr.isPresenting||hp(t)},i={connect(){let e=f.getState().gl;e.xr.addEventListener("sessionstart",t),e.xr.addEventListener("sessionend",t)},disconnect(){let e=f.getState().gl;e.xr.removeEventListener("sessionstart",t),e.xr.removeEventListener("sessionend",t)}};"function"==typeof(null==(n=A.xr)?void 0:n.addEventListener)&&i.connect(),E.set({xr:i})}if(A.shadowMap){let e=A.shadowMap.enabled,t=A.shadowMap.type;A.shadowMap.enabled=!!d,cv.boo(d)?A.shadowMap.type=2:cv.str(d)?A.shadowMap.type=null!=(a=({basic:0,percentage:1,soft:2,variance:3})[d])?a:2:cv.obj(d)&&Object.assign(A.shadowMap,d),(e!==A.shadowMap.enabled||t!==A.shadowMap.type)&&(A.shadowMap.needsUpdate=!0)}return eu.enabled=!_,g||(A.outputColorSpace=p?L:I,A.toneMapping=4*!m),E.legacy!==_&&E.set(()=>({legacy:_})),E.linear!==p&&E.set(()=>({linear:p})),E.flat!==m&&E.set(()=>({flat:m})),!o||cv.fun(o)||cU(o)||cv.equ(o,A,c7)||cC(A,o),i=h,g=!0,s(),this},render(t){return g||v||this.configure(),v.then(()=>{c8.updateContainer((0,u9.jsx)(ht,{store:f,children:t,onCreated:i,rootElement:e}),m,null,()=>void 0)}),f},unmount(){hn(e)}}}function ht({store:e,children:t,onCreated:n,rootElement:i}){return cc(()=>{let t=e.getState();t.set(e=>({internal:{...e.internal,active:!0}})),n&&n(t),e.getState().events.connected||null==t.events.connect||t.events.connect(i)},[]),(0,u9.jsx)(cD.Provider,{value:e,children:t})}function hn(e,t){let n=c9.get(e),i=null==n?void 0:n.fiber;if(i){let r=null==n?void 0:n.store.getState();r&&(r.internal.active=!1),c8.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{null==r.events.disconnect||r.events.disconnect(),null==(n=r.gl)||null==(i=n.renderLists)||null==i.dispose||i.dispose(),null==(a=r.gl)||null==a.forceContextLoss||a.forceContextLoss(),null!=(s=r.gl)&&s.xr&&r.xr.disconnect();var n,i,a,s,o=r.scene;for(let e in"Scene"!==o.type&&(null==o.dispose||o.dispose()),o){let t=o[e];(null==t?void 0:t.type)!=="Scene"&&(null==t||null==t.dispose||t.dispose())}c9.delete(e),t&&t(e)}catch(e){}},500)})}}function hi({state:e={},children:t,container:n}){let{events:i,size:r,...a}=e,s=cO(),[o]=E.useState(()=>new s3),[l]=E.useState(()=>new Y),u=ch((e,t)=>{let a;if(t.camera&&r){let n=t.camera;a=e.viewport.getCurrentViewport(n,new eE,r),n!==e.camera&&cP(n,r)}return{...e,...t,scene:n,raycaster:o,pointer:l,mouse:l,previousRoot:s,events:{...e.events,...t.events,...i},size:{...e.size,...r},viewport:{...e.viewport,...a},setEvents:e=>t.set(t=>({...t,events:{...t.events,...e}}))}}),c=E.useMemo(()=>{let e=u3((e,t)=>({...a,set:e,get:t})),t=t=>e.setState(e=>u.current(t,e));return t(s.getState()),s.subscribe(t),e},[s,n]);return(0,u9.jsx)(u9.Fragment,{children:c8.createPortal((0,u9.jsx)(cD.Provider,{value:c,children:t}),c,null)})}let hr=new Set,ha=new Set,hs=new Set;function ho(e,t){if(e.size)for(let{callback:n}of e.values())n(t)}function hl(e,t){switch(e){case"before":return ho(hr,t);case"after":return ho(ha,t);case"tail":return ho(hs,t)}}function hu(e,t,n){let i=t.clock.getDelta();"never"===t.frameloop&&"number"==typeof e&&(i=e-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=e),s=t.internal.subscribers;for(let e=0;e0)&&!(null!=(t=c.gl.xr)&&t.isPresenting)&&(l+=hu(e,c))}if(hh=!1,hl("after",e),0===l)return hl("tail",e),hc=!1,cancelAnimationFrame(u)}function hp(e,t=1){var n;if(!e)return c9.forEach(e=>hp(e.store.getState(),t));(null==(n=e.gl.xr)||!n.isPresenting)&&e.internal.active&&"never"!==e.frameloop&&(t>1?e.internal.frames=Math.min(60,e.internal.frames+t):hh?e.internal.frames=2:e.internal.frames=1,hc||(hc=!0,requestAnimationFrame(hd)))}function hf(e,t=!0,n,i){if(t&&hl("before",e),n)hu(e,n,i);else for(let t of c9.values())hu(e,t.store.getState());t&&hl("after",e)}let hm={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function hg(e){let{handlePointer:t}=function(e){function t(e){return e.filter(e=>["Move","Over","Enter","Out","Leave"].some(t=>{var n;return null==(n=e.__r3f)?void 0:n.handlers["onPointer"+t]}))}function n(t){let{internal:n}=e.getState();for(let e of n.hovered.values())if(!t.length||!t.find(t=>t.object===e.object&&t.index===e.index&&t.instanceId===e.instanceId)){let i=e.eventObject.__r3f;if(n.hovered.delete(cL(e)),null!=i&&i.eventCount){let n=i.handlers,r={...e,intersections:t};null==n.onPointerOut||n.onPointerOut(r),null==n.onPointerLeave||n.onPointerLeave(r)}}}function i(e,t){for(let n=0;nn([]);case"onLostPointerCapture":return t=>{let{internal:i}=e.getState();"pointerId"in t&&i.capturedMap.has(t.pointerId)&&requestAnimationFrame(()=>{i.capturedMap.has(t.pointerId)&&(i.capturedMap.delete(t.pointerId),n([]))})}}return function(a){let{onPointerMissed:s,internal:o}=e.getState();o.lastEvent.current=a;let l="onPointerMove"===r,u="onClick"===r||"onContextMenu"===r||"onDoubleClick"===r,c=function(t,n){let i=e.getState(),r=new Set,a=[],s=n?n(i.internal.interaction):i.internal.interaction;for(let e=0;e{let n=cg(e.object),i=cg(t.object);return n&&i&&i.events.priority-n.events.priority||e.distance-t.distance}).filter(e=>{let t=cL(e);return!r.has(t)&&(r.add(t),!0)});for(let e of(i.events.filter&&(o=i.events.filter(o,i)),o)){let t=e.object;for(;t;){var l;null!=(l=t.__r3f)&&l.eventCount&&a.push({...e,eventObject:t}),t=t.parent}}if("pointerId"in t&&i.internal.capturedMap.has(t.pointerId))for(let e of i.internal.capturedMap.get(t.pointerId).values())r.has(cL(e.intersection))||a.push(e.intersection);return a}(a,l?t:void 0),h=u?function(t){let{internal:n}=e.getState(),i=t.offsetX-n.initialClick[0],r=t.offsetY-n.initialClick[1];return Math.round(Math.sqrt(i*i+r*r))}(a):0;"onPointerDown"===r&&(o.initialClick=[a.offsetX,a.offsetY],o.initialHits=c.map(e=>e.eventObject)),u&&!c.length&&h<=2&&(i(a,o.interaction),s&&s(a)),l&&n(c),!function(e,t,i,r){if(e.length){let a={stopped:!1};for(let s of e){let o=cg(s.object);if(o||s.object.traverseAncestors(e=>{let t=cg(e);if(t)return o=t,!1}),o){let{raycaster:l,pointer:u,camera:c,internal:h}=o,d=new eE(u.x,u.y,0).unproject(c),p=e=>{var t,n;return null!=(t=null==(n=h.capturedMap.get(e))?void 0:n.has(s.eventObject))&&t},f=e=>{let n={intersection:s,target:t.target};h.capturedMap.has(e)?h.capturedMap.get(e).set(s.eventObject,n):h.capturedMap.set(e,new Map([[s.eventObject,n]])),t.target.setPointerCapture(e)},m=e=>{let t=h.capturedMap.get(e);t&&cN(h.capturedMap,s.eventObject,t,e)},g={};for(let e in t){let n=t[e];"function"!=typeof n&&(g[e]=n)}let v={...s,...g,pointer:u,intersections:e,stopped:a.stopped,delta:i,unprojectedPoint:d,ray:l.ray,camera:c,stopPropagation(){let i="pointerId"in t&&h.capturedMap.get(t.pointerId);(!i||i.has(s.eventObject))&&(v.stopped=a.stopped=!0,h.hovered.size&&Array.from(h.hovered.values()).find(e=>e.eventObject===s.eventObject)&&n([...e.slice(0,e.indexOf(s)),s]))},target:{hasPointerCapture:p,setPointerCapture:f,releasePointerCapture:m},currentTarget:{hasPointerCapture:p,setPointerCapture:f,releasePointerCapture:m},nativeEvent:t};if(r(v),!0===a.stopped)break}}}}(c,a,h,function(e){let t=e.eventObject,n=t.__r3f;if(!(null!=n&&n.eventCount))return;let s=n.handlers;if(l){if(s.onPointerOver||s.onPointerEnter||s.onPointerOut||s.onPointerLeave){let t=cL(e),n=o.hovered.get(t);n?n.stopped&&e.stopPropagation():(o.hovered.set(t,e),null==s.onPointerOver||s.onPointerOver(e),null==s.onPointerEnter||s.onPointerEnter(e))}null==s.onPointerMove||s.onPointerMove(e)}else{let n=s[r];n?(!u||o.initialHits.includes(t))&&(i(a,o.interaction.filter(e=>!o.initialHits.includes(e))),n(e)):u&&o.initialHits.includes(t)&&i(a,o.interaction.filter(e=>!o.initialHits.includes(e)))}})}}}}(e);return{priority:1,enabled:!0,compute(e,t,n){t.pointer.set(e.offsetX/t.size.width*2-1,-(2*(e.offsetY/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)},connected:void 0,handlers:Object.keys(hm).reduce((e,n)=>({...e,[n]:t(n)}),{}),update:()=>{var t;let{events:n,internal:i}=e.getState();null!=(t=i.lastEvent)&&t.current&&n.handlers&&n.handlers.onPointerMove(i.lastEvent.current)},connect:t=>{let{set:n,events:i}=e.getState();if(null==i.disconnect||i.disconnect(),n(e=>({events:{...e.events,connected:t}})),i.handlers)for(let e in i.handlers){let n=i.handlers[e],[r,a]=hm[e];t.addEventListener(r,n,{passive:a})}},disconnect:()=>{let{set:t,events:n}=e.getState();if(n.connected){if(n.handlers)for(let e in n.handlers){let t=n.handlers[e],[i]=hm[e];n.connected.removeEventListener(i,t)}t(e=>({events:{...e.events,connected:void 0}}))}}}}e.s(["B",0,cp,"C",0,cF,"D",0,cz,"E",0,cf,"G",0,cH,"a",0,ch,"b",0,cc,"c",0,he,"d",0,hn,"e",0,cZ,"f",0,hg,"i",0,cl,"o",0,function(e,t,n){return(0,u9.jsx)(hi,{children:e,container:t,state:n})},"s",0,cC,"u",0,cd],1950),e.i(8560),e.s(["ACESFilmicToneMapping",0,4,"AddEquation",0,100,"AddOperation",0,2,"AdditiveAnimationBlendMode",0,2501,"AdditiveBlending",0,2,"AgXToneMapping",0,6,"AlphaFormat",0,1021,"AlwaysCompare",0,519,"AlwaysDepth",0,1,"AlwaysStencilFunc",0,519,"AmbientLight",0,sa,"AnimationAction",0,sY,"AnimationClip",0,aB,"AnimationLoader",0,aq,"AnimationMixer",0,sJ,"AnimationObjectGroup",0,sq,"AnimationUtils",0,aE,"ArcCurve",0,rs,"ArrayCamera",0,sT,"ArrowHelper",0,oP,"AttachedBindMode",0,R,"Audio",0,sL,"AudioAnalyser",0,sz,"AudioContext",0,s_,"AudioListener",0,sI,"AudioLoader",0,sy,"AxesHelper",0,oI,"BackSide",0,1,"BasicDepthPacking",0,3200,"BasicShadowMap",0,0,"BatchedMesh",0,iz,"Bone",0,ie,"BooleanKeyframeTrack",0,aL,"Box2",0,oe,"Box3",0,eR,"Box3Helper",0,oA,"BoxGeometry",0,ng,"BoxHelper",0,oE,"BufferAttribute",0,tZ,"BufferGeometry",0,nn,"BufferGeometryLoader",0,sd,"ByteType",0,1010,"Cache",0,ak,"Camera",0,nS,"CameraHelper",0,oM,"CanvasTexture",0,rn,"CapsuleGeometry",0,rA,"CatmullRomCurve3",0,rd,"CineonToneMapping",0,3,"CircleGeometry",0,rC,"ClampToEdgeWrapping",0,1001,"Clock",0,sw,"Color",0,tz,"ColorKeyframeTrack",0,aN,"ColorManagement",0,eu,"CompressedArrayTexture",0,re,"CompressedCubeTexture",0,rt,"CompressedTexture",0,i7,"CompressedTextureLoader",0,aY,"ConeGeometry",0,rP,"ConstantAlphaFactor",0,213,"ConstantColorFactor",0,211,"Controls",0,oN,"CubeCamera",0,nA,"CubeReflectionMapping",0,301,"CubeRefractionMapping",0,302,"CubeTexture",0,nC,"CubeTextureLoader",0,aJ,"CubeUVReflectionMapping",0,306,"CubicBezierCurve",0,rg,"CubicBezierCurve3",0,rv,"CubicInterpolant",0,aC,"CullFaceBack",0,1,"CullFaceFront",0,2,"CullFaceFrontBack",0,3,"CullFaceNone",0,0,"Curve",0,rr,"CurvePath",0,rT,"CustomBlending",0,5,"CustomToneMapping",0,5,"CylinderGeometry",0,rR,"Cylindrical",0,s8,"Data3DTexture",0,eM,"DataArrayTexture",0,eb,"DataTexture",0,it,"DataTextureLoader",0,aK,"DataUtils",0,tX,"DecrementStencilOp",0,7683,"DecrementWrapStencilOp",0,34056,"DefaultLoadingManager",0,aV,"DepthFormat",0,1026,"DepthStencilFormat",0,1027,"DepthTexture",0,ri,"DetachedBindMode",0,P,"DirectionalLight",0,sr,"DirectionalLightHelper",0,ox,"DiscreteInterpolant",0,aP,"DodecahedronGeometry",0,rL,"DoubleSide",0,2,"DstAlphaFactor",0,206,"DstColorFactor",0,208,"DynamicCopyUsage",0,35050,"DynamicDrawUsage",0,35048,"DynamicReadUsage",0,35049,"EdgesGeometry",0,rF,"EllipseCurve",0,ra,"EqualCompare",0,514,"EqualDepth",0,4,"EqualStencilFunc",0,514,"EquirectangularReflectionMapping",0,303,"EquirectangularRefractionMapping",0,304,"Euler",0,tn,"EventDispatcher",0,O,"ExtrudeGeometry",0,r4,"FileLoader",0,aX,"Float16BufferAttribute",0,t3,"Float32BufferAttribute",0,t4,"FloatType",0,1015,"Fog",0,nI,"FogExp2",0,nP,"FramebufferTexture",0,i9,"FrontSide",0,0,"Frustum",0,iS,"GLBufferAttribute",0,s1,"GLSL1",0,"100","GLSL3",0,D,"GreaterCompare",0,516,"GreaterDepth",0,6,"GreaterEqualCompare",0,518,"GreaterEqualDepth",0,5,"GreaterEqualStencilFunc",0,518,"GreaterStencilFunc",0,516,"GridHelper",0,om,"Group",0,i6,"HalfFloatType",0,1016,"HemisphereLight",0,a0,"HemisphereLightHelper",0,of,"IcosahedronGeometry",0,r6,"ImageBitmapLoader",0,sv,"ImageLoader",0,aZ,"ImageUtils",0,ed,"IncrementStencilOp",0,7682,"IncrementWrapStencilOp",0,34055,"InstancedBufferAttribute",0,is,"InstancedBufferGeometry",0,sh,"InstancedInterleavedBuffer",0,s0,"InstancedMesh",0,im,"Int16BufferAttribute",0,tQ,"Int32BufferAttribute",0,t1,"Int8BufferAttribute",0,tJ,"IntType",0,1013,"InterleavedBuffer",0,nN,"InterleavedBufferAttribute",0,nD,"Interpolant",0,aA,"InterpolateDiscrete",0,2300,"InterpolateLinear",0,2301,"InterpolateSmooth",0,2302,"InvertStencilOp",0,5386,"KeepStencilOp",0,7680,"KeyframeTrack",0,aI,"LOD",0,nQ,"LatheGeometry",0,rE,"Layers",0,ti,"LessCompare",0,513,"LessDepth",0,2,"LessEqualCompare",0,515,"LessEqualDepth",0,3,"LessEqualStencilFunc",0,515,"LessStencilFunc",0,513,"Light",0,aQ,"LightProbe",0,sl,"Line",0,iq,"Line3",0,oi,"LineBasicMaterial",0,iB,"LineCurve",0,r_,"LineCurve3",0,ry,"LineDashedMaterial",0,ax,"LineLoop",0,i$,"LineSegments",0,iK,"LinearFilter",0,1006,"LinearInterpolant",0,aR,"LinearMipMapLinearFilter",0,1008,"LinearMipMapNearestFilter",0,1007,"LinearMipmapLinearFilter",0,1008,"LinearMipmapNearestFilter",0,1007,"LinearSRGBColorSpace",0,L,"LinearToneMapping",0,1,"LinearTransfer",0,N,"Loader",0,aG,"LoaderUtils",0,sc,"LoadingManager",0,aH,"LoopOnce",0,2200,"LoopPingPong",0,2202,"LoopRepeat",0,2201,"LuminanceAlphaFormat",0,1025,"LuminanceFormat",0,1024,"MOUSE",0,A,"Material",0,tH,"MaterialLoader",0,su,"MathUtils",0,q,"Matrix2",0,s9,"Matrix3",0,Z,"Matrix4",0,e2,"MaxEquation",0,104,"Mesh",0,nf,"MeshBasicMaterial",0,tV,"MeshDepthMaterial",0,av,"MeshDistanceMaterial",0,a_,"MeshLambertMaterial",0,ag,"MeshMatcapMaterial",0,ay,"MeshNormalMaterial",0,am,"MeshPhongMaterial",0,ap,"MeshPhysicalMaterial",0,ad,"MeshStandardMaterial",0,ah,"MeshToonMaterial",0,af,"MinEquation",0,103,"MirroredRepeatWrapping",0,1002,"MixOperation",0,1,"MultiplyBlending",0,4,"MultiplyOperation",0,0,"NearestFilter",0,1003,"NearestMipMapLinearFilter",0,1005,"NearestMipMapNearestFilter",0,1004,"NearestMipmapLinearFilter",0,1005,"NearestMipmapNearestFilter",0,1004,"NeutralToneMapping",0,7,"NeverCompare",0,512,"NeverDepth",0,0,"NeverStencilFunc",0,512,"NoBlending",0,0,"NoColorSpace",0,"","NoToneMapping",0,0,"NormalAnimationBlendMode",0,2500,"NormalBlending",0,1,"NotEqualCompare",0,517,"NotEqualDepth",0,7,"NotEqualStencilFunc",0,517,"NumberKeyframeTrack",0,aU,"Object3D",0,ty,"ObjectLoader",0,sp,"ObjectSpaceNormalMap",0,1,"OctahedronGeometry",0,r8,"OneFactor",0,201,"OneMinusConstantAlphaFactor",0,214,"OneMinusConstantColorFactor",0,212,"OneMinusDstAlphaFactor",0,207,"OneMinusDstColorFactor",0,209,"OneMinusSrcAlphaFactor",0,205,"OneMinusSrcColorFactor",0,203,"OrthographicCamera",0,sn,"PCFShadowMap",0,1,"PCFSoftShadowMap",0,2,"PMREMGenerator",0,o8,"Path",0,rw,"PerspectiveCamera",0,nE,"Plane",0,iy,"PlaneGeometry",0,r9,"PlaneHelper",0,oC,"PointLight",0,st,"PointLightHelper",0,oc,"Points",0,i4,"PointsMaterial",0,iQ,"PolarGridHelper",0,og,"PolyhedronGeometry",0,rI,"PositionalAudio",0,sF,"PropertyBinding",0,sX,"PropertyMixer",0,sB,"QuadraticBezierCurve",0,rx,"QuadraticBezierCurve3",0,rb,"Quaternion",0,ew,"QuaternionKeyframeTrack",0,aO,"QuaternionLinearInterpolant",0,aD,"RED_GREEN_RGTC2_Format",0,36285,"RED_RGTC1_Format",0,36283,"REVISION",0,"171","RGBADepthPacking",0,3201,"RGBAFormat",0,1023,"RGBAIntegerFormat",0,1033,"RGBA_ASTC_10x10_Format",0,37819,"RGBA_ASTC_10x5_Format",0,37816,"RGBA_ASTC_10x6_Format",0,37817,"RGBA_ASTC_10x8_Format",0,37818,"RGBA_ASTC_12x10_Format",0,37820,"RGBA_ASTC_12x12_Format",0,37821,"RGBA_ASTC_4x4_Format",0,37808,"RGBA_ASTC_5x4_Format",0,37809,"RGBA_ASTC_5x5_Format",0,37810,"RGBA_ASTC_6x5_Format",0,37811,"RGBA_ASTC_6x6_Format",0,37812,"RGBA_ASTC_8x5_Format",0,37813,"RGBA_ASTC_8x6_Format",0,37814,"RGBA_ASTC_8x8_Format",0,37815,"RGBA_BPTC_Format",0,36492,"RGBA_ETC2_EAC_Format",0,37496,"RGBA_PVRTC_2BPPV1_Format",0,35843,"RGBA_PVRTC_4BPPV1_Format",0,35842,"RGBA_S3TC_DXT1_Format",0,33777,"RGBA_S3TC_DXT3_Format",0,33778,"RGBA_S3TC_DXT5_Format",0,33779,"RGBDepthPacking",0,3202,"RGBFormat",0,1022,"RGBIntegerFormat",0,1032,"RGB_BPTC_SIGNED_Format",0,36494,"RGB_BPTC_UNSIGNED_Format",0,36495,"RGB_ETC1_Format",0,36196,"RGB_ETC2_Format",0,37492,"RGB_PVRTC_2BPPV1_Format",0,35841,"RGB_PVRTC_4BPPV1_Format",0,35840,"RGB_S3TC_DXT1_Format",0,33776,"RGDepthPacking",0,3203,"RGFormat",0,1030,"RGIntegerFormat",0,1031,"RawShaderMaterial",0,ac,"Ray",0,e1,"Raycaster",0,s3,"RectAreaLight",0,ss,"RedFormat",0,1028,"RedIntegerFormat",0,1029,"ReinhardToneMapping",0,2,"RenderTarget",0,ey,"RepeatWrapping",0,1e3,"ReplaceStencilOp",0,7681,"ReverseSubtractEquation",0,102,"RingGeometry",0,r7,"SIGNED_RED_GREEN_RGTC2_Format",0,36286,"SIGNED_RED_RGTC1_Format",0,36284,"SRGBColorSpace",0,I,"SRGBTransfer",0,U,"Scene",0,nL,"ShaderChunk",0,oB,"ShaderLib",0,oH,"ShaderMaterial",0,nb,"ShadowMaterial",0,au,"Shape",0,rz,"ShapeGeometry",0,ae,"ShapePath",0,oL,"ShapeUtils",0,r1,"ShortType",0,1011,"Skeleton",0,ia,"SkeletonHelper",0,ou,"SkinnedMesh",0,n7,"Source",0,ef,"Sphere",0,eq,"SphereGeometry",0,at,"Spherical",0,s6,"SphericalHarmonics3",0,so,"SplineCurve",0,rS,"SpotLight",0,a6,"SpotLightHelper",0,oa,"Sprite",0,nZ,"SpriteMaterial",0,nO,"SrcAlphaFactor",0,204,"SrcAlphaSaturateFactor",0,210,"SrcColorFactor",0,202,"StaticCopyUsage",0,35046,"StaticDrawUsage",0,35044,"StaticReadUsage",0,35045,"StereoCamera",0,sM,"StreamCopyUsage",0,35042,"StreamDrawUsage",0,35040,"StreamReadUsage",0,35041,"StringKeyframeTrack",0,aF,"SubtractEquation",0,101,"SubtractiveBlending",0,3,"TOUCH",0,C,"TangentSpaceNormalMap",0,0,"TetrahedronGeometry",0,an,"Texture",0,ev,"TextureLoader",0,a$,"TextureUtils",0,oD,"TorusGeometry",0,ai,"TorusKnotGeometry",0,ar,"Triangle",0,tN,"TriangleFanDrawMode",0,2,"TriangleStripDrawMode",0,1,"TrianglesDrawMode",0,0,"TubeGeometry",0,aa,"UVMapping",0,300,"Uint16BufferAttribute",0,t0,"Uint32BufferAttribute",0,t2,"Uint8BufferAttribute",0,tK,"Uint8ClampedBufferAttribute",0,t$,"Uniform",0,sK,"UniformsGroup",0,sQ,"UniformsLib",0,ok,"UniformsUtils",0,nx,"UnsignedByteType",0,1009,"UnsignedInt248Type",0,1020,"UnsignedInt5999Type",0,35902,"UnsignedIntType",0,1014,"UnsignedShort4444Type",0,1017,"UnsignedShort5551Type",0,1018,"UnsignedShortType",0,1012,"VSMShadowMap",0,3,"Vector2",0,Y,"Vector3",0,eE,"Vector4",0,e_,"VectorKeyframeTrack",0,az,"VideoTexture",0,i8,"WebGL3DRenderTarget",0,eT,"WebGLArrayRenderTarget",0,eS,"WebGLCoordinateSystem",0,2e3,"WebGLCubeRenderTarget",0,nR,"WebGLMultipleRenderTargets",0,oO,"WebGLRenderTarget",0,ex,"WebGLRenderer",0,uK,"WebGLUtils",0,uk,"WebGPUCoordinateSystem",0,2001,"WireframeGeometry",0,as,"WrapAroundEnding",0,2402,"ZeroCurvatureEnding",0,2400,"ZeroFactor",0,200,"ZeroSlopeEnding",0,2401,"ZeroStencilOp",0,0,"createCanvasElement",0,et],32009);var hv=e.i(32009);function h_(e,t){let n;return(...i)=>{window.clearTimeout(n),n=window.setTimeout(()=>e(...i),t)}}let hy=["x","y","top","bottom","left","right","width","height"];function hx({ref:e,children:t,fallback:n,resize:i,style:r,gl:a,events:s=hg,eventSource:o,eventPrefix:l,shadows:u,linear:c,flat:h,legacy:d,orthographic:p,frameloop:f,dpr:m,performance:g,raycaster:v,camera:_,scene:y,onPointerMissed:x,onCreated:b,...S}){E.useMemo(()=>cZ(hv),[]);let M=cd(),[T,w]=function({debounce:e,scroll:t,polyfill:n,offsetSize:i}={debounce:0,scroll:!1,offsetSize:!1}){var r,a,s;let o=n||("u"(p.current=!0,()=>void(p.current=!1)));let[f,m,g]=(0,E.useMemo)(()=>{let e=()=>{let e,t;if(!c.current.element)return;let{left:n,top:r,width:a,height:s,bottom:o,right:l,x:h,y:d}=c.current.element.getBoundingClientRect(),f={left:n,top:r,width:a,height:s,bottom:o,right:l,x:h,y:d};c.current.element instanceof HTMLElement&&i&&(f.height=c.current.element.offsetHeight,f.width=c.current.element.offsetWidth),Object.freeze(f),p.current&&(e=c.current.lastBounds,t=f,!hy.every(n=>e[n]===t[n]))&&u(c.current.lastBounds=f)};return[e,d?h_(e,d):e,h?h_(e,h):e]},[u,i,h,d]);function v(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",g,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null),c.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",c.current.orientationHandler))}function _(){c.current.element&&(c.current.resizeObserver=new o(g),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(e=>e.addEventListener("scroll",g,{capture:!0,passive:!0})),c.current.orientationHandler=()=>{g()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",c.current.orientationHandler))}return r=g,a=!!t,(0,E.useEffect)(()=>{if(a)return window.addEventListener("scroll",r,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",r,!0)},[r,a]),s=m,(0,E.useEffect)(()=>(window.addEventListener("resize",s),()=>void window.removeEventListener("resize",s)),[s]),(0,E.useEffect)(()=>{v(),_()},[t,g,m]),(0,E.useEffect)(()=>v,[]),[e=>{e&&e!==c.current.element&&(v(),c.current.element=e,c.current.scrollContainers=function e(t){let n=[];if(!t||t===document.body)return n;let{overflow:i,overflowX:r,overflowY:a}=window.getComputedStyle(t);return[i,r,a].some(e=>"auto"===e||"scroll"===e)&&n.push(t),[...n,...e(t.parentElement)]}(e),_())},l,f]}({scroll:!0,debounce:{scroll:50,resize:0},...i}),A=E.useRef(null),C=E.useRef(null);E.useImperativeHandle(e,()=>A.current);let R=ch(x),[P,I]=E.useState(!1),[L,N]=E.useState(!1);if(P)throw P;if(L)throw L;let U=E.useRef(null);cc(()=>{let e=A.current;w.width>0&&w.height>0&&e&&(U.current||(U.current=he(e)),async function(){await U.current.configure({gl:a,scene:y,events:s,shadows:u,linear:c,flat:h,legacy:d,orthographic:p,frameloop:f,dpr:m,performance:g,raycaster:v,camera:_,size:w,onPointerMissed:(...e)=>null==R.current?void 0:R.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(o?cl(o)?o.current:o:C.current),l&&e.setEvents({compute:(e,t)=>{let n=e[l+"X"],i=e[l+"Y"];t.pointer.set(n/t.size.width*2-1,-(2*(i/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==b||b(e)}}),U.current.render((0,u9.jsx)(M,{children:(0,u9.jsx)(cf,{set:N,children:(0,u9.jsx)(E.Suspense,{fallback:(0,u9.jsx)(cp,{set:I}),children:null!=t?t:null})})}))}())}),E.useEffect(()=>{let e=A.current;if(e)return()=>hn(e)},[]);let D=o?"none":"auto";return(0,u9.jsx)("div",{ref:C,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:D,...r},...S,children:(0,u9.jsx)("div",{ref:T,style:{width:"100%",height:"100%"},children:(0,u9.jsx)("canvas",{ref:A,style:{display:"block"},children:n})})})}e.s(["Canvas",0,function(e){return(0,u9.jsx)(ci,{children:(0,u9.jsx)(hx,{...e})})}],75056),e.s(["useFrame",0,cz],25234),e.s(["useThree",0,cF],28600)},67335,e=>{"use strict";var t=e.i(1950);e.s(["extend",()=>t.e])},60602,e=>{"use strict";var t=e.i(1950);e.s(["useLoader",()=>t.G])},44208,e=>{"use strict";var t=e.i(1950);e.s(["createPortal",()=>t.o])},24205,e=>{"use strict";var t=e.i(1950);e.s(["applyProps",()=>t.s])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0d3shmwh5_nmn.js b/build/.next/static/chunks/0d3shmwh5_nmn.js new file mode 100644 index 0000000..9c50c87 --- /dev/null +++ b/build/.next/static/chunks/0d3shmwh5_nmn.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,91915,(e,t,r)=>{"use strict";function n(e,t={}){if(t.onlyHashChange)return void e();let r=document.documentElement;if("smooth"!==r.dataset.scrollBehavior)return void e();let a=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=a}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(33525)},68017,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return u}});let n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),i=e.r(90373),s=e.r(54394);e.r(33525);let l=e.r(8372);class c extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,s.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,s.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:o}=this.state,i={[s.HTTPAccessErrorStatus.NOT_FOUND]:e,[s.HTTPAccessErrorStatus.FORBIDDEN]:t,[s.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(o){let l=o===s.HTTPAccessErrorStatus.NOT_FOUND&&e,c=o===s.HTTPAccessErrorStatus.FORBIDDEN&&t,u=o===s.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return l||c||u?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,i[o]]}):n}return n}}function u({notFound:e,forbidden:t,unauthorized:r,children:n}){let s=(0,i.useUntrackedPathname)(),d=(0,o.useContext)(l.MissingSlotContext);return e||t||r?(0,a.jsx)(c,{pathname:s,notFound:e,forbidden:t,unauthorized:r,missingSlots:d,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},28298,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(71645);function a(e,t,r){let[a,o]=(0,n.useState)(()=>({tree:e,cacheNode:t,stateKey:r,next:null}));if(a.tree===e)return a;let i={tree:e,cacheNode:t,stateKey:r,next:null},s=1,l=a,c=i;for(;null!==l&&s<1;){if(l.stateKey===r){c.next=l.next;break}{s++;let e={tree:l.tree,cacheNode:l.cacheNode,stateKey:l.stateKey,next:null};c.next=e,c=e}l=l.next}return o(i),i}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39756,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={LoadingBoundaryProvider:function(){return j},default:function(){return A}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(55682),i=e.r(90809),s=e.r(43476),l=i._(e.r(71645)),c=o._(e.r(74080)),u=e.r(8372),d=e.r(1244),f=e.r(72383),p=e.r(91915),m=e.r(58442),h=e.r(68017),g=e.r(70725),y=e.r(28298);e.r(74180);let b=e.r(61994),P=e.r(33906),_=e.r(95871),v=c.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function R(e,t){let r=e.getClientRects();if(0===r.length)return!1;let n=1/0;for(let e=0;e=0&&n<=t}class O extends l.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,cacheNode:t}=this.props,r=e.forceScroll?e.scrollRef:t.scrollRef;if(null===r||!r.current)return;let n=null,a=e.hashFragment;if(a&&(n="top"===a?document.body:document.getElementById(a)??document.getElementsByName(a)[0]),n||(n="u"0===t[e])}(n);){if(null===n.nextElementSibling)return;n=n.nextElementSibling}r.current=!1,(0,p.disableSmoothScrollDuringRouteTransition)(()=>{if(a)return void n.scrollIntoView();let e=document.documentElement,t=e.clientHeight;!R(n,t)&&(e.scrollTop=0,R(n,t)||n.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,e.hashFragment=null,n.focus()}}}}function w({children:e,cacheNode:t}){let r=(0,l.useContext)(u.GlobalLayoutRouterContext);if(!r)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,s.jsx)(O,{focusAndScrollRef:r.focusAndScrollRef,cacheNode:t,children:e})}function S({tree:e,segmentPath:t,debugNameContext:r,cacheNode:n,params:a,url:o,isActive:i}){let c,f=(0,l.useContext)(u.GlobalLayoutRouterContext);if((0,l.useContext)(b.NavigationPromisesContext),!f)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let p=null!==n?n:(0,l.use)(d.unresolvedThenable),m=null!==p.prefetchRsc?p.prefetchRsc:p.rsc,h=(0,l.useDeferredValue)(p.rsc,m);if((0,_.isDeferredRsc)(h)){let e=(0,l.use)(h);null===e&&(0,l.use)(d.unresolvedThenable),c=e}else null===h&&(0,l.use)(d.unresolvedThenable),c=h;let g=c;return(0,s.jsx)(u.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:p,parentSegmentPath:t,parentParams:a,parentLoadingData:null,debugNameContext:r,url:o,isActive:i},children:g})}function j({loading:e,children:t}){let r=(0,l.use)(u.LayoutRouterContext);return null===r?t:(0,s.jsx)(u.LayoutRouterContext.Provider,{value:{parentTree:r.parentTree,parentCacheNode:r.parentCacheNode,parentSegmentPath:r.parentSegmentPath,parentParams:r.parentParams,parentLoadingData:e,debugNameContext:r.debugNameContext,url:r.url,isActive:r.isActive},children:t})}function C({name:e,loading:t,children:r}){if(null!==t){let n=t[0],a=t[1],o=t[2];return(0,s.jsx)(l.Suspense,{name:e,fallback:(0,s.jsxs)(s.Fragment,{children:[a,o,n]}),children:r})}return(0,s.jsx)(s.Fragment,{children:r})}function A({parallelRouterKey:e,error:t,errorStyles:r,errorScripts:n,templateStyles:a,templateScripts:o,template:i,notFound:c,forbidden:p,unauthorized:b,segmentViewBoundaries:_}){let v=(0,l.useContext)(u.LayoutRouterContext);if(!v)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:E,parentCacheNode:R,parentSegmentPath:O,parentParams:j,parentLoadingData:x,url:k,isActive:T,debugNameContext:N}=v,D=E[0],M=null===O?[e]:O.concat([D,e]),I=E[1][e],F=R.slots;(void 0===I||null===F)&&(0,l.use)(d.unresolvedThenable);let $=I[0],L=F[e]??null,U=(0,g.createRouterCacheKey)($,!0),X=(0,y.useRouterBFCache)(I,L,U),H=[];do{let e=X.tree,l=X.cacheNode,d=X.stateKey,g=e[0],y=j;if(Array.isArray(g)){let e=g[0],t=g[1],r=g[2],n=(0,P.getParamValueFromCacheKey)(t,r);null!==n&&(y={...j,[e]:n})}let _=function(e){if("/"===e)return"/";if("string"==typeof e)if("(__SLOT__)"===e)return;else return e+"/";return e[1]+"/"}(g),v=_??N,E=void 0===_?void 0:N,R=(0,s.jsxs)(w,{cacheNode:l,children:[(0,s.jsx)(f.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:(0,s.jsx)(C,{name:E,loading:x,children:(0,s.jsx)(h.HTTPAccessFallbackBoundary,{notFound:c,forbidden:p,unauthorized:b,children:(0,s.jsxs)(m.RedirectBoundary,{children:[(0,s.jsx)(S,{url:k,tree:e,params:y,cacheNode:l,segmentPath:M,debugNameContext:v,isActive:T&&d===U}),null]})})})}),null]}),O=(0,s.jsxs)(u.TemplateContext.Provider,{value:R,children:[a,o,i]},d);H.push(O),X=X.next}while(null!==X)return H}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},37457,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),i=e.r(8372);function s(){let e=(0,o.useContext)(i.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},93504,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66996,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(93504).createRenderSearchParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},6831,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97689,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(6831).createRenderParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66373,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={accumulateRootVaryParam:function(){return y},accumulateVaryParam:function(){return g},createResponseVaryParamsAccumulator:function(){return c},createVaryParamsAccumulator:function(){return u},createVaryingParams:function(){return b},createVaryingSearchParams:function(){return P},emptyVaryParamsAccumulator:function(){return l},finishAccumulatingVaryParams:function(){return _},getMetadataVaryParamsAccumulator:function(){return d},getMetadataVaryParamsThenable:function(){return p},getRootParamsVaryParamsAccumulator:function(){return h},getVaryParamsThenable:function(){return f},getViewportVaryParamsAccumulator:function(){return m}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(62141);function i(){let e={varyParams:new Set,status:"pending",value:new Set,then(t){t&&("pending"===e.status?e.resolvers.push(t):t(e.value))},resolvers:[]};return e}let s=new Set,l={varyParams:s,status:"fulfilled",value:s,then(e){e&&e(s)},resolvers:[]};function c(){let e=i();return{head:e,rootParams:i(),segments:new Set}}function u(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t){let e=i();return t.segments.add(e),e}}}return null}function d(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.head}}return null}function f(e){return e}function p(){let e=d();return null!==e?e:null}let m=d;function h(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.rootParams}}return null}function g(e,t){e.varyParams.add(t)}function y(e){let t=h();null!==t&&g(t,e)}function b(e,t,r){if(null!==r)return new Proxy(t,{get:(t,n,a)=>("string"==typeof n&&(n===r||Object.prototype.hasOwnProperty.call(t,n))&&g(e,n),Reflect.get(t,n,a)),has:(t,n)=>(n===r&&g(e,r),Reflect.has(t,n)),ownKeys:t=>(g(e,r),Reflect.ownKeys(t))});let n={};for(let r in t)Object.defineProperty(n,r,{get:()=>(g(e,r),t[r]),enumerable:!0});return n}function P(e,t){let r={};for(let n in t)Object.defineProperty(r,n,{get:()=>(g(e,"?"),t[n]),enumerable:!0});return r}async function _(e){let t=e.rootParams.varyParams;for(let r of(v(e.head,t),e.segments))v(r,t);await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function v(e,t){if("pending"!==e.status)return;let r=new Set(e.varyParams);for(let e of t)r.add(e);for(let t of(e.value=r,e.status="fulfilled",e.resolvers))t(r);e.resolvers=[]}},42715,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},76361,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return l}});let n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var r={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e.r(71645));function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}let o={current:null},i="function"==typeof n.cache?n.cache:e=>e,s=console.warn;function l(e){return function(...t){s(e(...t))}}i(e=>{try{s(o.current)}finally{o.current=null}})},65932,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return s},describeStringPropertyAccess:function(){return i},wellKnownProperties:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function i(e,t){return o.test(t)?`\`${e}.${t}\``:`\`${e}[${JSON.stringify(t)}]\``}function s(e,t){let r=JSON.stringify(t);return`\`Reflect.has(${e}, ${r})\`, \`${r} in ${e}\`, or similar`}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule","@@iterator"])},83066,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},41643,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(83066)},50999,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(43248),i=e.r(41643);function s(e,t){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function c(){let e=i.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},28649,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={RequestCookies:()=>h,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>f,stringifyCookie:()=>u};for(var c in l)n(s,c,{get:l[c],enumerable:!0});function u(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function f(e){if(!e)return;let[[t,r],...n]=d(e),{domain:a,expires:o,httponly:i,maxage:s,path:l,samesite:c,secure:u,partitioned:f,priority:h}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,b={name:t,value:decodeURIComponent(r),domain:a,...o&&{expires:new Date(o)},...i&&{httpOnly:!0},..."string"==typeof s&&{maxAge:Number(s)},path:l,...c&&{sameSite:p.includes(g=(g=c).toLowerCase())?g:void 0},...u&&{secure:!0},...h&&{priority:m.includes(y=(y=h).toLowerCase())?y:void 0},...f&&{partitioned:!0}};let e={};for(let t in b)b[t]&&(e[t]=b[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||void 0===s||n(e,s,{get:()=>t[s],enumerable:!(r=a(t,s))||r.enumerable});return e})(n({},"__esModule",{value:!0}),s);var p=["strict","lax","none"],m=["low","medium","high"],h=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>u(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>u(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,o,i=[],s=0;function l(){for(;s=e.length)&&i.push(e.substring(t,e.length))}return i}(a)){const t=f(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=u(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(u).join("; ")}}},96883,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RequestCookies:function(){return o.RequestCookies},ResponseCookies:function(){return o.ResponseCookies},stringifyCookie:function(){return o.stringifyCookie}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(28649)},97270,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MutableRequestCookiesAdapter:function(){return m},ReadonlyRequestCookiesError:function(){return c},RequestCookiesAdapter:function(){return u},appendMutableCookies:function(){return p},areCookiesMutableInCurrentPhase:function(){return g},createCookiesWithMutableAccessCheck:function(){return h},getModifiedCookieValues:function(){return f},responseCookiesToRequestCookies:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(96883),i=e.r(42715),s=e.r(63599),l=e.r(39146);class c extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new c}}class u{static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"clear":case"delete":case"set":return c.callable;default:return i.ReflectAdapter.get(e,t,r)}}})}}let d=Symbol.for("next.mutated.cookies");function f(e){let t=e[d];return t&&Array.isArray(t)&&0!==t.length?t:[]}function p(e,t){let r=f(t);if(0===r.length)return!1;let n=new o.ResponseCookies(e),a=n.getAll();for(let e of r)n.set(e);for(let e of a)n.set(e);return!0}class m{static wrap(e,t){let r=new o.ResponseCookies(new Headers);for(let t of e.getAll())r.set(t);let n=[],a=new Set,c=()=>{let e=s.workAsyncStorage.getStore();if(e&&(e.pathWasRevalidated=l.ActionDidRevalidateStaticAndDynamic),n=r.getAll().filter(e=>a.has(e.name)),t){let e=[];for(let t of n){let r=new o.ResponseCookies(new Headers);r.set(t),e.push(r.toString())}t(e)}},u=new Proxy(r,{get(e,t,r){switch(t){case d:return n;case"delete":return function(...t){a.add("string"==typeof t[0]?t[0]:t[0].name);try{return e.delete(...t),u}finally{c()}};case"set":return function(...t){a.add("string"==typeof t[0]?t[0]:t[0].name);try{return e.set(...t),u}finally{c()}};default:return i.ReflectAdapter.get(e,t,r)}}});return u}}function h(e){let t=new Proxy(e.mutableCookies,{get(r,n,a){switch(n){case"delete":return function(...n){return y(e,"cookies().delete"),r.delete(...n),t};case"set":return function(...n){return y(e,"cookies().set"),r.set(...n),t};default:return i.ReflectAdapter.get(r,n,a)}}});return t}function g(e){return"action"===e.phase}function y(e,t){if(!g(e))throw new c}function b(e){let t=new o.RequestCookies(new Headers);for(let r of e.getAll())t.set(r);return t}},87720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HeadersAdapter:function(){return s},ReadonlyHeadersError:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(42715);class i extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new i}}class s extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return o.ReflectAdapter.get(t,r,n);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);if(void 0!==i)return o.ReflectAdapter.get(t,i,n)},set(t,r,n,a){if("symbol"==typeof r)return o.ReflectAdapter.set(t,r,n,a);let i=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===i);return o.ReflectAdapter.set(t,s??r,n,a)},has(t,r){if("symbol"==typeof r)return o.ReflectAdapter.has(t,r);let n=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==a&&o.ReflectAdapter.has(t,a)},deleteProperty(t,r){if("symbol"==typeof r)return o.ReflectAdapter.deleteProperty(t,r);let n=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===a||o.ReflectAdapter.deleteProperty(t,a)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return i.callable;default:return o.ReflectAdapter.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new s(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}},1643,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getParamProperties:function(){return l},getSegmentParam:function(){return i},isCatchAll:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(91463);function i(e){let t=o.INTERCEPTION_ROUTE_MARKERS.find(t=>e.startsWith(t));return(t&&(e=e.slice(t.length)),e.startsWith("[[...")&&e.endsWith("]]"))?{paramType:"optional-catchall",paramName:e.slice(5,-2)}:e.startsWith("[...")&&e.endsWith("]")?{paramType:t?`catchall-intercepted-${t}`:"catchall",paramName:e.slice(4,-1)}:e.startsWith("[")&&e.endsWith("]")?{paramType:t?`dynamic-intercepted-${t}`:"dynamic",paramName:e.slice(1,-1)}:null}function s(e){return"catchall"===e||"catchall-intercepted-(..)(..)"===e||"catchall-intercepted-(.)"===e||"catchall-intercepted-(..)"===e||"catchall-intercepted-(...)"===e||"optional-catchall"===e}function l(e){let t=!1,r=!1;switch(e){case"catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":t=!0;break;case"optional-catchall":t=!0,r=!0}return{repeat:t,optional:r}}},90929,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parseRelativeUrl",{enumerable:!0,get:function(){return o}});let n=e.r(18967),a=e.r(98183);function o(e,t,r=!0){let i=new URL("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={InstantValidationError:function(){return s},isInstantValidationError:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o="INSTANT_VALIDATION_ERROR";function i(e){return!!(e&&"object"==typeof e&&e instanceof Error&&e.digest===o)}class s extends Error{constructor(...e){super(...e),this.digest=o}}},18450,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assertRootParamInSamples:function(){return S},createCookiesFromSample:function(){return y},createDraftModeForValidation:function(){return _},createExhaustiveParamsProxy:function(){return v},createExhaustiveSearchParamsProxy:function(){return E},createExhaustiveURLSearchParamsProxy:function(){return R},createHeadersFromSample:function(){return P},createRelativeURLFromSamples:function(){return w},createValidationSampleTracking:function(){return m},trackMissingSampleError:function(){return h},trackMissingSampleErrorAndThrow:function(){return g}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(96883),i=e.r(97270),s=e.r(87720),l=e.r(1643),c=e.r(90929),u=e.r(12718),d=e.r(13770),f=e.r(62141),p=e.r(65932);function m(){return{missingSampleErrors:[]}}function h(e){(function(){let e=null,t=f.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"request":case"validation-client":e=t.validationSampleTracking??null}if(!e)throw Object.defineProperty(new u.InvariantError("Expected to have a workUnitStore that provides validationSampleTracking"),"__NEXT_ERROR_CODE",{value:"E1110",enumerable:!1,configurable:!0});return e})().missingSampleErrors.push(e)}function g(e){throw h(e),e}function y(e,t){let r=new Set,n=new o.RequestCookies(new Headers);if(e)for(let t of e)r.add(t.name),null!==t.value&&n.set(t.name,t.value);return new Proxy(i.RequestCookiesAdapter.seal(n),{get(e,n,a){if("has"===n){let o=Reflect.get(e,n,a);return function(n){return r.has(n)||g(b(t,n)),o.call(e,n)}}if("get"===n){let o=Reflect.get(e,n,a);return function(n){let a;if("string"==typeof n)a=n;else{if(!n||"object"!=typeof n||"string"!=typeof n.name)return o.call(e,n);a=n.name}return r.has(a)||g(b(t,a)),o.call(e,a)}}return Reflect.get(e,n,a)}})}function b(e,t){return Object.defineProperty(new d.InstantValidationError(`Route "${e}" accessed cookie "${t}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`cookies\` array, or \`{ name: "${t}", value: null }\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1115",enumerable:!1,configurable:!0})}function P(e,t,r){let n=e?[...e]:[];if(n.find(([e])=>"cookie"===e.toLowerCase()))throw Object.defineProperty(new d.InstantValidationError('Invalid sample: Defining cookies via a "cookie" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.'),"__NEXT_ERROR_CODE",{value:"E1111",enumerable:!1,configurable:!0});if(t){let e=t.toString();n.push(["cookie",""!==e?e:null])}let a=new Set,o={};for(let[e,t]of n)a.add(e.toLowerCase()),null!==t&&(o[e.toLowerCase()]=t);return new Proxy(s.HeadersAdapter.seal(s.HeadersAdapter.from(o)),{get(e,t,n){if("get"===t||"has"===t){let o=Reflect.get(e,t,n);return function(t){let n=t.toLowerCase();return a.has(n)||g(Object.defineProperty(new d.InstantValidationError(`Route "${r}" accessed header "${n}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`headers\` array, or \`["${n}", null]\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1116",enumerable:!1,configurable:!0})),o.call(e,n)}}return Reflect.get(e,t,n)}})}function _(){return{get isEnabled(){return!1},enable(){throw Object.defineProperty(Error("Draft mode cannot be enabled during build-time instant validation."),"__NEXT_ERROR_CODE",{value:"E1092",enumerable:!1,configurable:!0})},disable(){throw Object.defineProperty(Error("Draft mode cannot be disabled during build-time instant validation."),"__NEXT_ERROR_CODE",{value:"E1094",enumerable:!1,configurable:!0})}}}function v(e,t,r){return new Proxy(e,{get:(n,a,o)=>("string"==typeof a&&!p.wellKnownProperties.has(a)&&a in e&&!t.has(a)&&g(Object.defineProperty(new d.InstantValidationError(`Route "${r}" accessed param "${a}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`params\` object.`),"__NEXT_ERROR_CODE",{value:"E1095",enumerable:!1,configurable:!0})),Reflect.get(n,a,o))})}function E(e,t,r){return new Proxy(e,{get:(e,n,a)=>("string"!=typeof n||p.wellKnownProperties.has(n)||t.has(n)||g(O(r,n)),Reflect.get(e,n,a)),has:(e,n)=>("string"!=typeof n||p.wellKnownProperties.has(n)||t.has(n)||g(O(r,n)),Reflect.has(e,n))})}function R(e,t,r){return new Proxy(e,{get(e,n,a){if("get"===n||"getAll"===n||"has"===n){let o=Reflect.get(e,n,a);return n=>("string"!=typeof n||t.has(n)||g(O(r,n)),o.call(e,n))}let o=Reflect.get(e,n,a);return"function"!=typeof o||Object.hasOwn(e,n)?o:o.bind(e)}})}function O(e,t){return Object.defineProperty(new d.InstantValidationError(`Route "${e}" accessed searchParam "${t}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`searchParams\` object, or \`{ "${t}": null }\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1098",enumerable:!1,configurable:!0})}function w(e,t,r){let n=function(e,t){let r=[];for(let n of e.split("/")){let e=(0,l.getSegmentParam)(n);if(e)switch(e.paramType){case"catchall":case"optional-catchall":{let a=t[e.paramName];if(void 0===a)a=[n];else if(!Array.isArray(a))throw Object.defineProperty(new d.InstantValidationError(`Expected sample param value for segment '${n}' to be an array of strings, got ${typeof a}`),"__NEXT_ERROR_CODE",{value:"E1104",enumerable:!1,configurable:!0});r.push(...a.map(e=>encodeURIComponent(e)));break}case"dynamic":{let a=t[e.paramName];if(void 0===a)a=n;else if("string"!=typeof a)throw Object.defineProperty(new d.InstantValidationError(`Expected sample param value for segment '${n}' to be a string, got ${typeof a}`),"__NEXT_ERROR_CODE",{value:"E1108",enumerable:!1,configurable:!0});r.push(encodeURIComponent(a));break}case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":throw Object.defineProperty(new u.InvariantError("Not implemented: Validation of interception routes"),"__NEXT_ERROR_CODE",{value:"E1106",enumerable:!1,configurable:!0});default:e.paramType}else r.push(n)}return r.join("/")}(e,t??{}),a="";if(r){let e=(function(e){let t=new URLSearchParams;if(e){for(let[r,n]of Object.entries(e))if(null!=n)if(Array.isArray(n))for(let e of n)t.append(r,e);else t.set(r,n)}return t})(r).toString();e&&(a="?"+e)}return(0,c.parseRelativeUrl)(n+a,void 0,!0)}function S(e,t,r){if(t&&r in t);else{let t=e.route;g(Object.defineProperty(new d.InstantValidationError(`Route "${t}" accessed root param "${r}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`params\` object.`),"__NEXT_ERROR_CODE",{value:"E1114",enumerable:!1,configurable:!0}))}}},69882,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return P},createSearchParamsFromClient:function(){return g},createServerSearchParamsForMetadata:function(){return y},createServerSearchParamsForServerPage:function(){return b},makeErroringSearchParamsForUseCache:function(){return O}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(63599),i=e.r(66373),s=e.r(42715),l=e.r(67673),c=e.r(62141),u=e.r(12718),d=e.r(63138),f=e.r(76361),p=e.r(65932),m=e.r(50999),h=e.r(42852);function g(t){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let n=c.workUnitAsyncStorage.getStore();if(n)switch(n.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return _(r,n);case"validation-client":return function(t,r,n){var a;let{createExhaustiveSearchParamsProxy:o}=e.r(18450);return Promise.resolve(t=o(t,new Set(Object.keys((null==(a=n.validationSamples)?void 0:a.searchParams)??{})),r.route))}(t,r,n);case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1133",enumerable:!1,configurable:!0});case"request":return v(t,r,n,!1)}(0,c.throwInvariantForMissingStore)()}function y(e,t){return b(e,(0,i.getMetadataVaryParamsAccumulator)(),t)}function b(e,t,r){let n=o.workAsyncStorage.getStore();if(!n)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let a=c.workUnitAsyncStorage.getStore();if(a)switch(a.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return _(n,a);case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called in a client validation."),"__NEXT_ERROR_CODE",{value:"E1066",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1128",enumerable:!1,configurable:!0});case"prerender-runtime":return function(e,t,r,n){let a=w(null!==r?(0,i.createVaryingSearchParams)(r,e):e),{stagedRendering:o}=t;if(!o)return a;let s=n?h.RenderStage.EarlyRuntime:h.RenderStage.Runtime;return o.waitForStage(s).then(()=>a)}(e,a,t,r);case"request":return v(e,n,a,r)}(0,c.throwInvariantForMissingStore)()}function P(){let e=o.workAsyncStorage.getStore();if(!e)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});if(e.forceStatic)return Promise.resolve({});let t=c.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":return(0,d.makeHangingPromise)(t.renderSignal,e.route,"`searchParams`");case"validation-client":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a client validation."),"__NEXT_ERROR_CODE",{value:"E1061",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1124",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,c.throwInvariantForMissingStore)()}function _(e,t){if(e.forceStatic)return Promise.resolve({});switch(t.type){case"prerender":case"prerender-client":var r=e,n=t;let a=E.get(n);if(a)return a;let o=(0,d.makeHangingPromise)(n.renderSignal,r.route,"`searchParams`"),i=new Proxy(o,{get(e,t,r){if(Object.hasOwn(o,t))return s.ReflectAdapter.get(e,t,r);switch(t){case"then":return(0,l.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),s.ReflectAdapter.get(e,t,r);case"status":return(0,l.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),s.ReflectAdapter.get(e,t,r);default:return s.ReflectAdapter.get(e,t,r)}}});return E.set(n,i),i;case"prerender-ppr":case"prerender-legacy":var c=e,u=t;let f=E.get(c);if(f)return f;let p=Promise.resolve({}),h=new Proxy(p,{get(e,t,r){if(Object.hasOwn(p,t))return s.ReflectAdapter.get(e,t,r);if("string"==typeof t&&"then"===t){let e="`await searchParams`, `searchParams.then`, or similar";c.dynamicShouldError?(0,m.throwWithStaticGenerationBailoutErrorWithDynamicError)(c.route,e):"prerender-ppr"===u.type?(0,l.postponeWithTracking)(c.route,e,u.dynamicTracking):(0,l.throwToInterruptStaticGeneration)(e,c,u)}return s.ReflectAdapter.get(e,t,r)}});return E.set(c,h),h;default:return t}}function v(t,r,n,a){if(r.forceStatic)return Promise.resolve({});if(!n.asyncApiPromises)return w(t);if(n.validationSamples){let{createExhaustiveSearchParamsProxy:a}=e.r(18450),o=new Set(Object.keys(n.validationSamples.searchParams??{}));t=a(t,o,r.route)}return(a?n.asyncApiPromises.earlySharedSearchParamsParent:n.asyncApiPromises.sharedSearchParamsParent).then(()=>t)}let E=new WeakMap,R=new WeakMap;function O(){let e=o.workAsyncStorage.getStore();if(!e)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let t=R.get(e);if(t)return t;let r=Promise.resolve({}),n=new Proxy(r,{get:function t(n,a,o){return Object.hasOwn(r,a)||"string"!=typeof a||"then"!==a&&p.wellKnownProperties.has(a)||(0,m.throwForSearchParamsAccessInUseCache)(e,t),s.ReflectAdapter.get(n,a,o)}});return R.set(e,n),n}function w(e){let t=E.get(e);if(t)return t;let r=Promise.resolve(e);return E.set(e,r),r}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t){let r=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${r}used ${t}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},74804,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},88276,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(74804)},41489,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createParamsFromClient:function(){return g},createPrerenderParamsForClientSegment:function(){return _},createServerParamsForMetadata:function(){return y},createServerParamsForRoute:function(){return b},createServerParamsForServerSegment:function(){return P}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(63599),i=e.r(66373),s=e.r(42715),l=e.r(67673),c=e.r(62141),u=e.r(12718),d=e.r(65932),f=e.r(63138),p=e.r(76361),m=e.r(88276),h=e.r(42852);function g(e){let t=o.workAsyncStorage.getStore();if(!t)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return v(e,null,t,r,null);case"validation-client":return R(e,t,r.validationSamples);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1122",enumerable:!1,configurable:!0});case"request":if(r.validationSamples)return R(e,t,r.validationSamples);return S(e)}(0,c.throwInvariantForMissingStore)()}function y(e,t,r){return P(e,t,(0,i.getMetadataVaryParamsAccumulator)(),r)}function b(e,t=null){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let n=c.workUnitAsyncStorage.getStore();if(n)switch(n.type){case"prerender":case"prerender-ppr":case"prerender-legacy":return v(e,null,r,n,t);case"prerender-client":case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called in client contexts."),"__NEXT_ERROR_CODE",{value:"E1064",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1131",enumerable:!1,configurable:!0});case"prerender-runtime":return E(e,null,n,t,!1);case"request":return S(e)}(0,c.throwInvariantForMissingStore)()}function P(t,r,n,a){let i=o.workAsyncStorage.getStore();if(!i)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let s=c.workUnitAsyncStorage.getStore();if(s)switch(s.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return v(t,r,i,s,n);case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called in client contexts."),"__NEXT_ERROR_CODE",{value:"E1101",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1120",enumerable:!1,configurable:!0});case"prerender-runtime":return E(t,r,s,n,a);case"request":if(s.asyncApiPromises&&s.validationSamples)return function(t,r,n,a,o){let{createExhaustiveParamsProxy:i}=e.r(18450),s=i(t,new Set(Object.keys(n.params??{})),r.route);return(o?a.earlySharedParamsParent:a.sharedParamsParent).then(()=>s)}(t,i,s.validationSamples,s.asyncApiPromises,a);if(s.asyncApiPromises&&function(e,t){if(t){for(let r in e)if(t.has(r))return!0}return!1}(t,s.fallbackParams))return(a?s.asyncApiPromises.earlySharedParamsParent:s.asyncApiPromises.sharedParamsParent).then(()=>t);return S(t)}(0,c.throwInvariantForMissingStore)()}function _(e){let t=o.workAsyncStorage.getStore();if(!t)throw Object.defineProperty(new u.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":let n=r.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,f.makeHangingPromise)(r.renderSignal,t.route,"`params`")}break;case"validation-client":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called in validation contexts."),"__NEXT_ERROR_CODE",{value:"E1099",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1126",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function v(e,t,r,n,a){let o=null!==a?(0,i.createVaryingParams)(a,e,t):e;switch(n.type){case"prerender":case"prerender-client":{let t=n.fallbackRouteParams;if(t){for(let a in e)if(t.has(a))return function(e,t,r){let n=O.get(e);if(n)return n;let a=new Proxy((0,f.makeHangingPromise)(r.renderSignal,t.route,"`params`"),w);return O.set(e,a),a}(o,r,n)}break}case"prerender-ppr":{let t=n.fallbackRouteParams;if(t){for(let a in e)if(t.has(a))return function(e,t,r,n){let a=O.get(e);if(a)return a;let o={...e},i=Promise.resolve(o);return O.set(e,i),Object.keys(e).forEach(e=>{d.wellKnownProperties.has(e)||t.has(e)&&Object.defineProperty(o,e,{get(){let t=(0,d.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,l.postponeWithTracking)(r.route,t,n.dynamicTracking):(0,l.throwToInterruptStaticGeneration)(t,r,n)},enumerable:!0})}),i}(o,t,r,n)}}}return S(o)}function E(e,t,r,n,a){let o=S(null!==n?(0,i.createVaryingParams)(n,e,t):e),{stagedRendering:s}=r;if(!s)return o;let l=a?h.RenderStage.EarlyRuntime:h.RenderStage.Runtime;return s.waitForStage(l).then(()=>o)}function R(t,r,n){let{createExhaustiveParamsProxy:a}=e.r(18450);return Promise.resolve(a(t,new Set(Object.keys((null==n?void 0:n.params)??{})),r.route))}let O=new WeakMap,w={get:function(e,t,r){if("then"===t||"catch"===t||"finally"===t){let n=s.ReflectAdapter.get(e,t,r);return({[t]:(...t)=>{let r=m.dynamicAccessAsyncStorage.getStore();return r&&r.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,t),w)}})[t]}return s.ReflectAdapter.get(e,t,r)}};function S(e){let t=O.get(e);if(t)return t;let r=Promise.resolve(e);return O.set(e,r),r}(0,p.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t){let r=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${r}used ${t}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},47257,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientPageRoot",{enumerable:!0,get:function(){return l}});let n=e.r(43476),a=e.r(8372),o=e.r(71645),i=e.r(33906),s=e.r(61994);function l({Component:t,serverProvidedParams:r}){let c,u;if(null!==r)c=r.searchParams,u=r.params;else{let e=(0,o.use)(a.LayoutRouterContext);u=null!==e?e.parentParams:{},c=(0,i.urlSearchParamsToParsedUrlQuery)((0,o.use)(s.SearchParamsContext))}if("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientSegmentRoot",{enumerable:!0,get:function(){return i}});let n=e.r(43476),a=e.r(8372),o=e.r(71645);function i({Component:t,slots:r,serverProvidedParams:s}){let l;if(null!==s)l=s.params;else{let e=(0,o.use)(a.LayoutRouterContext);l=null!==e?e.parentParams:{}}if("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(43476),a=()=>"u">typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0e.~6vil2~4uy.js b/build/.next/static/chunks/0e.~6vil2~4uy.js new file mode 100644 index 0000000..f0b5100 --- /dev/null +++ b/build/.next/static/chunks/0e.~6vil2~4uy.js @@ -0,0 +1,758 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,79877,33623,e=>{"use strict";let t,r,i,s,a,n;var o,l,u,c,h,d,f,g,p,v,m,A,x,D,w,E,C,B,T,S,y,M,P,I,U,R=e.i(43476),b=e.i(71645),F=e.i(90072),L=e.i(28600),O=e.i(25234),G=e.i(67335),N=e.i(44208),H=(e.i(60602),e.i(24205),F),z=(t=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),r=new Float32Array([0,0,2,0,0,2]),(i=new H.BufferGeometry).setAttribute("position",new H.BufferAttribute(t,3)),i.setAttribute("uv",new H.BufferAttribute(r,2)),i),k=class e{static get fullscreenGeometry(){return z}constructor(e="Pass",t=new H.Scene,r=new H.OrthographicCamera){this.name=e,this.renderer=null,this.scene=t,this.camera=r,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthBlit=!1,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(e){if(this.rtt===e){let t=this.fullscreenMaterial;null!==t&&(t.needsUpdate=!0),this.rtt=!e}}set mainScene(e){}set mainCamera(e){}setRenderer(e){this.renderer=e}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}get fullscreenMaterial(){return null!==this.screen?this.screen.material:null}set fullscreenMaterial(t){let r=this.screen;null!==r?r.material=t:((r=new H.Mesh(e.fullscreenGeometry,t)).frustumCulled=!1,null===this.scene&&(this.scene=new H.Scene),this.scene.add(r),this.screen=r)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(e){this.fullscreenMaterial=e}getDepthTexture(){return null}setDepthTexture(e,t=H.BasicDepthPacking){}render(e,t,r,i,s){throw Error("Render method not implemented!")}setSize(e,t){}initialize(e,t,r){}dispose(){for(let t of Object.keys(this)){let r=this[t];(r instanceof H.WebGLRenderTarget||r instanceof H.Material||r instanceof H.Texture||r instanceof e)&&this[t].dispose()}null!==this.fullscreenMaterial&&this.fullscreenMaterial.dispose()}},V=class extends k{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(e,t,r,i,s){let a=e.state.buffers.stencil;a.setLocked(!1),a.setTest(!1)}},Q=`#ifdef COLOR_WRITE +#include +#include +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#endif +#ifdef DEPTH_WRITE +#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +} +#endif +#ifdef USE_WEIGHTS +uniform vec4 channelWeights; +#endif +uniform float opacity;varying vec2 vUv;void main(){ +#ifdef COLOR_WRITE +vec4 texel=texture2D(inputBuffer,vUv); +#ifdef USE_WEIGHTS +texel*=channelWeights; +#endif +gl_FragColor=opacity*texel; +#ifdef COLOR_SPACE_CONVERSION +#include +#endif +#include +#else +gl_FragColor=vec4(0.0); +#endif +#ifdef DEPTH_WRITE +gl_FragDepth=readDepth(vUv); +#endif +}`,Y="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}",W=class extends H.ShaderMaterial{constructor(){super({name:"CopyMaterial",defines:{COLOR_SPACE_CONVERSION:"1",DEPTH_PACKING:"0",COLOR_WRITE:"1"},uniforms:{inputBuffer:new H.Uniform(null),depthBuffer:new H.Uniform(null),channelWeights:new H.Uniform(null),opacity:new H.Uniform(1)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Q,vertexShader:Y}),this.depthFunc=H.AlwaysDepth}get inputBuffer(){return this.uniforms.inputBuffer.value}set inputBuffer(e){let t=null!==e;this.colorWrite!==t&&(t?this.defines.COLOR_WRITE=!0:delete this.defines.COLOR_WRITE,this.colorWrite=t,this.needsUpdate=!0),this.uniforms.inputBuffer.value=e}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){let t=null!==e;this.depthWrite!==t&&(t?this.defines.DEPTH_WRITE=!0:delete this.defines.DEPTH_WRITE,this.depthTest=t,this.depthWrite=t,this.needsUpdate=!0),this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}get colorSpaceConversion(){return void 0!==this.defines.COLOR_SPACE_CONVERSION}set colorSpaceConversion(e){this.colorSpaceConversion!==e&&(e?this.defines.COLOR_SPACE_CONVERSION=!0:delete this.defines.COLOR_SPACE_CONVERSION,this.needsUpdate=!0)}get channelWeights(){return this.uniforms.channelWeights.value}set channelWeights(e){null!==e?(this.defines.USE_WEIGHTS="1",this.uniforms.channelWeights.value=e):delete this.defines.USE_WEIGHTS,this.needsUpdate=!0}setInputBuffer(e){this.uniforms.inputBuffer.value=e}getOpacity(e){return this.uniforms.opacity.value}setOpacity(e){this.uniforms.opacity.value=e}},K=class extends k{constructor(e,t=!0){super("CopyPass"),this.fullscreenMaterial=new W,this.needsSwap=!1,this.renderTarget=e,void 0===e&&(this.renderTarget=new H.WebGLRenderTarget(1,1,{minFilter:H.LinearFilter,magFilter:H.LinearFilter,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="CopyPass.Target"),this.autoResize=t}get resize(){return this.autoResize}set resize(e){this.autoResize=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}setAutoResizeEnabled(e){this.autoResize=e}render(e,t,r,i,s){this.fullscreenMaterial.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){this.autoResize&&this.renderTarget.setSize(e,t)}initialize(e,t,r){void 0!==r&&(this.renderTarget.texture.type=r,r!==H.UnsignedByteType?this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1":null!==e&&e.outputColorSpace===H.SRGBColorSpace&&(this.renderTarget.texture.colorSpace=H.SRGBColorSpace))}},X=new H.Color,J=class extends k{constructor(e=!0,t=!0,r=!1){super("ClearPass",null,null),this.needsSwap=!1,this.color=e,this.depth=t,this.stencil=r,this.overrideClearColor=null,this.overrideClearAlpha=-1}setClearFlags(e,t,r){this.color=e,this.depth=t,this.stencil=r}getOverrideClearColor(){return this.overrideClearColor}setOverrideClearColor(e){this.overrideClearColor=e}getOverrideClearAlpha(){return this.overrideClearAlpha}setOverrideClearAlpha(e){this.overrideClearAlpha=e}render(e,t,r,i,s){let a=this.overrideClearColor,n=this.overrideClearAlpha,o=e.getClearAlpha(),l=null!==a,u=n>=0;l?(e.getClearColor(X),e.setClearColor(a,u?n:o)):u&&e.setClearAlpha(n),e.setRenderTarget(this.renderToScreen?null:t),e.clear(this.color,this.depth,this.stencil),l?e.setClearColor(X,o):u&&e.setClearAlpha(o)}},j=class extends k{constructor(e,t){super("MaskPass",e,t),this.needsSwap=!1,this.clearPass=new J(!1,!1,!0),this.inverse=!1}set mainScene(e){this.scene=e}set mainCamera(e){this.camera=e}get inverted(){return this.inverse}set inverted(e){this.inverse=e}get clear(){return this.clearPass.enabled}set clear(e){this.clearPass.enabled=e}getClearPass(){return this.clearPass}isInverted(){return this.inverted}setInverted(e){this.inverted=e}render(e,t,r,i,s){let a=e.getContext(),n=e.state.buffers,o=this.scene,l=this.camera,u=this.clearPass,c=+!this.inverted;n.color.setMask(!1),n.depth.setMask(!1),n.color.setLocked(!0),n.depth.setLocked(!0),n.stencil.setTest(!0),n.stencil.setOp(a.REPLACE,a.REPLACE,a.REPLACE),n.stencil.setFunc(a.ALWAYS,c,0xffffffff),n.stencil.setClear(1-c),n.stencil.setLocked(!0),this.clearPass.enabled&&(this.renderToScreen?u.render(e,null):(u.render(e,t),u.render(e,r))),this.renderToScreen?e.setRenderTarget(null):(e.setRenderTarget(t),e.render(o,l),e.setRenderTarget(r)),e.render(o,l),n.color.setLocked(!1),n.depth.setLocked(!1),n.stencil.setLocked(!1),n.stencil.setFunc(a.EQUAL,1,0xffffffff),n.stencil.setOp(a.KEEP,a.KEEP,a.KEEP),n.stencil.setLocked(!0)}},Z=class{constructor(){this.startTime=performance.now(),this.previousTime=0,this.currentTime=0,this._delta=0,this._elapsed=0,this._fixedDelta=1e3/60,this.timescale=1,this.useFixedDelta=!1,this._autoReset=!1}get autoReset(){return this._autoReset}set autoReset(e){"u">typeof document&&void 0!==document.hidden&&(e?document.addEventListener("visibilitychange",this):document.removeEventListener("visibilitychange",this),this._autoReset=e)}get delta(){return .001*this._delta}get fixedDelta(){return .001*this._fixedDelta}set fixedDelta(e){this._fixedDelta=1e3*e}get elapsed(){return .001*this._elapsed}update(e){this.useFixedDelta?this._delta=this.fixedDelta:(this.previousTime=this.currentTime,this.currentTime=(void 0!==e?e:performance.now())-this.startTime,this._delta=this.currentTime-this.previousTime),this._delta*=this.timescale,this._elapsed+=this._delta}reset(){this._delta=0,this._elapsed=0,this.currentTime=performance.now()-this.startTime}getDelta(){return this.delta}getElapsed(){return this.elapsed}handleEvent(e){document.hidden||(this.currentTime=performance.now()-this.startTime)}dispose(){this.autoReset=!1}},q=class{constructor(e=null,{depthBuffer:t=!0,stencilBuffer:r=!1,multisampling:i=0,frameBufferType:s}={}){this.renderer=null,this.inputBuffer=this.createBuffer(t,r,s,i),this.outputBuffer=this.inputBuffer.clone(),this.copyPass=new K,this.depthTexture=null,this.depthRenderTarget=null,this.passes=[],this.timer=new Z,this.autoRenderToScreen=!0,this.setRenderer(e)}get multisampling(){return this.inputBuffer.samples}set multisampling(e){let t=this.inputBuffer,r=this.multisampling;r>0&&e>0?(this.inputBuffer.samples=e,this.outputBuffer.samples=e,this.inputBuffer.dispose(),this.outputBuffer.dispose()):r!==e&&(this.inputBuffer.dispose(),this.outputBuffer.dispose(),this.inputBuffer=this.createBuffer(t.depthBuffer,t.stencilBuffer,t.texture.type,e),this.outputBuffer=this.inputBuffer.clone())}getTimer(){return this.timer}getRenderer(){return this.renderer}setRenderer(e){if(this.renderer=e,null!==e){let t=e.getSize(new H.Vector2),r=e.getContext().getContextAttributes().alpha,i=this.inputBuffer.texture.type;for(let s of(i===H.UnsignedByteType&&e.outputColorSpace===H.SRGBColorSpace&&(this.inputBuffer.texture.colorSpace=H.SRGBColorSpace,this.outputBuffer.texture.colorSpace=H.SRGBColorSpace,this.inputBuffer.dispose(),this.outputBuffer.dispose()),e.autoClear=!1,this.setSize(t.width,t.height),this.passes))s.initialize(e,r,i)}}replaceRenderer(e,t=!0){let r=this.renderer,i=r.domElement.parentNode;return this.setRenderer(e),t&&null!==i&&(i.removeChild(r.domElement),i.appendChild(e.domElement)),r}createDepthTexture(){let e=this.inputBuffer,t=new H.DepthTexture;this.depthTexture=t,e.stencilBuffer?(t.format=H.DepthStencilFormat,t.type=H.UnsignedInt248Type):t.type=H.FloatType;let r=t.clone();return r.name="EffectComposer.StableDepth",this.depthRenderTarget=new H.WebGLRenderTarget(e.width,e.height,{depthBuffer:!0,stencilBuffer:e.stencilBuffer,depthTexture:r}),r}blitDepthBuffer(e){let t=this.renderer,r=this.depthRenderTarget,i=t.properties,s=t.getContext();t.setRenderTarget(r);let a=i.get(e).__webglFramebuffer,n=i.get(r).__webglFramebuffer,o=e.stencilBuffer?s.DEPTH_BUFFER_BIT|s.STENCIL_BUFFER_BIT:s.DEPTH_BUFFER_BIT;s.bindFramebuffer(s.READ_FRAMEBUFFER,a),s.bindFramebuffer(s.DRAW_FRAMEBUFFER,n),s.blitFramebuffer(0,0,e.width,e.height,0,0,r.width,r.height,o,s.NEAREST),s.bindFramebuffer(s.READ_FRAMEBUFFER,null),s.bindFramebuffer(s.DRAW_FRAMEBUFFER,null),t.setRenderTarget(null)}deleteDepthTexture(){if(null!==this.depthTexture)for(let e of(this.depthTexture.dispose(),this.depthTexture=null,this.depthRenderTarget.dispose(),this.depthRenderTarget=null,this.inputBuffer.depthTexture=null,this.outputBuffer.depthTexture=null,this.passes))e.setDepthTexture(null)}createBuffer(e,t,r,i){let s=this.renderer,a=null===s?new H.Vector2:s.getDrawingBufferSize(new H.Vector2),n={minFilter:H.LinearFilter,magFilter:H.LinearFilter,stencilBuffer:t,depthBuffer:e,type:r},o=new H.WebGLRenderTarget(a.width,a.height,n);return i>0&&(o.samples=i),r===H.UnsignedByteType&&null!==s&&s.outputColorSpace===H.SRGBColorSpace&&(o.texture.colorSpace=H.SRGBColorSpace),o.texture.name="EffectComposer.Buffer",o.texture.generateMipmaps=!1,o}setMainScene(e){for(let t of this.passes)t.mainScene=e}setMainCamera(e){for(let t of this.passes)t.mainCamera=e}addPass(e,t){let r=this.passes,i=this.renderer,s=i.getDrawingBufferSize(new H.Vector2),a=i.getContext().getContextAttributes().alpha,n=this.inputBuffer.texture.type;if(e.renderer=i,e.setSize(s.width,s.height),e.initialize(i,a,n),this.autoRenderToScreen&&(r.length>0&&(r[r.length-1].renderToScreen=!1),e.renderToScreen&&(this.autoRenderToScreen=!1)),void 0!==t?r.splice(t,0,e):r.push(e),this.autoRenderToScreen&&(r[r.length-1].renderToScreen=!0),e.needsDepthTexture||null!==this.depthTexture)if(null===this.depthTexture){let t=this.createDepthTexture();for(e of r)e.setDepthTexture(t)}else{let t=this.depthRenderTarget.depthTexture;e.setDepthTexture(t)}}removePass(e){let t=this.passes,r=t.indexOf(e);if(-1!==r&&t.splice(r,1).length>0){if(null!==this.depthTexture&&!t.reduce((e,t)=>e||t.needsDepthTexture,!1)){let t=this.depthRenderTarget.depthTexture;e.getDepthTexture()===t&&e.setDepthTexture(null),this.deleteDepthTexture()}this.autoRenderToScreen&&r===t.length&&(e.renderToScreen=!1,t.length>0&&(t[t.length-1].renderToScreen=!0))}}removeAllPasses(){let e=this.passes;this.deleteDepthTexture(),e.length>0&&(this.autoRenderToScreen&&(e[e.length-1].renderToScreen=!1),this.passes=[])}render(e){let t,r=this.renderer,i=this.copyPass,s=this.inputBuffer,a=this.outputBuffer,n=!1;for(let o of(void 0===e&&(this.timer.update(),e=this.timer.getDelta()),this.passes))if(o.enabled){if(s.depthTexture=this.depthTexture,a.depthTexture=null,o.render(r,s,a,e,n),o.needsDepthBlit&&null!==this.depthRenderTarget&&this.blitDepthBuffer(s),o.needsSwap){if(n){i.renderToScreen=o.renderToScreen;let t=r.getContext(),l=r.state.buffers.stencil;l.setFunc(t.NOTEQUAL,1,0xffffffff),i.render(r,s,a,e,n),l.setFunc(t.EQUAL,1,0xffffffff)}t=s,s=a,a=t}o instanceof j?n=!0:o instanceof V&&(n=!1)}}setSize(e,t,r){let i=this.renderer,s=i.getSize(new H.Vector2);(void 0===e||void 0===t)&&(e=s.width,t=s.height),(s.width!==e||s.height!==t)&&i.setSize(e,t,r);let a=i.getDrawingBufferSize(new H.Vector2);for(let e of(this.inputBuffer.setSize(a.width,a.height),this.outputBuffer.setSize(a.width,a.height),null!==this.depthRenderTarget&&this.depthRenderTarget.setSize(a.width,a.height),this.passes))e.setSize(a.width,a.height)}reset(){this.dispose(),this.autoRenderToScreen=!0}dispose(){for(let e of this.passes)e.dispose();this.passes=[],null!==this.inputBuffer&&this.inputBuffer.dispose(),null!==this.outputBuffer&&this.outputBuffer.dispose(),this.deleteDepthTexture(),this.copyPass.dispose(),this.timer.dispose(),k.fullscreenGeometry.dispose()}},_={FRAGMENT_HEAD:"FRAGMENT_HEAD",FRAGMENT_MAIN_UV:"FRAGMENT_MAIN_UV",FRAGMENT_MAIN_IMAGE:"FRAGMENT_MAIN_IMAGE",VERTEX_HEAD:"VERTEX_HEAD",VERTEX_MAIN_SUPPORT:"VERTEX_MAIN_SUPPORT"},$=class{constructor(){this.shaderParts=new Map([[_.FRAGMENT_HEAD,null],[_.FRAGMENT_MAIN_UV,null],[_.FRAGMENT_MAIN_IMAGE,null],[_.VERTEX_HEAD,null],[_.VERTEX_MAIN_SUPPORT,null]]),this.defines=new Map,this.uniforms=new Map,this.blendModes=new Map,this.extensions=new Set,this.attributes=0,this.varyings=new Set,this.uvTransformation=!1,this.readDepth=!1,this.colorSpace=H.LinearSRGBColorSpace}},ee=!1,et=class{constructor(e=null){this.originalMaterials=new Map,this.material=null,this.materials=null,this.materialsBackSide=null,this.materialsDoubleSide=null,this.materialsFlatShaded=null,this.materialsFlatShadedBackSide=null,this.materialsFlatShadedDoubleSide=null,this.setMaterial(e),this.meshCount=0,this.replaceMaterial=e=>{if(e.isMesh){let t;if(e.material.flatShading)switch(e.material.side){case H.DoubleSide:t=this.materialsFlatShadedDoubleSide;break;case H.BackSide:t=this.materialsFlatShadedBackSide;break;default:t=this.materialsFlatShaded}else switch(e.material.side){case H.DoubleSide:t=this.materialsDoubleSide;break;case H.BackSide:t=this.materialsBackSide;break;default:t=this.materials}this.originalMaterials.set(e,e.material),e.isSkinnedMesh?e.material=t[2]:e.isInstancedMesh?e.material=t[1]:e.material=t[0],++this.meshCount}}}cloneMaterial(e){if(!(e instanceof H.ShaderMaterial))return e.clone();let t=e.uniforms,r=new Map;for(let e in t){let i=t[e].value;i.isRenderTargetTexture&&(t[e].value=null,r.set(e,i))}let i=e.clone();for(let e of r)t[e[0]].value=e[1],i.uniforms[e[0]].value=e[1];return i}setMaterial(e){if(this.disposeMaterials(),this.material=e,null!==e){let t=this.materials=[this.cloneMaterial(e),this.cloneMaterial(e),this.cloneMaterial(e)];for(let r of t)r.uniforms=Object.assign({},e.uniforms),r.side=H.FrontSide;t[2].skinning=!0,this.materialsBackSide=t.map(t=>{let r=this.cloneMaterial(t);return r.uniforms=Object.assign({},e.uniforms),r.side=H.BackSide,r}),this.materialsDoubleSide=t.map(t=>{let r=this.cloneMaterial(t);return r.uniforms=Object.assign({},e.uniforms),r.side=H.DoubleSide,r}),this.materialsFlatShaded=t.map(t=>{let r=this.cloneMaterial(t);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r}),this.materialsFlatShadedBackSide=t.map(t=>{let r=this.cloneMaterial(t);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r.side=H.BackSide,r}),this.materialsFlatShadedDoubleSide=t.map(t=>{let r=this.cloneMaterial(t);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r.side=H.DoubleSide,r})}}render(e,t,r){let i=e.shadowMap.enabled;if(e.shadowMap.enabled=!1,ee){let i=this.originalMaterials;for(let s of(this.meshCount=0,t.traverse(this.replaceMaterial),e.render(t,r),i))s[0].material=s[1];this.meshCount!==i.size&&i.clear()}else{let i=t.overrideMaterial;t.overrideMaterial=this.material,e.render(t,r),t.overrideMaterial=i}e.shadowMap.enabled=i}disposeMaterials(){if(null!==this.material)for(let e of this.materials.concat(this.materialsBackSide).concat(this.materialsDoubleSide).concat(this.materialsFlatShaded).concat(this.materialsFlatShadedBackSide).concat(this.materialsFlatShadedDoubleSide))e.dispose()}dispose(){this.originalMaterials.clear(),this.disposeMaterials()}static get workaroundEnabled(){return ee}static set workaroundEnabled(e){ee=e}},er=class extends H.EventDispatcher{constructor(e=null,t=-1,r=-1,i=1){super(),null!==e&&this.addEventListener("change",()=>e.setSize(this.baseSize.width,this.baseSize.height)),this.baseSize=new H.Vector2(1,1),this.preferredSize=new H.Vector2(t,r),this.target=this.preferredSize,this.s=i,this.effectiveSize=new H.Vector2,this.addEventListener("change",()=>this.updateEffectiveSize()),this.updateEffectiveSize()}updateEffectiveSize(){let e=this.baseSize,t=this.preferredSize,r=this.effectiveSize,i=this.scale;-1!==t.width?r.width=t.width:-1!==t.height?r.width=Math.round(t.height*(e.width/Math.max(e.height,1))):r.width=Math.round(e.width*i),-1!==t.height?r.height=t.height:-1!==t.width?r.height=Math.round(t.width/Math.max(e.width/Math.max(e.height,1),1)):r.height=Math.round(e.height*i)}get width(){return this.effectiveSize.width}set width(e){this.preferredWidth=e}get height(){return this.effectiveSize.height}set height(e){this.preferredHeight=e}getWidth(){return this.width}getHeight(){return this.height}get scale(){return this.s}set scale(e){this.s!==e&&(this.s=e,this.preferredSize.setScalar(-1),this.dispatchEvent({type:"change"}))}getScale(){return this.scale}setScale(e){this.scale=e}get baseWidth(){return this.baseSize.width}set baseWidth(e){this.baseSize.width!==e&&(this.baseSize.width=e,this.dispatchEvent({type:"change"}))}getBaseWidth(){return this.baseWidth}setBaseWidth(e){this.baseWidth=e}get baseHeight(){return this.baseSize.height}set baseHeight(e){this.baseSize.height!==e&&(this.baseSize.height=e,this.dispatchEvent({type:"change"}))}getBaseHeight(){return this.baseHeight}setBaseHeight(e){this.baseHeight=e}setBaseSize(e,t){(this.baseSize.width!==e||this.baseSize.height!==t)&&(this.baseSize.set(e,t),this.dispatchEvent({type:"change"}))}get preferredWidth(){return this.preferredSize.width}set preferredWidth(e){this.preferredSize.width!==e&&(this.preferredSize.width=e,this.dispatchEvent({type:"change"}))}getPreferredWidth(){return this.preferredWidth}setPreferredWidth(e){this.preferredWidth=e}get preferredHeight(){return this.preferredSize.height}set preferredHeight(e){this.preferredSize.height!==e&&(this.preferredSize.height=e,this.dispatchEvent({type:"change"}))}getPreferredHeight(){return this.preferredHeight}setPreferredHeight(e){this.preferredHeight=e}setPreferredSize(e,t){(this.preferredSize.width!==e||this.preferredSize.height!==t)&&(this.preferredSize.set(e,t),this.dispatchEvent({type:"change"}))}copy(e){this.s=e.scale,this.baseSize.set(e.baseWidth,e.baseHeight),this.preferredSize.set(e.preferredWidth,e.preferredHeight),this.dispatchEvent({type:"change"})}static get AUTO_SIZE(){return -1}},ei=new class{constructor(e=0){this.nextId=e}getNextId(){return this.nextId++}reset(e=0){return this.nextId=e,this}}(2),es=class extends Set{constructor(e,t=ei.getNextId()){super(),this.exclusive=!1,this._layer=t,(this._layer<1||this._layer>31)&&(console.warn("Layer out of range, resetting to 2"),ei.reset(2),this._layer=ei.getNextId()),void 0!==e&&this.set(e)}get layer(){return this._layer}set layer(e){let t=this._layer;for(let r of this)r.layers.disable(t),r.layers.enable(e);this._layer=e}getLayer(){return this.layer}setLayer(e){this.layer=e}isExclusive(){return this.exclusive}setExclusive(e){this.exclusive=e}clear(){let e=this.layer;for(let t of this)t.layers.disable(e);return super.clear()}set(e){for(let t of(this.clear(),e))this.add(t);return this}indexOf(e){return this.has(e)?0:-1}add(e){return this.exclusive?e.layers.set(this.layer):e.layers.enable(this.layer),super.add(e)}delete(e){return this.has(e)&&e.layers.disable(this.layer),super.delete(e)}toggle(e){let t;return this.has(e)?(this.delete(e),t=!1):(this.add(e),t=!0),t}setVisible(e){for(let t of this)e?t.layers.enable(0):t.layers.disable(0);return this}},ea=new Map([[0,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[1,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return mix(dst,src,src.a*opacity);}"],[2,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=(dst.rgb+src.rgb)*0.5;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[3,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(b.xy,a.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[4,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=dst.rgb,b=src.rgb;vec3 c=mix(step(0.0,b)*(1.0-min(vec3(1.0),(1.0-a)/max(b,1e-9))),vec3(1.0),step(1.0,a));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[5,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=dst.rgb,b=src.rgb;vec3 c=step(0.0,a)*mix(min(vec3(1.0),a/max(1.0-b,1e-9)),vec3(1.0),step(1.0,b));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[6,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=min(dst.rgb,src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[7,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=abs(dst.rgb-src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[8,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb/max(src.rgb,1e-9);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[9,null],[10,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb-2.0*dst.rgb*src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[11,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=min(dst.rgb,1.0);vec3 b=min(src.rgb,1.0);vec3 c=mix(2.0*a*b,1.0-2.0*(1.0-a)*(1.0-b),step(0.5,b));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[12,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=step(1.0,dst.rgb+src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[13,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(b.x,a.yz));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[14,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(1.0-src.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[15,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=src.rgb*max(1.0-dst.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[16,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(dst.rgb,src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[17,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=clamp(src.rgb+dst.rgb-1.0,0.0,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[18,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=min(dst.rgb+src.rgb,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[19,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=clamp(2.0*src.rgb+dst.rgb-1.0,0.0,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[20,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(a.xy,b.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[21,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb*src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[22,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(1.0-abs(1.0-dst.rgb-src.rgb),0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[23,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return mix(dst,src,opacity);}"],[24,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=2.0*src.rgb*dst.rgb;vec3 b=1.0-2.0*(1.0-src.rgb)*(1.0-dst.rgb);vec3 c=mix(a,b,step(0.5,dst.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[25,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 src2=2.0*src.rgb;vec3 c=mix(mix(src2,dst.rgb,step(0.5*dst.rgb,src.rgb)),max(src2-1.0,vec3(0.0)),step(dst.rgb,src2-1.0));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[26,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=min(dst.rgb*dst.rgb/max(1.0-src.rgb,1e-9),1.0);vec3 c=mix(a,src.rgb,step(1.0,src.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[27,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(a.x,b.y,a.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[28,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb-min(dst.rgb*src.rgb,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[29,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 src2=2.0*src.rgb;vec3 d=dst.rgb+(src2-1.0);vec3 w=step(0.5,src.rgb);vec3 a=dst.rgb-(1.0-src2)*dst.rgb*(1.0-dst.rgb);vec3 b=mix(d*(sqrt(dst.rgb)-dst.rgb),d*dst.rgb*((16.0*dst.rgb-12.0)*dst.rgb+3.0),w*(1.0-step(0.25,dst.rgb)));vec3 c=mix(a,b,w);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[30,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return src;}"],[31,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(dst.rgb-src.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[32,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=mix(max(1.0-min((1.0-dst.rgb)/(2.0*src.rgb),1.0),0.0),min(dst.rgb/(2.0*(1.0-src.rgb)),1.0),step(0.5,src.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"]]),en=class extends H.EventDispatcher{constructor(e,t=1){super(),this._blendFunction=e,this.opacity=new H.Uniform(t)}getOpacity(){return this.opacity.value}setOpacity(e){this.opacity.value=e}get blendFunction(){return this._blendFunction}set blendFunction(e){this._blendFunction=e,this.dispatchEvent({type:"change"})}getBlendFunction(){return this.blendFunction}setBlendFunction(e){this.blendFunction=e}getShaderCode(){return ea.get(this.blendFunction)}};H.CanvasTexture;var eo=class extends H.EventDispatcher{constructor(e,t,{attributes:r=0,blendFunction:i=23,defines:s=new Map,uniforms:a=new Map,extensions:n=null,vertexShader:o=null}={}){super(),this.name=e,this.renderer=null,this.attributes=r,this.fragmentShader=t,this.vertexShader=o,this.defines=s,this.uniforms=a,this.extensions=n,this.blendMode=new en(i),this.blendMode.addEventListener("change",e=>this.setChanged()),this._inputColorSpace=H.LinearSRGBColorSpace,this._outputColorSpace=H.NoColorSpace}get inputColorSpace(){return this._inputColorSpace}set inputColorSpace(e){this._inputColorSpace=e,this.setChanged()}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e,this.setChanged()}set mainScene(e){}set mainCamera(e){}getName(){return this.name}setRenderer(e){this.renderer=e}getDefines(){return this.defines}getUniforms(){return this.uniforms}getExtensions(){return this.extensions}getBlendMode(){return this.blendMode}getAttributes(){return this.attributes}setAttributes(e){this.attributes=e,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(e){this.fragmentShader=e,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(e){this.vertexShader=e,this.setChanged()}setChanged(){this.dispatchEvent({type:"change"})}setDepthTexture(e,t=H.BasicDepthPacking){}update(e,t,r){}setSize(e,t){}initialize(e,t,r){}dispose(){for(let e of Object.keys(this)){let t=this[e];(t instanceof H.WebGLRenderTarget||t instanceof H.Material||t instanceof H.Texture||t instanceof k)&&this[e].dispose()}}},el={VERY_SMALL:0,SMALL:1,MEDIUM:2,LARGE:3,VERY_LARGE:4,HUGE:5},eu=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec4 sum=texture2D(inputBuffer,vUv0);sum+=texture2D(inputBuffer,vUv1);sum+=texture2D(inputBuffer,vUv2);sum+=texture2D(inputBuffer,vUv3);gl_FragColor=sum*0.25; +#include +}`,ec=[new Float32Array([0,0]),new Float32Array([0,1,1]),new Float32Array([0,1,1,2]),new Float32Array([0,1,2,2,3]),new Float32Array([0,1,2,3,4,4,5]),new Float32Array([0,1,2,3,4,5,7,8,9,10])],eh=class extends H.ShaderMaterial{constructor(e=new H.Vector4){super({name:"KawaseBlurMaterial",uniforms:{inputBuffer:new H.Uniform(null),texelSize:new H.Uniform(new H.Vector4),scale:new H.Uniform(1),kernel:new H.Uniform(0)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:eu,vertexShader:"uniform vec4 texelSize;uniform float kernel;uniform float scale;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 uv=position.xy*0.5+0.5;vec2 dUv=(texelSize.xy*vec2(kernel)+texelSize.zw)*scale;vUv0=vec2(uv.x-dUv.x,uv.y+dUv.y);vUv1=vec2(uv.x+dUv.x,uv.y+dUv.y);vUv2=vec2(uv.x+dUv.x,uv.y-dUv.y);vUv3=vec2(uv.x-dUv.x,uv.y-dUv.y);gl_Position=vec4(position.xy,1.0,1.0);}"}),this.setTexelSize(e.x,e.y),this.kernelSize=el.MEDIUM}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.inputBuffer=e}get kernelSequence(){return ec[this.kernelSize]}get scale(){return this.uniforms.scale.value}set scale(e){this.uniforms.scale.value=e}getScale(){return this.uniforms.scale.value}setScale(e){this.uniforms.scale.value=e}getKernel(){return null}get kernel(){return this.uniforms.kernel.value}set kernel(e){this.uniforms.kernel.value=e}setKernel(e){this.kernel=e}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t,.5*e,.5*t)}setSize(e,t){let r=1/e,i=1/t;this.uniforms.texelSize.value.set(r,i,.5*r,.5*i)}},ed=class extends k{constructor({kernelSize:e=el.MEDIUM,resolutionScale:t=.5,width:r=er.AUTO_SIZE,height:i=er.AUTO_SIZE,resolutionX:s=r,resolutionY:a=i}={}){super("KawaseBlurPass"),this.renderTargetA=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B";const n=this.resolution=new er(this,s,a,t);n.addEventListener("change",e=>this.setSize(n.baseWidth,n.baseHeight)),this._blurMaterial=new eh,this._blurMaterial.kernelSize=e,this.copyMaterial=new W}getResolution(){return this.resolution}get blurMaterial(){return this._blurMaterial}set blurMaterial(e){this._blurMaterial=e}get dithering(){return this.copyMaterial.dithering}set dithering(e){this.copyMaterial.dithering=e}get kernelSize(){return this.blurMaterial.kernelSize}set kernelSize(e){this.blurMaterial.kernelSize=e}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get scale(){return this.blurMaterial.scale}set scale(e){this.blurMaterial.scale=e}getScale(){return this.blurMaterial.scale}setScale(e){this.blurMaterial.scale=e}getKernelSize(){return this.kernelSize}setKernelSize(e){this.kernelSize=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,i,s){let a=this.scene,n=this.camera,o=this.renderTargetA,l=this.renderTargetB,u=this.blurMaterial,c=u.kernelSequence,h=t;this.fullscreenMaterial=u;for(let t=0,r=c.length;t +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#ifdef RANGE +uniform vec2 range; +#elif defined(THRESHOLD) +uniform float threshold;uniform float smoothing; +#endif +varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0; +#ifdef RANGE +float low=step(range.x,l);float high=step(l,range.y);mask=low*high; +#elif defined(THRESHOLD) +mask=smoothstep(threshold,threshold+smoothing,l); +#endif +#ifdef COLOR +gl_FragColor=texel*mask; +#else +gl_FragColor=vec4(l*mask); +#endif +}`,eg=class extends H.ShaderMaterial{constructor(e=!1,t=null){super({name:"LuminanceMaterial",defines:{THREE_REVISION:H.REVISION.replace(/\D+/g,"")},uniforms:{inputBuffer:new H.Uniform(null),threshold:new H.Uniform(0),smoothing:new H.Uniform(1),range:new H.Uniform(null)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:ef,vertexShader:Y}),this.colorOutput=e,this.luminanceRange=t}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get threshold(){return this.uniforms.threshold.value}set threshold(e){this.smoothing>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.threshold.value=e}getThreshold(){return this.threshold}setThreshold(e){this.threshold=e}get smoothing(){return this.uniforms.smoothing.value}set smoothing(e){this.threshold>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.smoothing.value=e}getSmoothingFactor(){return this.smoothing}setSmoothingFactor(e){this.smoothing=e}get useThreshold(){return this.threshold>0||this.smoothing>0}set useThreshold(e){}get colorOutput(){return void 0!==this.defines.COLOR}set colorOutput(e){e?this.defines.COLOR="1":delete this.defines.COLOR,this.needsUpdate=!0}isColorOutputEnabled(e){return this.colorOutput}setColorOutputEnabled(e){this.colorOutput=e}get useRange(){return null!==this.luminanceRange}set useRange(e){this.luminanceRange=null}get luminanceRange(){return this.uniforms.range.value}set luminanceRange(e){null!==e?this.defines.RANGE="1":delete this.defines.RANGE,this.uniforms.range.value=e,this.needsUpdate=!0}getLuminanceRange(){return this.luminanceRange}setLuminanceRange(e){this.luminanceRange=e}},ep=class extends k{constructor({renderTarget:e,luminanceRange:t,colorOutput:r,resolutionScale:i=1,width:s=er.AUTO_SIZE,height:a=er.AUTO_SIZE,resolutionX:n=s,resolutionY:o=a}={}){super("LuminancePass"),this.fullscreenMaterial=new eg(r,t),this.needsSwap=!1,this.renderTarget=e,void 0===this.renderTarget&&(this.renderTarget=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="LuminancePass.Target");const l=this.resolution=new er(this,n,o,i);l.addEventListener("change",e=>this.setSize(l.baseWidth,l.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}render(e,t,r,i,s){this.fullscreenMaterial.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}initialize(e,t,r){void 0!==r&&r!==H.UnsignedByteType&&(this.renderTarget.texture.type=r,this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},ev=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#define WEIGHT_INNER 0.125 +#define WEIGHT_OUTER 0.05556 +varying vec2 vUv;varying vec2 vUv00;varying vec2 vUv01;varying vec2 vUv02;varying vec2 vUv03;varying vec2 vUv04;varying vec2 vUv05;varying vec2 vUv06;varying vec2 vUv07;varying vec2 vUv08;varying vec2 vUv09;varying vec2 vUv10;varying vec2 vUv11;float clampToBorder(const in vec2 uv){return float(uv.s>=0.0&&uv.s<=1.0&&uv.t>=0.0&&uv.t<=1.0);}void main(){vec4 c=vec4(0.0);vec4 w=WEIGHT_INNER*vec4(clampToBorder(vUv00),clampToBorder(vUv01),clampToBorder(vUv02),clampToBorder(vUv03));c+=w.x*texture2D(inputBuffer,vUv00);c+=w.y*texture2D(inputBuffer,vUv01);c+=w.z*texture2D(inputBuffer,vUv02);c+=w.w*texture2D(inputBuffer,vUv03);w=WEIGHT_OUTER*vec4(clampToBorder(vUv04),clampToBorder(vUv05),clampToBorder(vUv06),clampToBorder(vUv07));c+=w.x*texture2D(inputBuffer,vUv04);c+=w.y*texture2D(inputBuffer,vUv05);c+=w.z*texture2D(inputBuffer,vUv06);c+=w.w*texture2D(inputBuffer,vUv07);w=WEIGHT_OUTER*vec4(clampToBorder(vUv08),clampToBorder(vUv09),clampToBorder(vUv10),clampToBorder(vUv11));c+=w.x*texture2D(inputBuffer,vUv08);c+=w.y*texture2D(inputBuffer,vUv09);c+=w.z*texture2D(inputBuffer,vUv10);c+=w.w*texture2D(inputBuffer,vUv11);c+=WEIGHT_OUTER*texture2D(inputBuffer,vUv);gl_FragColor=c; +#include +}`,em=class extends H.ShaderMaterial{constructor(){super({name:"DownsamplingMaterial",uniforms:{inputBuffer:new H.Uniform(null),texelSize:new H.Uniform(new H.Vector2)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:ev,vertexShader:"uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv00;varying vec2 vUv01;varying vec2 vUv02;varying vec2 vUv03;varying vec2 vUv04;varying vec2 vUv05;varying vec2 vUv06;varying vec2 vUv07;varying vec2 vUv08;varying vec2 vUv09;varying vec2 vUv10;varying vec2 vUv11;void main(){vUv=position.xy*0.5+0.5;vUv00=vUv+texelSize*vec2(-1.0,1.0);vUv01=vUv+texelSize*vec2(1.0,1.0);vUv02=vUv+texelSize*vec2(-1.0,-1.0);vUv03=vUv+texelSize*vec2(1.0,-1.0);vUv04=vUv+texelSize*vec2(-2.0,2.0);vUv05=vUv+texelSize*vec2(0.0,2.0);vUv06=vUv+texelSize*vec2(2.0,2.0);vUv07=vUv+texelSize*vec2(-2.0,0.0);vUv08=vUv+texelSize*vec2(2.0,0.0);vUv09=vUv+texelSize*vec2(-2.0,-2.0);vUv10=vUv+texelSize*vec2(0.0,-2.0);vUv11=vUv+texelSize*vec2(2.0,-2.0);gl_Position=vec4(position.xy,1.0,1.0);}"})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},eA=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer;uniform mediump sampler2D supportBuffer; +#else +uniform lowp sampler2D inputBuffer;uniform lowp sampler2D supportBuffer; +#endif +uniform float radius;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;varying vec2 vUv6;varying vec2 vUv7;void main(){vec4 c=vec4(0.0);c+=texture2D(inputBuffer,vUv0)*0.0625;c+=texture2D(inputBuffer,vUv1)*0.125;c+=texture2D(inputBuffer,vUv2)*0.0625;c+=texture2D(inputBuffer,vUv3)*0.125;c+=texture2D(inputBuffer,vUv)*0.25;c+=texture2D(inputBuffer,vUv4)*0.125;c+=texture2D(inputBuffer,vUv5)*0.0625;c+=texture2D(inputBuffer,vUv6)*0.125;c+=texture2D(inputBuffer,vUv7)*0.0625;vec4 baseColor=texture2D(supportBuffer,vUv);gl_FragColor=mix(baseColor,c,radius); +#include +}`,ex=class extends H.ShaderMaterial{constructor(){super({name:"UpsamplingMaterial",uniforms:{inputBuffer:new H.Uniform(null),supportBuffer:new H.Uniform(null),texelSize:new H.Uniform(new H.Vector2),radius:new H.Uniform(.85)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:eA,vertexShader:"uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;varying vec2 vUv6;varying vec2 vUv7;void main(){vUv=position.xy*0.5+0.5;vUv0=vUv+texelSize*vec2(-1.0,1.0);vUv1=vUv+texelSize*vec2(0.0,1.0);vUv2=vUv+texelSize*vec2(1.0,1.0);vUv3=vUv+texelSize*vec2(-1.0,0.0);vUv4=vUv+texelSize*vec2(1.0,0.0);vUv5=vUv+texelSize*vec2(-1.0,-1.0);vUv6=vUv+texelSize*vec2(0.0,-1.0);vUv7=vUv+texelSize*vec2(1.0,-1.0);gl_Position=vec4(position.xy,1.0,1.0);}"})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}set supportBuffer(e){this.uniforms.supportBuffer.value=e}get radius(){return this.uniforms.radius.value}set radius(e){this.uniforms.radius.value=e}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},eD=class extends k{constructor(){super("MipmapBlurPass"),this.needsSwap=!1,this.renderTarget=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="Upsampling.Mipmap0",this.downsamplingMipmaps=[],this.upsamplingMipmaps=[],this.downsamplingMaterial=new em,this.upsamplingMaterial=new ex,this.resolution=new H.Vector2}get texture(){return this.renderTarget.texture}get levels(){return this.downsamplingMipmaps.length}set levels(e){if(this.levels!==e){let t=this.renderTarget;this.dispose(),this.downsamplingMipmaps=[],this.upsamplingMipmaps=[];for(let r=0;r=0;--t){let r=c[t];l.setSize(h.width,h.height),l.inputBuffer=h.texture,l.supportBuffer=u[t].texture,e.setRenderTarget(r),e.render(a,n),h=r}}setSize(e,t){let r=this.resolution;r.set(e,t);let i=r.width,s=r.height;for(let e=0,t=this.downsamplingMipmaps.length;ethis.setSize(f.baseWidth,f.baseHeight))}get texture(){return this.mipmapBlurPass.enabled?this.mipmapBlurPass.texture:this.renderTarget.texture}getTexture(){return this.texture}getResolution(){return this.resolution}getBlurPass(){return this.blurPass}getLuminancePass(){return this.luminancePass}get luminanceMaterial(){return this.luminancePass.fullscreenMaterial}getLuminanceMaterial(){return this.luminancePass.fullscreenMaterial}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get dithering(){return this.blurPass.dithering}set dithering(e){this.blurPass.dithering=e}get kernelSize(){return this.blurPass.kernelSize}set kernelSize(e){this.blurPass.kernelSize=e}get distinction(){return console.warn(this.name,"distinction was removed"),1}set distinction(e){console.warn(this.name,"distinction was removed")}get intensity(){return this.uniforms.get("intensity").value}set intensity(e){this.uniforms.get("intensity").value=e}getIntensity(){return this.intensity}setIntensity(e){this.intensity=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}update(e,t,r){let i=this.renderTarget,s=this.luminancePass;s.enabled?(s.render(e,t),this.mipmapBlurPass.enabled?this.mipmapBlurPass.render(e,s.renderTarget):this.blurPass.render(e,s.renderTarget,i)):this.mipmapBlurPass.enabled?this.mipmapBlurPass.render(e,t):this.blurPass.render(e,t,i)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height),this.blurPass.resolution.copy(r),this.luminancePass.setSize(e,t),this.mipmapBlurPass.setSize(e,t)}initialize(e,t,r){this.blurPass.initialize(e,t,r),this.luminancePass.initialize(e,t,r),this.mipmapBlurPass.initialize(e,t,r),void 0!==r&&(this.renderTarget.texture.type=r,null!==e&&e.outputColorSpace===H.SRGBColorSpace&&(this.renderTarget.texture.colorSpace=H.SRGBColorSpace))}},eC=class extends eo{constructor({blendFunction:e=30,brightness:t=0,contrast:r=0}={}){super("BrightnessContrastEffect","uniform float brightness;uniform float contrast;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 color=inputColor.rgb+vec3(brightness-0.5);if(contrast>0.0){color/=vec3(1.0-contrast);}else{color*=vec3(1.0+contrast);}outputColor=vec4(color+vec3(0.5),inputColor.a);}",{blendFunction:e,uniforms:new Map([["brightness",new H.Uniform(t)],["contrast",new H.Uniform(r)]])}),this.inputColorSpace=H.SRGBColorSpace}get brightness(){return this.uniforms.get("brightness").value}set brightness(e){this.uniforms.get("brightness").value=e}getBrightness(){return this.brightness}setBrightness(e){this.brightness=e}get contrast(){return this.uniforms.get("contrast").value}set contrast(e){this.uniforms.get("contrast").value=e}getContrast(){return this.contrast}setContrast(e){this.contrast=e}},eB=class extends eo{constructor(e){super("ColorAverageEffect","void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){outputColor=vec4(vec3(average(inputColor.rgb)),inputColor.a);}",{blendFunction:e})}},eT=class extends eo{constructor({blendFunction:e,bits:t=16}={}){super("ColorDepthEffect","uniform float factor;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){outputColor=vec4(floor(inputColor.rgb*factor+0.5)/factor,inputColor.a);}",{blendFunction:e,uniforms:new Map([["factor",new H.Uniform(1)]])}),this.bits=0,this.bitDepth=t}get bitDepth(){return this.bits}set bitDepth(e){this.bits=e,this.uniforms.get("factor").value=Math.pow(2,e/3)}getBitDepth(){return this.bitDepth}setBitDepth(e){this.bitDepth=e}},eS=`#ifdef RADIAL_MODULATION +uniform float modulationOffset; +#endif +varying float vActive;varying vec2 vUvR;varying vec2 vUvB;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec2 ra=inputColor.ra;vec2 ba=inputColor.ba; +#ifdef RADIAL_MODULATION +const vec2 center=vec2(0.5);float d=distance(uv,center)*2.0;d=max(d-modulationOffset,0.0);if(vActive>0.0&&d>0.0){ra=texture2D(inputBuffer,mix(uv,vUvR,d)).ra;ba=texture2D(inputBuffer,mix(uv,vUvB,d)).ba;} +#else +if(vActive>0.0){ra=texture2D(inputBuffer,vUvR).ra;ba=texture2D(inputBuffer,vUvB).ba;} +#endif +outputColor=vec4(ra.x,inputColor.g,ba.x,max(max(ra.y,ba.y),inputColor.a));}`,ey=class extends eo{constructor({offset:e=new H.Vector2(.001,5e-4),radialModulation:t=!1,modulationOffset:r=.15}={}){super("ChromaticAberrationEffect",eS,{vertexShader:"uniform vec2 offset;varying float vActive;varying vec2 vUvR;varying vec2 vUvB;void mainSupport(const in vec2 uv){vec2 shift=offset*vec2(1.0,aspect);vActive=(shift.x!=0.0||shift.y!=0.0)?1.0:0.0;vUvR=uv+shift;vUvB=uv-shift;}",attributes:2,uniforms:new Map([["offset",new H.Uniform(e)],["modulationOffset",new H.Uniform(r)]])}),this.radialModulation=t}get offset(){return this.uniforms.get("offset").value}set offset(e){this.uniforms.get("offset").value=e}get radialModulation(){return this.defines.has("RADIAL_MODULATION")}set radialModulation(e){e?this.defines.set("RADIAL_MODULATION","1"):this.defines.delete("RADIAL_MODULATION"),this.setChanged()}get modulationOffset(){return this.uniforms.get("modulationOffset").value}set modulationOffset(e){this.uniforms.get("modulationOffset").value=e}getOffset(){return this.offset}setOffset(e){this.offset=e}},eM=`void mainImage(const in vec4 inputColor,const in vec2 uv,const in float depth,out vec4 outputColor){ +#ifdef INVERTED +vec3 color=vec3(1.0-depth); +#else +vec3 color=vec3(depth); +#endif +outputColor=vec4(color,inputColor.a);}`,eP=class extends eo{constructor({blendFunction:e=30,inverted:t=!1}={}){super("DepthEffect",eM,{blendFunction:e,attributes:1}),this.inverted=t}get inverted(){return this.defines.has("INVERTED")}set inverted(e){this.inverted!==e&&(e?this.defines.set("INVERTED","1"):this.defines.delete("INVERTED"),this.setChanged())}isInverted(){return this.inverted}setInverted(e){this.inverted=e}},eI={DISCARD:0,MULTIPLY:1,MULTIPLY_RGB_SET_ALPHA:2,MULTIPLY_RGB:3},eU=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#if PASS == 1 +uniform vec4 kernel64[32]; +#else +uniform vec4 kernel16[8]; +#endif +uniform lowp sampler2D cocBuffer;uniform vec2 texelSize;uniform float scale;varying vec2 vUv;void main(){ +#ifdef FOREGROUND +vec2 cocNearFar=texture2D(cocBuffer,vUv).rg*scale;float coc=cocNearFar.x; +#else +float coc=texture2D(cocBuffer,vUv).g*scale; +#endif +if(coc==0.0){gl_FragColor=texture2D(inputBuffer,vUv);}else{ +#ifdef FOREGROUND +vec2 step=texelSize*max(cocNearFar.x,cocNearFar.y); +#else +vec2 step=texelSize*coc; +#endif +#if PASS == 1 +vec4 acc=vec4(0.0);for(int i=0;i<32;++i){vec4 kernel=kernel64[i];vec2 uv=step*kernel.xy+vUv;acc+=texture2D(inputBuffer,uv);uv=step*kernel.zw+vUv;acc+=texture2D(inputBuffer,uv);}gl_FragColor=acc/64.0; +#else +vec4 maxValue=texture2D(inputBuffer,vUv);for(int i=0;i<8;++i){vec4 kernel=kernel16[i];vec2 uv=step*kernel.xy+vUv;maxValue=max(texture2D(inputBuffer,uv),maxValue);uv=step*kernel.zw+vUv;maxValue=max(texture2D(inputBuffer,uv),maxValue);}gl_FragColor=maxValue; +#endif +}}`,eR=class extends H.ShaderMaterial{constructor(e=!1,t=!1){super({name:"BokehMaterial",defines:{PASS:e?"2":"1"},uniforms:{inputBuffer:new H.Uniform(null),cocBuffer:new H.Uniform(null),texelSize:new H.Uniform(new H.Vector2),kernel64:new H.Uniform(null),kernel16:new H.Uniform(null),scale:new H.Uniform(1)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:eU,vertexShader:Y}),t&&(this.defines.FOREGROUND="1"),this.generateKernel()}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}set cocBuffer(e){this.uniforms.cocBuffer.value=e}setCoCBuffer(e){this.uniforms.cocBuffer.value=e}get scale(){return this.uniforms.scale.value}set scale(e){this.uniforms.scale.value=e}getScale(e){return this.scale}setScale(e){this.scale=e}generateKernel(){let e=new Float64Array(128),t=new Float64Array(32),r=0,i=0;for(let s=0,a=Math.sqrt(80);s<80;++s){let n=2.39996323*s,o=Math.sqrt(s)/a,l=o*Math.cos(n),u=o*Math.sin(n);s%5==0?(t[i++]=l,t[i++]=u):(e[r++]=l,e[r++]=u)}this.uniforms.kernel64.value=e,this.uniforms.kernel16.value=t}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t)}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},eb=`#include +#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +uniform mat4 projectionMatrix;uniform mat4 projectionMatrixInverse;uniform float cameraNear;uniform float cameraFar;uniform float focusDistance;uniform float focusRange;varying vec2 vUv;float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +float depth=unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +float depth=texture2D(depthBuffer,uv).r; +#endif +#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) +float d=pow(2.0,depth*log2(cameraFar+1.0))-1.0;float a=cameraFar/(cameraFar-cameraNear);float b=cameraFar*cameraNear/(cameraNear-cameraFar);depth=a+b/d; +#elif defined(USE_REVERSED_DEPTH_BUFFER) +depth=1.0-depth; +#endif +return depth;} +#ifdef PERSPECTIVE_CAMERA +#define getViewZ(depth) perspectiveDepthToViewZ(depth, cameraNear, cameraFar) +#else +#define getViewZ(depth) orthographicDepthToViewZ(depth, cameraNear, cameraFar) +#endif +vec3 getViewPosition(const in vec2 screenPosition,const in float depth,const in float viewZ){vec4 clipPosition=vec4(vec3(screenPosition,depth)*2.0-1.0,1.0);float clipW=projectionMatrix[2][3]*viewZ+projectionMatrix[3][3];clipPosition*=clipW;return(projectionMatrixInverse*clipPosition).xyz;}vec3 getViewPosition(const in vec2 screenPosition,const in float depth){return getViewPosition(screenPosition,depth,getViewZ(depth));} +#define getDistance(viewPosition) length(viewPosition) +void main(){float depth=readDepth(vUv);vec3 viewPosition=getViewPosition(vUv,depth);float distance=getDistance(viewPosition);float signedDistance=distance-focusDistance;float magnitude=smoothstep(0.0,focusRange,abs(signedDistance));gl_FragColor.rg=magnitude*vec2(step(signedDistance,0.0),step(0.0,signedDistance));}`,eF=class extends H.ShaderMaterial{constructor(e=null){super({name:"CircleOfConfusionMaterial",defines:{DEPTH_PACKING:"0"},uniforms:{depthBuffer:new H.Uniform(null),projectionMatrix:new H.Uniform(null),projectionMatrixInverse:new H.Uniform(null),cameraNear:new H.Uniform(.3),cameraFar:new H.Uniform(1e3),focusDistance:new H.Uniform(0),focusRange:new H.Uniform(0)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:eb,vertexShader:Y}),this.uniforms.focalLength=this.uniforms.focusRange,null!==e&&this.copyCameraSettings(e)}set depthBuffer(e){this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=H.BasicDepthPacking){this.depthBuffer=e,this.depthPacking=t}get focusDistance(){return this.uniforms.focusDistance.value}set focusDistance(e){this.uniforms.focusDistance.value=e}get worldFocusDistance(){return this.focusDistance}set worldFocusDistance(e){this.focusDistance=e}getFocusDistance(e){this.uniforms.focusDistance.value=e}setFocusDistance(e){this.uniforms.focusDistance.value=e}get focalLength(){return this.focusRange}set focalLength(e){this.focusRange=e}get focusRange(){return this.uniforms.focusRange.value}set focusRange(e){this.uniforms.focusRange.value=e}get worldFocusRange(){return this.focusRange}set worldFocusRange(e){this.focusRange=e}getFocalLength(e){return this.focusRange}setFocalLength(e){this.focusRange=e}adoptCameraSettings(e){this.copyCameraSettings(e)}copyCameraSettings(e){this.uniforms.projectionMatrix.value=e.projectionMatrix,this.uniforms.projectionMatrixInverse.value=e.projectionMatrixInverse,this.uniforms.cameraNear.value=e.near,this.uniforms.cameraFar.value=e.far;let t=void 0!==this.defines.PERSPECTIVE_CAMERA;e instanceof H.PerspectiveCamera?t||(this.defines.PERSPECTIVE_CAMERA=!0,this.needsUpdate=!0):t&&(delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}},eL=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#ifdef MASK_PRECISION_HIGH +uniform mediump sampler2D maskTexture; +#else +uniform lowp sampler2D maskTexture; +#endif +#if MASK_FUNCTION != 0 +uniform float strength; +#endif +varying vec2 vUv;void main(){ +#if COLOR_CHANNEL == 0 +float mask=texture2D(maskTexture,vUv).r; +#elif COLOR_CHANNEL == 1 +float mask=texture2D(maskTexture,vUv).g; +#elif COLOR_CHANNEL == 2 +float mask=texture2D(maskTexture,vUv).b; +#else +float mask=texture2D(maskTexture,vUv).a; +#endif +#if MASK_FUNCTION == 0 +#ifdef INVERTED +mask=(mask>0.0)?0.0:1.0; +#else +mask=(mask>0.0)?1.0:0.0; +#endif +#else +mask=clamp(mask*strength,0.0,1.0); +#ifdef INVERTED +mask=1.0-mask; +#endif +#endif +#if MASK_FUNCTION == 3 +vec4 texel=texture2D(inputBuffer,vUv);gl_FragColor=vec4(mask*texel.rgb,texel.a); +#elif MASK_FUNCTION == 2 +gl_FragColor=vec4(mask*texture2D(inputBuffer,vUv).rgb,mask); +#else +gl_FragColor=mask*texture2D(inputBuffer,vUv); +#endif +}`,eO=class extends H.ShaderMaterial{constructor(e=null){super({name:"MaskMaterial",uniforms:{maskTexture:new H.Uniform(e),inputBuffer:new H.Uniform(null),strength:new H.Uniform(1)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:eL,vertexShader:Y}),this.colorChannel=0,this.maskFunction=eI.DISCARD}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}set maskTexture(e){this.uniforms.maskTexture.value=e,delete this.defines.MASK_PRECISION_HIGH,e.type!==H.UnsignedByteType&&(this.defines.MASK_PRECISION_HIGH="1"),this.needsUpdate=!0}setMaskTexture(e){this.maskTexture=e}set colorChannel(e){this.defines.COLOR_CHANNEL=e.toFixed(0),this.needsUpdate=!0}setColorChannel(e){this.colorChannel=e}set maskFunction(e){this.defines.MASK_FUNCTION=e.toFixed(0),this.needsUpdate=!0}setMaskFunction(e){this.maskFunction=e}get inverted(){return void 0!==this.defines.INVERTED}set inverted(e){this.inverted&&!e?delete this.defines.INVERTED:e&&(this.defines.INVERTED="1"),this.needsUpdate=!0}isInverted(){return this.inverted}setInverted(e){this.inverted=e}get strength(){return this.uniforms.strength.value}set strength(e){this.uniforms.strength.value=e}getStrength(){return this.strength}setStrength(e){this.strength=e}},eG=class extends k{constructor(e,t="inputBuffer"){super("ShaderPass"),this.fullscreenMaterial=e,this.input=t}setInput(e){this.input=e}render(e,t,r,i,s){let a=this.fullscreenMaterial.uniforms;null!==t&&void 0!==a&&void 0!==a[this.input]&&(a[this.input].value=t.texture),e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}initialize(e,t,r){void 0!==r&&r!==H.UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},eN=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D nearColorBuffer;uniform mediump sampler2D farColorBuffer; +#else +uniform lowp sampler2D nearColorBuffer;uniform lowp sampler2D farColorBuffer; +#endif +#if MASK_FUNCTION != 1 && MASK_FUNCTION != 2 +uniform lowp sampler2D farCoCBuffer; +#endif +uniform lowp sampler2D nearCoCBuffer;uniform float scale;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 colorNear=texture2D(nearColorBuffer,uv);vec4 colorFar=texture2D(farColorBuffer,uv); +#if MASK_FUNCTION == 1 || MASK_FUNCTION == 2 +vec2 cocNearFar=vec2(texture2D(nearCoCBuffer,uv).r,colorFar.a);cocNearFar.x=min(cocNearFar.x*scale,1.0); +#else +vec2 cocNearFar=vec2(texture2D(nearCoCBuffer,uv).r,texture2D(farCoCBuffer,uv).g);cocNearFar=min(cocNearFar*scale,1.0);colorFar.a*=cocNearFar.y; +#endif +vec4 result=inputColor*(1.0-cocNearFar.y)+colorFar;result=mix(result,colorNear,cocNearFar.x);outputColor=result;}`,eH=new H.Vector3,ez=class extends eo{constructor(e,{blendFunction:t,worldFocusDistance:r,worldFocusRange:i,focalLength:s,focusDistance:a=r||3,focusRange:n=i||s||2,bokehScale:o=1,resolutionScale:l=.5,width:u,height:c,resolutionX:h=u||er.AUTO_SIZE,resolutionY:d=c||er.AUTO_SIZE}={}){super("DepthOfFieldEffect",eN,{blendFunction:t,attributes:1,uniforms:new Map([["nearColorBuffer",new H.Uniform(null)],["farColorBuffer",new H.Uniform(null)],["nearCoCBuffer",new H.Uniform(null)],["farCoCBuffer",new H.Uniform(null)],["scale",new H.Uniform(1)]])}),this.camera=e,this.renderTarget=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="DoF.Intermediate",this.renderTargetMasked=this.renderTarget.clone(),this.renderTargetMasked.texture.name="DoF.Masked.Far",this.renderTargetNear=this.renderTarget.clone(),this.renderTargetNear.texture.name="DoF.Bokeh.Near",this.uniforms.get("nearColorBuffer").value=this.renderTargetNear.texture,this.renderTargetFar=this.renderTarget.clone(),this.renderTargetFar.texture.name="DoF.Bokeh.Far",this.uniforms.get("farColorBuffer").value=this.renderTargetFar.texture,this.renderTargetCoC=this.renderTarget.clone(),this.renderTargetCoC.texture.name="DoF.CoC",this.uniforms.get("farCoCBuffer").value=this.renderTargetCoC.texture,this.renderTargetCoCBlurred=this.renderTargetCoC.clone(),this.renderTargetCoCBlurred.texture.name="DoF.CoC.Blurred",this.uniforms.get("nearCoCBuffer").value=this.renderTargetCoCBlurred.texture,this.cocPass=new eG(new eF(e));const f=this.cocMaterial;f.focusDistance=a,f.focusRange=n,this.blurPass=new ed({resolutionScale:l,resolutionX:h,resolutionY:d,kernelSize:el.MEDIUM}),this.maskPass=new eG(new eO(this.renderTargetCoC.texture)),this.maskPass.fullscreenMaterial.colorChannel=1,this.maskFunction=eI.MULTIPLY_RGB,this.bokehNearBasePass=new eG(new eR(!1,!0)),this.bokehNearBasePass.fullscreenMaterial.cocBuffer=this.renderTargetCoCBlurred.texture,this.bokehNearFillPass=new eG(new eR(!0,!0)),this.bokehNearFillPass.fullscreenMaterial.cocBuffer=this.renderTargetCoCBlurred.texture,this.bokehFarBasePass=new eG(new eR(!1,!1)),this.bokehFarBasePass.fullscreenMaterial.cocBuffer=this.renderTargetCoC.texture,this.bokehFarFillPass=new eG(new eR(!0,!1)),this.bokehFarFillPass.fullscreenMaterial.cocBuffer=this.renderTargetCoC.texture,this.target=null;const g=this.resolution=new er(this,h,d,l);g.addEventListener("change",e=>this.setSize(g.baseWidth,g.baseHeight)),this.bokehScale=o}set mainCamera(e){this.camera=e,this.cocMaterial.copyCameraSettings(e)}get cocTexture(){return this.renderTargetCoC.texture}get maskFunction(){return this.maskPass.fullscreenMaterial.maskFunction}set maskFunction(e){this.maskFunction!==e&&(this.defines.set("MASK_FUNCTION",e.toFixed(0)),this.maskPass.fullscreenMaterial.maskFunction=e,this.setChanged())}get cocMaterial(){return this.cocPass.fullscreenMaterial}get circleOfConfusionMaterial(){return this.cocMaterial}getCircleOfConfusionMaterial(){return this.cocMaterial}getBlurPass(){return this.blurPass}getResolution(){return this.resolution}get bokehScale(){return this.uniforms.get("scale").value}set bokehScale(e){this.bokehNearBasePass.fullscreenMaterial.scale=e,this.bokehNearFillPass.fullscreenMaterial.scale=e,this.bokehFarBasePass.fullscreenMaterial.scale=e,this.bokehFarFillPass.fullscreenMaterial.scale=e,this.maskPass.fullscreenMaterial.strength=e,this.uniforms.get("scale").value=e}getBokehScale(){return this.bokehScale}setBokehScale(e){this.bokehScale=e}getTarget(){return this.target}setTarget(e){this.target=e}calculateFocusDistance(e){return this.camera.getWorldPosition(eH).distanceTo(e)}setDepthTexture(e,t=H.BasicDepthPacking){this.cocMaterial.depthBuffer=e,this.cocMaterial.depthPacking=t}update(e,t,r){let i=this.renderTarget,s=this.renderTargetCoC,a=this.renderTargetCoCBlurred,n=this.renderTargetMasked;if(null!==this.target){let e=this.calculateFocusDistance(this.target);this.cocMaterial.focusDistance=e}this.cocPass.render(e,null,s),this.blurPass.render(e,s,a),this.maskPass.render(e,t,n),this.bokehFarBasePass.render(e,n,i),this.bokehFarFillPass.render(e,i,this.renderTargetFar),this.bokehNearBasePass.render(e,t,i),this.bokehNearFillPass.render(e,i,this.renderTargetNear)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t);let i=r.width,s=r.height;this.cocPass.setSize(e,t),this.blurPass.setSize(e,t),this.maskPass.setSize(e,t),this.renderTargetFar.setSize(e,t),this.renderTargetCoC.setSize(e,t),this.renderTargetMasked.setSize(e,t),this.renderTarget.setSize(i,s),this.renderTargetNear.setSize(i,s),this.renderTargetCoCBlurred.setSize(i,s),this.bokehNearBasePass.fullscreenMaterial.setSize(e,t),this.bokehNearFillPass.fullscreenMaterial.setSize(e,t),this.bokehFarBasePass.fullscreenMaterial.setSize(e,t),this.bokehFarFillPass.fullscreenMaterial.setSize(e,t)}initialize(e,t,r){this.cocPass.initialize(e,t,r),this.maskPass.initialize(e,t,r),this.bokehNearBasePass.initialize(e,t,r),this.bokehNearFillPass.initialize(e,t,r),this.bokehFarBasePass.initialize(e,t,r),this.bokehFarFillPass.initialize(e,t,r),this.blurPass.initialize(e,t,H.UnsignedByteType),e.capabilities.logarithmicDepthBuffer&&(this.cocPass.fullscreenMaterial.defines.LOG_DEPTH="1"),void 0!==r&&(this.renderTarget.texture.type=r,this.renderTargetNear.texture.type=r,this.renderTargetFar.texture.type=r,this.renderTargetMasked.texture.type=r,null!==e&&e.outputColorSpace===H.SRGBColorSpace&&(this.renderTarget.texture.colorSpace=H.SRGBColorSpace,this.renderTargetNear.texture.colorSpace=H.SRGBColorSpace,this.renderTargetFar.texture.colorSpace=H.SRGBColorSpace,this.renderTargetMasked.texture.colorSpace=H.SRGBColorSpace))}},ek=class extends eo{constructor({blendFunction:e,angle:t=.5*Math.PI,scale:r=1}={}){super("DotScreenEffect","uniform vec2 angle;uniform float scale;float pattern(const in vec2 uv){vec2 point=scale*vec2(dot(angle.yx,vec2(uv.x,-uv.y)),dot(angle,uv));return(sin(point.x)*sin(point.y))*4.0;}void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 color=vec3(inputColor.rgb*10.0-5.0+pattern(uv*resolution));outputColor=vec4(color,inputColor.a);}",{blendFunction:e,uniforms:new Map([["angle",new H.Uniform(new H.Vector2)],["scale",new H.Uniform(r)]])}),this.angle=t}get angle(){return Math.acos(this.uniforms.get("angle").value.y)}set angle(e){this.uniforms.get("angle").value.set(Math.sin(e),Math.cos(e))}getAngle(){return this.angle}setAngle(e){this.angle=e}get scale(){return this.uniforms.get("scale").value}set scale(e){this.uniforms.get("scale").value=e}},eV=`#define QUALITY(q) ((q) < 5 ? 1.0 : ((q) > 5 ? ((q) < 10 ? 2.0 : ((q) < 11 ? 4.0 : 8.0)) : 1.5)) +#define ONE_OVER_TWELVE 0.08333333333333333 +varying vec2 vUvDown;varying vec2 vUvUp;varying vec2 vUvLeft;varying vec2 vUvRight;varying vec2 vUvDownLeft;varying vec2 vUvUpRight;varying vec2 vUvUpLeft;varying vec2 vUvDownRight;vec4 fxaa(const in vec4 inputColor,const in vec2 uv){float lumaCenter=luminance(inputColor.rgb);float lumaDown=luminance(texture2D(inputBuffer,vUvDown).rgb);float lumaUp=luminance(texture2D(inputBuffer,vUvUp).rgb);float lumaLeft=luminance(texture2D(inputBuffer,vUvLeft).rgb);float lumaRight=luminance(texture2D(inputBuffer,vUvRight).rgb);float lumaMin=min(lumaCenter,min(min(lumaDown,lumaUp),min(lumaLeft,lumaRight)));float lumaMax=max(lumaCenter,max(max(lumaDown,lumaUp),max(lumaLeft,lumaRight)));float lumaRange=lumaMax-lumaMin;if(lumaRange=edgeVertical);float stepLength=isHorizontal?texelSize.y:texelSize.x;float luma1=isHorizontal?lumaDown:lumaLeft;float luma2=isHorizontal?lumaUp:lumaRight;float gradient1=abs(luma1-lumaCenter);float gradient2=abs(luma2-lumaCenter);bool is1Steepest=gradient1>=gradient2;float gradientScaled=0.25*max(gradient1,gradient2);float lumaLocalAverage=0.0;if(is1Steepest){stepLength=-stepLength;lumaLocalAverage=0.5*(luma1+lumaCenter);}else{lumaLocalAverage=0.5*(luma2+lumaCenter);}vec2 currentUv=uv;if(isHorizontal){currentUv.y+=stepLength*0.5;}else{currentUv.x+=stepLength*0.5;}vec2 offset=isHorizontal?vec2(texelSize.x,0.0):vec2(0.0,texelSize.y);vec2 uv1=currentUv-offset*QUALITY(0);vec2 uv2=currentUv+offset*QUALITY(0);float lumaEnd1=luminance(texture2D(inputBuffer,uv1).rgb);float lumaEnd2=luminance(texture2D(inputBuffer,uv2).rgb);lumaEnd1-=lumaLocalAverage;lumaEnd2-=lumaLocalAverage;bool reached1=abs(lumaEnd1)>=gradientScaled;bool reached2=abs(lumaEnd2)>=gradientScaled;bool reachedBoth=reached1&&reached2;if(!reached1){uv1-=offset*QUALITY(1);}if(!reached2){uv2+=offset*QUALITY(1);}if(!reachedBoth){for(int i=2;i=gradientScaled;reached2=abs(lumaEnd2)>=gradientScaled;reachedBoth=reached1&&reached2;if(!reached1){uv1-=offset*QUALITY(i);}if(!reached2){uv2+=offset*QUALITY(i);}if(reachedBoth){break;}}}float distance1=isHorizontal?(uv.x-uv1.x):(uv.y-uv1.y);float distance2=isHorizontal?(uv2.x-uv.x):(uv2.y-uv.y);bool isDirection1=distance1distortion.x-columns*random){float sx=clamp(ceil(seeds.x),0.0,1.0);uv.y=sx*(1.0-(uv.y+distortion.y))+(1.0-sx)*distortion.y;}if(uv.xdistortion.y-columns*random){float sy=clamp(ceil(seeds.y),0.0,1.0);uv.x=sy*distortion.x+(1.0-sy)*(1.0-(uv.x+distortion.x));}vec2 normal=texture2D(perturbationMap,uv*random*random).rg;uv+=normal*seeds*(random*0.2);}}",{uniforms:new Map([["perturbationMap",new H.Uniform(null)],["columns",new H.Uniform(s)],["active",new H.Uniform(!1)],["random",new H.Uniform(1)],["seeds",new H.Uniform(new H.Vector2)],["distortion",new H.Uniform(new H.Vector2)]])}),null===n){const e=new eW(o,o,H.RGBAFormat);e.name=eK,this.perturbationMap=e}else this.perturbationMap=n;this.time=0,this.distortion=this.uniforms.get("distortion").value,this.delay=t,this.duration=r,this.breakPoint=new H.Vector2(eX(this.delay.x,this.delay.y),eX(this.duration.x,this.duration.y)),this.strength=i,this.mode=eY.SPORADIC,this.ratio=a,this.chromaticAberrationOffset=e}get seeds(){return this.uniforms.get("seeds").value}get active(){return this.uniforms.get("active").value}isActive(){return this.active}get minDelay(){return this.delay.x}set minDelay(e){this.delay.x=e}getMinDelay(){return this.delay.x}setMinDelay(e){this.delay.x=e}get maxDelay(){return this.delay.y}set maxDelay(e){this.delay.y=e}getMaxDelay(){return this.delay.y}setMaxDelay(e){this.delay.y=e}get minDuration(){return this.duration.x}set minDuration(e){this.duration.x=e}getMinDuration(){return this.duration.x}setMinDuration(e){this.duration.x=e}get maxDuration(){return this.duration.y}set maxDuration(e){this.duration.y=e}getMaxDuration(){return this.duration.y}setMaxDuration(e){this.duration.y=e}get minStrength(){return this.strength.x}set minStrength(e){this.strength.x=e}getMinStrength(){return this.strength.x}setMinStrength(e){this.strength.x=e}get maxStrength(){return this.strength.y}set maxStrength(e){this.strength.y=e}getMaxStrength(){return this.strength.y}setMaxStrength(e){this.strength.y=e}getMode(){return this.mode}setMode(e){this.mode=e}getGlitchRatio(){return 1-this.ratio}setGlitchRatio(e){this.ratio=Math.min(Math.max(1-e,0),1)}get columns(){return this.uniforms.get("columns").value}set columns(e){this.uniforms.get("columns").value=e}getGlitchColumns(){return this.columns}setGlitchColumns(e){this.columns=e}getChromaticAberrationOffset(){return this.chromaticAberrationOffset}setChromaticAberrationOffset(e){this.chromaticAberrationOffset=e}get perturbationMap(){return this.uniforms.get("perturbationMap").value}set perturbationMap(e){let t=this.perturbationMap;null!==t&&t.name===eK&&t.dispose(),e.minFilter=e.magFilter=H.NearestFilter,e.wrapS=e.wrapT=H.RepeatWrapping,e.generateMipmaps=!1,this.uniforms.get("perturbationMap").value=e}getPerturbationMap(){return this.perturbationMap}setPerturbationMap(e){this.perturbationMap=e}generatePerturbationMap(e=64){let t=new eW(e,e,H.RGBAFormat);return t.name=eK,t}update(e,t,r){let i,s=this.mode,a=this.breakPoint,n=this.chromaticAberrationOffset,o=this.strength,l=this.time,u=!1,c=0,h=0;s!==eY.DISABLED&&(s===eY.SPORADIC&&(l+=r,i=l>a.x,l>=a.x+a.y&&(a.set(eX(this.delay.x,this.delay.y),eX(this.duration.x,this.duration.y)),l=0)),c=Math.random(),this.uniforms.get("random").value=c,i&&c>this.ratio||s===eY.CONSTANT_WILD?(u=!0,c*=.03*o.y,h=eX(-Math.PI,Math.PI),this.seeds.set(eX(-o.y,o.y),eX(-o.y,o.y)),this.distortion.set(eX(0,1),eX(0,1))):(i||s===eY.CONSTANT_MILD)&&(u=!0,c*=.03*o.x,h=eX(-Math.PI,Math.PI),this.seeds.set(eX(-o.x,o.x),eX(-o.x,o.x)),this.distortion.set(eX(0,1),eX(0,1))),this.time=l),null!==n&&(u?n.set(Math.cos(h),Math.sin(h)).multiplyScalar(c):n.set(0,0)),this.uniforms.get("active").value=u}dispose(){let e=this.perturbationMap;null!==e&&e.name===eK&&e.dispose()}},ej=`#include +#include +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +uniform vec2 lightPosition;uniform float exposure;uniform float decay;uniform float density;uniform float weight;uniform float clampMax;varying vec2 vUv;void main(){vec2 coord=vUv;vec2 delta=lightPosition-coord;delta*=1.0/SAMPLES_FLOAT*density;float illuminationDecay=1.0;vec4 color=vec4(0.0);for(int i=0;i +}`,eZ=class extends H.ShaderMaterial{constructor(e){super({name:"GodRaysMaterial",defines:{SAMPLES_INT:"60",SAMPLES_FLOAT:"60.0"},uniforms:{inputBuffer:new H.Uniform(null),lightPosition:new H.Uniform(e),density:new H.Uniform(1),decay:new H.Uniform(1),weight:new H.Uniform(1),exposure:new H.Uniform(1),clampMax:new H.Uniform(1)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:ej,vertexShader:Y})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get lightPosition(){return this.uniforms.lightPosition.value}getLightPosition(){return this.uniforms.lightPosition.value}setLightPosition(e){this.uniforms.lightPosition.value=e}get density(){return this.uniforms.density.value}set density(e){this.uniforms.density.value=e}getDensity(){return this.uniforms.density.value}setDensity(e){this.uniforms.density.value=e}get decay(){return this.uniforms.decay.value}set decay(e){this.uniforms.decay.value=e}getDecay(){return this.uniforms.decay.value}setDecay(e){this.uniforms.decay.value=e}get weight(){return this.uniforms.weight.value}set weight(e){this.uniforms.weight.value=e}getWeight(){return this.uniforms.weight.value}setWeight(e){this.uniforms.weight.value=e}get exposure(){return this.uniforms.exposure.value}set exposure(e){this.uniforms.exposure.value=e}getExposure(){return this.uniforms.exposure.value}setExposure(e){this.uniforms.exposure.value=e}get maxIntensity(){return this.uniforms.clampMax.value}set maxIntensity(e){this.uniforms.clampMax.value=e}getMaxIntensity(){return this.uniforms.clampMax.value}setMaxIntensity(e){this.uniforms.clampMax.value=e}get samples(){return Number(this.defines.SAMPLES_INT)}set samples(e){let t=Math.floor(e);this.defines.SAMPLES_INT=t.toFixed(0),this.defines.SAMPLES_FLOAT=t.toFixed(1),this.needsUpdate=!0}getSamples(){return this.samples}setSamples(e){this.samples=e}},eq=class extends k{constructor(e,t,r=null){super("RenderPass",e,t),this.needsSwap=!1,this.needsDepthBlit=!0,this.clearPass=new J,this.overrideMaterialManager=null===r?null:new et(r),this.ignoreBackground=!1,this.skipShadowMapUpdate=!1,this.selection=null}set mainScene(e){this.scene=e}set mainCamera(e){this.camera=e}get renderToScreen(){return super.renderToScreen}set renderToScreen(e){super.renderToScreen=e,this.clearPass.renderToScreen=e}get overrideMaterial(){let e=this.overrideMaterialManager;return null!==e?e.material:null}set overrideMaterial(e){let t=this.overrideMaterialManager;null!==e?null!==t?t.setMaterial(e):this.overrideMaterialManager=new et(e):null!==t&&(t.dispose(),this.overrideMaterialManager=null)}getOverrideMaterial(){return this.overrideMaterial}setOverrideMaterial(e){this.overrideMaterial=e}get clear(){return this.clearPass.enabled}set clear(e){this.clearPass.enabled=e}getSelection(){return this.selection}setSelection(e){this.selection=e}isBackgroundDisabled(){return this.ignoreBackground}setBackgroundDisabled(e){this.ignoreBackground=e}isShadowMapDisabled(){return this.skipShadowMapUpdate}setShadowMapDisabled(e){this.skipShadowMapUpdate=e}getClearPass(){return this.clearPass}render(e,t,r,i,s){let a=this.scene,n=this.camera,o=this.selection,l=n.layers.mask,u=a.background,c=e.shadowMap.autoUpdate,h=this.renderToScreen?null:t;null!==o&&n.layers.set(o.getLayer()),this.skipShadowMapUpdate&&(e.shadowMap.autoUpdate=!1),(this.ignoreBackground||null!==this.clearPass.overrideClearColor)&&(a.background=null),this.clearPass.enabled&&this.clearPass.render(e,t),e.setRenderTarget(h),null!==this.overrideMaterialManager?this.overrideMaterialManager.render(e,a,n):e.render(a,n),n.layers.mask=l,a.background=u,e.shadowMap.autoUpdate=c}},e_=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D map; +#else +uniform lowp sampler2D map; +#endif +void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){outputColor=texture2D(map,uv);}`,e$=new H.Vector3,e0=new H.Matrix4,e1=class extends eo{constructor(e,t,{blendFunction:r=28,samples:i=60,density:s=.96,decay:a=.9,weight:n=.4,exposure:o=.6,clampMax:l=1,blur:u=!0,kernelSize:c=el.SMALL,resolutionScale:h=.5,width:d=er.AUTO_SIZE,height:f=er.AUTO_SIZE,resolutionX:g=d,resolutionY:p=f}={}){super("GodRaysEffect",e_,{blendFunction:r,attributes:1,uniforms:new Map([["map",new H.Uniform(null)]])}),this.camera=e,this._lightSource=t,this.lightSource=t,this.lightScene=new H.Scene,this.screenPosition=new H.Vector2,this.renderTargetA=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="GodRays.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="GodRays.Target.B",this.uniforms.get("map").value=this.renderTargetB.texture,this.renderTargetLight=new H.WebGLRenderTarget(1,1),this.renderTargetLight.texture.name="GodRays.Light",this.renderTargetLight.depthTexture=new H.DepthTexture,this.renderPassLight=new eq(this.lightScene,e),this.renderPassLight.clearPass.enabled=!1,this.blurPass=new ed({kernelSize:c}),this.blurPass.enabled=u,this.copyPass=new K(this.renderTargetLight),this.copyPass.fullscreenMaterial.channelWeights=new H.Vector4(0,0,0,1),this.godRaysPass=new eG(new eZ(this.screenPosition));const v=this.godRaysMaterial;v.density=s,v.decay=a,v.weight=n,v.exposure=o,v.maxIntensity=l,v.samples=i;const m=this.resolution=new er(this,g,p,h);m.addEventListener("change",e=>this.setSize(m.baseWidth,m.baseHeight))}set mainCamera(e){this.camera=e,this.renderPassLight.mainCamera=e}get lightSource(){return this._lightSource}set lightSource(e){this._lightSource=e,null!==e&&(e.material.depthWrite=!1,e.material.transparent=!0)}getBlurPass(){return this.blurPass}get texture(){return this.renderTargetB.texture}getTexture(){return this.texture}get godRaysMaterial(){return this.godRaysPass.fullscreenMaterial}getGodRaysMaterial(){return this.godRaysMaterial}getResolution(){return this.resolution}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get dithering(){return this.godRaysMaterial.dithering}set dithering(e){let t=this.godRaysMaterial;t.dithering=e,t.needsUpdate=!0}get blur(){return this.blurPass.enabled}set blur(e){this.blurPass.enabled=e}get kernelSize(){return this.blurPass.kernelSize}set kernelSize(e){this.blurPass.kernelSize=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}get samples(){return this.godRaysMaterial.samples}set samples(e){this.godRaysMaterial.samples=e}setDepthTexture(e,t=H.BasicDepthPacking){this.copyPass.fullscreenMaterial.depthBuffer=e,this.copyPass.fullscreenMaterial.depthPacking=t}update(e,t,r){let i=this.lightSource,s=i.parent,a=i.matrixAutoUpdate,n=this.renderTargetA,o=this.renderTargetLight;i.material.depthWrite=!0,i.matrixAutoUpdate=!1,i.updateWorldMatrix(!0,!1),null!==s&&(a||e0.copy(i.matrix),i.matrix.copy(i.matrixWorld)),this.lightScene.add(i),this.copyPass.render(e,t),this.renderPassLight.render(e,o),i.material.depthWrite=!1,i.matrixAutoUpdate=a,null!==s&&(a||i.matrix.copy(e0),s.add(i)),e$.setFromMatrixPosition(i.matrixWorld).project(this.camera),this.screenPosition.set(Math.min(Math.max((e$.x+1)*.5,-1),2),Math.min(Math.max((e$.y+1)*.5,-1),2));let l=o;this.blurPass.enabled&&(this.blurPass.render(e,l,n),l=n),this.godRaysPass.render(e,l,this.renderTargetB)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t);let i=r.width,s=r.height;this.renderTargetLight.setSize(e,t),this.renderTargetA.setSize(i,s),this.renderTargetB.setSize(i,s),this.blurPass.resolution.copy(r)}initialize(e,t,r){this.blurPass.initialize(e,t,r),this.renderPassLight.initialize(e,t,r),this.copyPass.initialize(e,t,r),this.godRaysPass.initialize(e,t,r),void 0!==r&&(this.renderTargetA.texture.type=r,this.renderTargetB.texture.type=r,this.renderTargetLight.texture.type=r,null!==e&&e.outputColorSpace===H.SRGBColorSpace&&(this.renderTargetA.texture.colorSpace=H.SRGBColorSpace,this.renderTargetB.texture.colorSpace=H.SRGBColorSpace,this.renderTargetLight.texture.colorSpace=H.SRGBColorSpace))}},e2=class extends eo{constructor({blendFunction:e=24,scale:t=1,lineWidth:r=0}={}){super("GridEffect","uniform vec2 scale;uniform float lineWidth;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){float grid=0.5-max(abs(mod(uv.x*scale.x,1.0)-0.5),abs(mod(uv.y*scale.y,1.0)-0.5));outputColor=vec4(vec3(smoothstep(0.0,lineWidth,grid)),inputColor.a);}",{blendFunction:e,uniforms:new Map([["scale",new H.Uniform(new H.Vector2)],["lineWidth",new H.Uniform(r)]])}),this.resolution=new H.Vector2,this.s=0,this.scale=t,this.l=0,this.lineWidth=r}get scale(){return this.s}set scale(e){this.s=Math.max(e,1e-6),this.setSize(this.resolution.width,this.resolution.height)}getScale(){return this.scale}setScale(e){this.scale=e}get lineWidth(){return this.l}set lineWidth(e){this.l=e,this.setSize(this.resolution.width,this.resolution.height)}getLineWidth(){return this.lineWidth}setLineWidth(e){this.lineWidth=e}setSize(e,t){this.resolution.set(e,t);let r=e/t,i=this.scale*(.125*t);this.uniforms.get("scale").value.set(r*i,i),this.uniforms.get("lineWidth").value=i/t+this.lineWidth}},e4=class extends eo{constructor({blendFunction:e=30,hue:t=0,saturation:r=0}={}){super("HueSaturationEffect","uniform vec3 hue;uniform float saturation;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 color=vec3(dot(inputColor.rgb,hue.xyz),dot(inputColor.rgb,hue.zxy),dot(inputColor.rgb,hue.yzx));float average=(color.r+color.g+color.b)/3.0;vec3 diff=average-color;if(saturation>0.0){color+=diff*(1.0-1.0/(1.001-saturation));}else{color+=diff*-saturation;}outputColor=vec4(min(color,1.0),inputColor.a);}",{blendFunction:e,uniforms:new Map([["hue",new H.Uniform(new H.Vector3)],["saturation",new H.Uniform(r)]])}),this.hue=t}get saturation(){return this.uniforms.get("saturation").value}set saturation(e){this.uniforms.get("saturation").value=e}getSaturation(){return this.saturation}setSaturation(e){this.saturation=e}get hue(){return Math.acos((3*this.uniforms.get("hue").value.x-1)/2)}set hue(e){let t=Math.sin(e),r=Math.cos(e);this.uniforms.get("hue").value.set((2*r+1)/3,(-Math.sqrt(3)*t-r+1)/3,(Math.sqrt(3)*t-r+1)/3)}getHue(){return this.hue}setHue(e){this.hue=e}};function e3(e,t,r){let i=document.createElement("canvas"),s=i.getContext("2d");if(i.width=e,i.height=t,r instanceof Image)s.drawImage(r,0,0);else{let i=s.createImageData(e,t);i.data.set(r),s.putImageData(i,0,0)}return i}var e5=class e{constructor(e=0,t=0,r=null){this.width=e,this.height=t,this.data=r}toCanvas(){return"u"{let n=URL.createObjectURL(new Blob(['(()=>{var O={SCALE_UP:"lut.scaleup"};var _=[new Float32Array(3),new Float32Array(3)],n=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],Z=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];function d(a,t,r,m){let i=r[0]-t[0],e=r[1]-t[1],y=r[2]-t[2],h=a[0]-t[0],A=a[1]-t[1],w=a[2]-t[2],c=e*w-y*A,l=y*h-i*w,x=i*A-e*h,u=Math.sqrt(c*c+l*l+x*x),b=u*.5,s=c/u,F=l/u,f=x/u,p=-(a[0]*s+a[1]*F+a[2]*f),M=m[0]*s+m[1]*F+m[2]*f;return Math.abs(M+p)*b/3}function V(a,t,r,m,i,e){let y=(r+m*t+i*t*t)*4;e[0]=a[y+0],e[1]=a[y+1],e[2]=a[y+2]}function k(a,t,r,m,i,e){let y=r*(t-1),h=m*(t-1),A=i*(t-1),w=Math.floor(y),c=Math.floor(h),l=Math.floor(A),x=Math.ceil(y),u=Math.ceil(h),b=Math.ceil(A),s=y-w,F=h-c,f=A-l;if(w===y&&c===h&&l===A)V(a,t,y,h,A,e);else{let p;s>=F&&F>=f?p=Z[0]:s>=f&&f>=F?p=Z[1]:f>=s&&s>=F?p=Z[2]:F>=s&&s>=f?p=Z[3]:F>=f&&f>=s?p=Z[4]:f>=F&&F>=s&&(p=Z[5]);let[M,g,X,Y]=p,P=_[0];P[0]=s,P[1]=F,P[2]=f;let o=_[1],L=x-w,S=u-c,U=b-l;o[0]=L*M[0]+w,o[1]=S*M[1]+c,o[2]=U*M[2]+l,V(a,t,o[0],o[1],o[2],n[0]),o[0]=L*g[0]+w,o[1]=S*g[1]+c,o[2]=U*g[2]+l,V(a,t,o[0],o[1],o[2],n[1]),o[0]=L*X[0]+w,o[1]=S*X[1]+c,o[2]=U*X[2]+l,V(a,t,o[0],o[1],o[2],n[2]),o[0]=L*Y[0]+w,o[1]=S*Y[1]+c,o[2]=U*Y[2]+l,V(a,t,o[0],o[1],o[2],n[3]);let T=d(g,X,Y,P)*6,q=d(M,X,Y,P)*6,C=d(M,g,Y,P)*6,E=d(M,g,X,P)*6;n[0][0]*=T,n[0][1]*=T,n[0][2]*=T,n[1][0]*=q,n[1][1]*=q,n[1][2]*=q,n[2][0]*=C,n[2][1]*=C,n[2][2]*=C,n[3][0]*=E,n[3][1]*=E,n[3][2]*=E,e[0]=n[0][0]+n[1][0]+n[2][0]+n[3][0],e[1]=n[0][1]+n[1][1]+n[2][1]+n[3][1],e[2]=n[0][2]+n[1][2]+n[2][2]+n[3][2]}}var v=class{static expand(t,r){let m=Math.cbrt(t.length/4),i=new Float32Array(3),e=new t.constructor(r**3*4),y=t instanceof Uint8Array?255:1,h=r**2,A=1/(r-1);for(let w=0;w{let t=a.data,r=t.data;t.operation===O.SCALE_UP&&(r=v.expand(r,t.size)),postMessage(r,[r.buffer]),close()});})();\n'],{type:"text/javascript"})),o=new Worker(n);o.addEventListener("error",e=>a(e.error)),o.addEventListener("message",r=>{let i=new e(r.data,t);this.colorSpace=i.colorSpace,i.type=this.type,i.name=this.name,URL.revokeObjectURL(n),s(i)});let l=r?[i.data.buffer]:[];o.postMessage({operation:"lut.scaleup",data:i.data,size:t},l)})}applyLUT(e){let t=this.image,r=e.image,i=Math.min(t.width,t.height,t.depth);if(i!==Math.min(r.width,r.height,r.depth))console.error("Size mismatch");else if(e.type!==H.FloatType||this.type!==H.FloatType)console.error("Both LUTs must be FloatType textures");else if(e.format!==H.RGBAFormat||this.format!==H.RGBAFormat)console.error("Both LUTs must be RGBA textures");else{let e=t.data,s=r.data,a=i**2,n=i-1;for(let t=0,r=i**3;ta){r=new Uint8Array(e.length);for(let t=0;t=f.g){if(f.g>f.b){frac=f.rgb;v2=vec3(v4.x,v1.y,v1.z);v3=vec3(v4.x,v4.y,v1.z);}else if(f.r>=f.b){frac=f.rbg;v2=vec3(v4.x,v1.y,v1.z);v3=vec3(v4.x,v1.y,v4.z);}else{frac=f.brg;v2=vec3(v1.x,v1.y,v4.z);v3=vec3(v4.x,v1.y,v4.z);}}else{if(f.b>f.g){frac=f.bgr;v2=vec3(v1.x,v1.y,v4.z);v3=vec3(v1.x,v4.y,v4.z);}else if(f.r>=f.b){frac=f.grb;v2=vec3(v1.x,v4.y,v1.z);v3=vec3(v4.x,v4.y,v1.z);}else{frac=f.gbr;v2=vec3(v1.x,v4.y,v1.z);v3=vec3(v1.x,v4.y,v4.z);}}vec4 n1=texture(lut,v1);vec4 n2=texture(lut,v2);vec4 n3=texture(lut,v3);vec4 n4=texture(lut,v4);vec4 weights=vec4(1.0-frac.x,frac.x-frac.y,frac.y-frac.z,frac.z);vec4 result=weights*mat4(vec4(n1.r,n2.r,n3.r,n4.r),vec4(n1.g,n2.g,n3.g,n4.g),vec4(n1.b,n2.b,n3.b,n4.b),vec4(1.0));return vec4(result.rgb,1.0); +#else +return texture(lut,rgb); +#endif +} +#else +#ifdef LUT_PRECISION_HIGH +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D lut; +#else +uniform mediump sampler2D lut; +#endif +#else +uniform lowp sampler2D lut; +#endif +vec4 applyLUT(const in vec3 rgb){float slice=rgb.b*LUT_SIZE;float slice0=floor(slice);float interp=slice-slice0;float centeredInterp=interp-0.5;float slice1=slice0+sign(centeredInterp); +#ifdef LUT_STRIP_HORIZONTAL +float xOffset=clamp(rgb.r*LUT_TEXEL_HEIGHT,LUT_TEXEL_WIDTH*0.5,LUT_TEXEL_HEIGHT-LUT_TEXEL_WIDTH*0.5);vec2 uv0=vec2(slice0*LUT_TEXEL_HEIGHT+xOffset,rgb.g);vec2 uv1=vec2(slice1*LUT_TEXEL_HEIGHT+xOffset,rgb.g); +#else +float yOffset=clamp(rgb.g*LUT_TEXEL_WIDTH,LUT_TEXEL_HEIGHT*0.5,LUT_TEXEL_WIDTH-LUT_TEXEL_HEIGHT*0.5);vec2 uv0=vec2(rgb.r,slice0*LUT_TEXEL_WIDTH+yOffset);vec2 uv1=vec2(rgb.r,slice1*LUT_TEXEL_WIDTH+yOffset); +#endif +vec4 sample0=texture2D(lut,uv0);vec4 sample1=texture2D(lut,uv1);return mix(sample0,sample1,abs(centeredInterp));} +#endif +void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 c=inputColor.rgb; +#ifdef CUSTOM_INPUT_DOMAIN +if(c.r>=domainMin.r&&c.g>=domainMin.g&&c.b>=domainMin.b&&c.r<=domainMax.r&&c.g<=domainMax.g&&c.b<=domainMax.b){c=applyLUT(scale*c+offset).rgb;}else{c=inputColor.rgb;} +#else +#if !defined(LUT_3D) || defined(TETRAHEDRAL_INTERPOLATION) +c=clamp(c,0.0,1.0); +#endif +c=applyLUT(scale*c+offset).rgb; +#endif +outputColor=vec4(c,inputColor.a);}`,e7=class extends eo{constructor(e,{blendFunction:t=30,tetrahedralInterpolation:r=!1,inputColorSpace:i=H.SRGBColorSpace}={}){super("LUT3DEffect",e9,{blendFunction:t,uniforms:new Map([["lut",new H.Uniform(null)],["scale",new H.Uniform(new H.Vector3)],["offset",new H.Uniform(new H.Vector3)],["domainMin",new H.Uniform(null)],["domainMax",new H.Uniform(null)]])}),this.tetrahedralInterpolation=r,this.inputColorSpace=i,this.lut=e}get lut(){return this.uniforms.get("lut").value}set lut(e){let t=this.defines,r=this.uniforms;if(this.lut!==e&&(r.get("lut").value=e,null!==e)){let i=e.image,s=this.tetrahedralInterpolation;if(t.clear(),t.set("LUT_SIZE",Math.min(i.width,i.height).toFixed(16)),t.set("LUT_TEXEL_WIDTH",(1/i.width).toFixed(16)),t.set("LUT_TEXEL_HEIGHT",(1/i.height).toFixed(16)),r.get("domainMin").value=null,r.get("domainMax").value=null,(e.type===H.FloatType||e.type===H.HalfFloatType)&&t.set("LUT_PRECISION_HIGH","1"),i.width>i.height?t.set("LUT_STRIP_HORIZONTAL","1"):e instanceof H.Data3DTexture&&t.set("LUT_3D","1"),e instanceof e6){let i=e.domainMin,s=e.domainMax;(0!==i.x||0!==i.y||0!==i.z||1!==s.x||1!==s.y||1!==s.z)&&(t.set("CUSTOM_INPUT_DOMAIN","1"),r.get("domainMin").value=i.clone(),r.get("domainMax").value=s.clone())}this.tetrahedralInterpolation=s}}getLUT(){return this.lut}setLUT(e){this.lut=e}updateScaleOffset(){let e=this.lut;if(null!==e){let t=Math.min(e.image.width,e.image.height),r=this.uniforms.get("scale").value,i=this.uniforms.get("offset").value;if(this.tetrahedralInterpolation&&e instanceof H.Data3DTexture)if(this.defines.has("CUSTOM_INPUT_DOMAIN")){let s=e.domainMax.clone().sub(e.domainMin);r.setScalar(t-1).divide(s),i.copy(e.domainMin).negate().multiply(r)}else r.setScalar(t-1),i.setScalar(0);else if(this.defines.has("CUSTOM_INPUT_DOMAIN")){let s=e.domainMax.clone().sub(e.domainMin).multiplyScalar(t);r.setScalar(t-1).divide(s),i.copy(e.domainMin).negate().multiply(r).addScalar(1/(2*t))}else r.setScalar((t-1)/t),i.setScalar(1/(2*t))}}configureTetrahedralInterpolation(){let e=this.lut;null!==e&&(e.minFilter=H.LinearFilter,e.magFilter=H.LinearFilter,this.tetrahedralInterpolation&&(e instanceof H.Data3DTexture?(e.minFilter=H.NearestFilter,e.magFilter=H.NearestFilter):console.warn("Tetrahedral interpolation requires a 3D texture")),e.needsUpdate=!0)}get tetrahedralInterpolation(){return this.defines.has("TETRAHEDRAL_INTERPOLATION")}set tetrahedralInterpolation(e){e?this.defines.set("TETRAHEDRAL_INTERPOLATION","1"):this.defines.delete("TETRAHEDRAL_INTERPOLATION"),this.configureTetrahedralInterpolation(),this.updateScaleOffset(),this.setChanged()}setTetrahedralInterpolationEnabled(e){this.tetrahedralInterpolation=e}},te=`void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 noise=vec3(rand(uv*(1.0+time))); +#ifdef PREMULTIPLY +outputColor=vec4(min(inputColor.rgb*noise,vec3(1.0)),inputColor.a); +#else +outputColor=vec4(noise,inputColor.a); +#endif +}`,tt=class extends eo{constructor({blendFunction:e=28,premultiply:t=!1}={}){super("NoiseEffect",te,{blendFunction:e}),this.premultiply=t}get premultiply(){return this.defines.has("PREMULTIPLY")}set premultiply(e){this.premultiply!==e&&(e?this.defines.set("PREMULTIPLY","1"):this.defines.delete("PREMULTIPLY"),this.setChanged())}isPremultiplied(){return this.premultiply}setPremultiplied(e){this.premultiply=e}},tr=`#include +#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +uniform float cameraNear;uniform float cameraFar;centroid varying float vViewZ;centroid varying vec4 vProjTexCoord;void main(){ +#include +vec2 projTexCoord=(vProjTexCoord.xy/vProjTexCoord.w)*0.5+0.5; +#if DEPTH_PACKING == 3201 +float depth=unpackRGBAToDepth(texture2D(depthBuffer,projTexCoord)); +#else +float depth=texture2D(depthBuffer,projTexCoord).r; +#endif +#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) +float d=pow(2.0,depth*log2(cameraFar+1.0))-1.0;float a=cameraFar/(cameraFar-cameraNear);float b=cameraFar*cameraNear/(cameraNear-cameraFar);depth=a+b/d; +#elif defined(USE_REVERSED_DEPTH_BUFFER) +depth=1.0-depth; +#endif +#ifdef PERSPECTIVE_CAMERA +float viewZ=perspectiveDepthToViewZ(depth,cameraNear,cameraFar); +#else +float viewZ=orthographicDepthToViewZ(depth,cameraNear,cameraFar); +#endif +float depthTest=(-vViewZ>-viewZ)?1.0:0.0;gl_FragColor.rg=vec2(0.0,depthTest);}`,ti=`#include +#include +#include +#include +varying float vViewZ;varying vec4 vProjTexCoord;void main(){ +#include +#include +#include +#include +#include +vViewZ=mvPosition.z;vProjTexCoord=gl_Position; +#include +}`,ts=class extends H.ShaderMaterial{constructor(e=null,t){super({name:"DepthComparisonMaterial",defines:{DEPTH_PACKING:"0"},uniforms:{depthBuffer:new H.Uniform(null),cameraNear:new H.Uniform(.3),cameraFar:new H.Uniform(1e3)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:tr,vertexShader:ti}),this.depthBuffer=e,this.depthPacking=H.RGBADepthPacking,this.copyCameraSettings(t)}set depthBuffer(e){this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=H.RGBADepthPacking){this.depthBuffer=e,this.depthPacking=t}adoptCameraSettings(e){this.copyCameraSettings(e)}copyCameraSettings(e){e&&(this.uniforms.cameraNear.value=e.near,this.uniforms.cameraFar.value=e.far,e instanceof H.PerspectiveCamera?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}},ta=class extends H.ShaderMaterial{constructor(e=new H.Vector2){super({name:"OutlineMaterial",uniforms:{inputBuffer:new H.Uniform(null),texelSize:new H.Uniform(new H.Vector2)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:"uniform lowp sampler2D inputBuffer;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 c0=texture2D(inputBuffer,vUv0).rg;vec2 c1=texture2D(inputBuffer,vUv1).rg;vec2 c2=texture2D(inputBuffer,vUv2).rg;vec2 c3=texture2D(inputBuffer,vUv3).rg;float d0=(c0.x-c1.x)*0.5;float d1=(c2.x-c3.x)*0.5;float d=length(vec2(d0,d1));float a0=min(c0.y,c1.y);float a1=min(c2.y,c3.y);float visibilityFactor=min(a0,a1);gl_FragColor.rg=(1.0-visibilityFactor>0.001)?vec2(d,0.0):vec2(0.0,d);}",vertexShader:"uniform vec2 texelSize;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 uv=position.xy*0.5+0.5;vUv0=vec2(uv.x+texelSize.x,uv.y);vUv1=vec2(uv.x-texelSize.x,uv.y);vUv2=vec2(uv.x,uv.y+texelSize.y);vUv3=vec2(uv.x,uv.y-texelSize.y);gl_Position=vec4(position.xy,1.0,1.0);}"}),this.uniforms.texelSize.value.set(e.x,e.y),this.uniforms.maskTexture=this.uniforms.inputBuffer}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t)}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},tn=class extends k{constructor(e,t,{renderTarget:r,resolutionScale:i=1,width:s=er.AUTO_SIZE,height:a=er.AUTO_SIZE,resolutionX:n=s,resolutionY:o=a}={}){super("DepthPass"),this.needsSwap=!1,this.renderPass=new eq(e,t,new H.MeshDepthMaterial({depthPacking:H.RGBADepthPacking}));const l=this.renderPass;l.skipShadowMapUpdate=!0,l.ignoreBackground=!0,this.renderTarget=r,void 0===this.renderTarget&&(this.renderTarget=new H.WebGLRenderTarget(1,1,{minFilter:H.NearestFilter,magFilter:H.NearestFilter}),this.renderTarget.texture.name="DepthPass.Target");const u=this.resolution=new er(this,n,o,i);u.addEventListener("change",e=>this.setSize(u.baseWidth,u.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,i,s){let a=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,a)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}initialize(e,t,r){let i=0xffffff*!e.capabilities.reversedDepthBuffer,s=this.renderPass.clearPass;s.overrideClearColor=new H.Color(i),s.overrideClearAlpha=1}},to=`uniform lowp sampler2D edgeTexture;uniform lowp sampler2D maskTexture;uniform vec3 visibleEdgeColor;uniform vec3 hiddenEdgeColor;uniform float pulse;uniform float edgeStrength; +#ifdef USE_PATTERN +uniform lowp sampler2D patternTexture;varying vec2 vUvPattern; +#endif +void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec2 edge=texture2D(edgeTexture,uv).rg;vec2 mask=texture2D(maskTexture,uv).rg; +#ifndef X_RAY +edge.y=0.0; +#endif +edge*=(edgeStrength*mask.x*pulse);vec3 color=edge.x*visibleEdgeColor+edge.y*hiddenEdgeColor;float visibilityFactor=0.0; +#ifdef USE_PATTERN +vec4 patternColor=texture2D(patternTexture,vUvPattern); +#ifdef X_RAY +float hiddenFactor=0.5; +#else +float hiddenFactor=0.0; +#endif +visibilityFactor=(1.0-mask.y>0.0)?1.0:hiddenFactor;visibilityFactor*=(1.0-mask.x)*patternColor.a;color+=visibilityFactor*patternColor.rgb; +#endif +float alpha=max(max(edge.x,edge.y),visibilityFactor); +#ifdef ALPHA +outputColor=vec4(color,alpha); +#else +outputColor=vec4(color,max(alpha,inputColor.a)); +#endif +}`,tl=class extends eo{constructor(e,t,{blendFunction:r=28,patternTexture:i=null,patternScale:s=1,edgeStrength:a=1,pulseSpeed:n=0,visibleEdgeColor:o=0xffffff,hiddenEdgeColor:l=2230538,kernelSize:u=el.VERY_SMALL,blur:c=!1,xRay:h=!0,multisampling:d=0,resolutionScale:f=.5,width:g=er.AUTO_SIZE,height:p=er.AUTO_SIZE,resolutionX:v=g,resolutionY:m=p}={}){super("OutlineEffect",to,{uniforms:new Map([["maskTexture",new H.Uniform(null)],["edgeTexture",new H.Uniform(null)],["edgeStrength",new H.Uniform(a)],["visibleEdgeColor",new H.Uniform(new H.Color(o))],["hiddenEdgeColor",new H.Uniform(new H.Color(l))],["pulse",new H.Uniform(1)],["patternScale",new H.Uniform(s)],["patternTexture",new H.Uniform(null)]])}),this.blendMode.addEventListener("change",e=>{1===this.blendMode.blendFunction?this.defines.set("ALPHA","1"):this.defines.delete("ALPHA"),this.setChanged()}),this.blendMode.blendFunction=r,this.patternTexture=i,this.xRay=h,this.scene=e,this.camera=t,this.renderTargetMask=new H.WebGLRenderTarget(1,1),this.renderTargetMask.samples=d,this.renderTargetMask.texture.name="Outline.Mask",this.uniforms.get("maskTexture").value=this.renderTargetMask.texture,this.renderTargetOutline=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetOutline.texture.name="Outline.Edges",this.uniforms.get("edgeTexture").value=this.renderTargetOutline.texture,this.clearPass=new J,this.clearPass.overrideClearColor=new H.Color(0),this.clearPass.overrideClearAlpha=1,this.depthPass=new tn(e,t),this.maskPass=new eq(e,t,new ts(this.depthPass.texture,t));const A=this.maskPass.clearPass;A.overrideClearColor=new H.Color(0xffffff),A.overrideClearAlpha=1,this.blurPass=new ed({resolutionScale:f,resolutionX:v,resolutionY:m,kernelSize:u}),this.blurPass.enabled=c;const x=this.blurPass.resolution;x.addEventListener("change",e=>this.setSize(x.baseWidth,x.baseHeight)),this.outlinePass=new eG(new ta),this.outlinePass.fullscreenMaterial.inputBuffer=this.renderTargetMask.texture,this.time=0,this.forceUpdate=!0,this.selection=new es,this.pulseSpeed=n}set mainScene(e){this.scene=e,this.depthPass.mainScene=e,this.maskPass.mainScene=e}set mainCamera(e){this.camera=e,this.depthPass.mainCamera=e,this.maskPass.mainCamera=e,this.maskPass.overrideMaterial.copyCameraSettings(e)}get resolution(){return this.blurPass.resolution}getResolution(){return this.blurPass.getResolution()}get multisampling(){return this.renderTargetMask.samples}set multisampling(e){this.renderTargetMask.samples=e,this.renderTargetMask.dispose()}get patternScale(){return this.uniforms.get("patternScale").value}set patternScale(e){this.uniforms.get("patternScale").value=e}get edgeStrength(){return this.uniforms.get("edgeStrength").value}set edgeStrength(e){this.uniforms.get("edgeStrength").value=e}get visibleEdgeColor(){return this.uniforms.get("visibleEdgeColor").value}set visibleEdgeColor(e){this.uniforms.get("visibleEdgeColor").value=e}get hiddenEdgeColor(){return this.uniforms.get("hiddenEdgeColor").value}set hiddenEdgeColor(e){this.uniforms.get("hiddenEdgeColor").value=e}getBlurPass(){return this.blurPass}getSelection(){return this.selection}getPulseSpeed(){return this.pulseSpeed}setPulseSpeed(e){this.pulseSpeed=e}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get selectionLayer(){return this.selection.layer}set selectionLayer(e){this.selection.layer=e}get dithering(){return this.blurPass.dithering}set dithering(e){this.blurPass.dithering=e}get kernelSize(){return this.blurPass.kernelSize}set kernelSize(e){this.blurPass.kernelSize=e}get blur(){return this.blurPass.enabled}set blur(e){this.blurPass.enabled=e}get xRay(){return this.defines.has("X_RAY")}set xRay(e){this.xRay!==e&&(e?this.defines.set("X_RAY","1"):this.defines.delete("X_RAY"),this.setChanged())}isXRayEnabled(){return this.xRay}setXRayEnabled(e){this.xRay=e}get patternTexture(){return this.uniforms.get("patternTexture").value}set patternTexture(e){null!==e?(e.wrapS=e.wrapT=H.RepeatWrapping,this.defines.set("USE_PATTERN","1"),this.setVertexShader("uniform float patternScale;varying vec2 vUvPattern;void mainSupport(const in vec2 uv){vUvPattern=uv*vec2(aspect,1.0)*patternScale;}")):(this.defines.delete("USE_PATTERN"),this.setVertexShader(null)),this.uniforms.get("patternTexture").value=e,this.setChanged()}setPatternTexture(e){this.patternTexture=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}setSelection(e){return this.selection.set(e),this}clearSelection(){return this.selection.clear(),this}selectObject(e){return this.selection.add(e),this}deselectObject(e){return this.selection.delete(e),this}update(e,t,r){let i=this.scene,s=this.camera,a=this.selection,n=this.uniforms.get("pulse"),o=i.background,l=s.layers.mask;(this.forceUpdate||a.size>0)&&(i.background=null,n.value=1,this.pulseSpeed>0&&(n.value=.375*Math.cos(this.time*this.pulseSpeed*10)+.625),this.time+=r,a.setVisible(!1),this.depthPass.render(e),a.setVisible(!0),s.layers.set(a.layer),this.maskPass.render(e,this.renderTargetMask),s.layers.mask=l,i.background=o,this.outlinePass.render(e,null,this.renderTargetOutline),this.blurPass.enabled&&this.blurPass.render(e,this.renderTargetOutline,this.renderTargetOutline)),this.forceUpdate=a.size>0}setSize(e,t){this.blurPass.setSize(e,t),this.renderTargetMask.setSize(e,t);let r=this.resolution;r.setBaseSize(e,t);let i=r.width,s=r.height;this.depthPass.setSize(i,s),this.renderTargetOutline.setSize(i,s),this.outlinePass.fullscreenMaterial.setSize(i,s)}initialize(e,t,r){this.blurPass.initialize(e,t,H.UnsignedByteType),void 0!==r&&(this.depthPass.initialize(e,t,r),this.maskPass.initialize(e,t,r),this.outlinePass.initialize(e,t,r))}},tu=class extends eo{constructor(e=30){super("PixelationEffect","uniform bool active;uniform vec4 d;void mainUv(inout vec2 uv){if(active){uv=d.xy*(floor(uv*d.zw)+0.5);}}",{uniforms:new Map([["active",new H.Uniform(!1)],["d",new H.Uniform(new H.Vector4)]])}),this.resolution=new H.Vector2,this._granularity=0,this.granularity=e}get granularity(){return this._granularity}set granularity(e){let t=Math.floor(e);t%2>0&&(t+=1),this._granularity=t,this.uniforms.get("active").value=t>0,this.setSize(this.resolution.width,this.resolution.height)}getGranularity(){return this.granularity}setGranularity(e){this.granularity=e}setSize(e,t){let r=this.resolution;r.set(e,t);let i=this.granularity,s=i/r.x,a=i/r.y;this.uniforms.get("d").value.set(s,a,1/s,1/a)}},tc=`uniform float count; +#ifdef SCROLL +uniform float scrollSpeed; +#endif +void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){float y=uv.y; +#ifdef SCROLL +y+=time*scrollSpeed; +#endif +vec2 sl=vec2(sin(y*count),cos(y*count));outputColor=vec4(sl.xyx,inputColor.a);}`,th=class extends eo{constructor({blendFunction:e=24,density:t=1.25,scrollSpeed:r=0}={}){super("ScanlineEffect",tc,{blendFunction:e,uniforms:new Map([["count",new H.Uniform(0)],["scrollSpeed",new H.Uniform(0)]])}),this.resolution=new H.Vector2,this.d=t,this.scrollSpeed=r}get density(){return this.d}set density(e){this.d=e,this.setSize(this.resolution.width,this.resolution.height)}getDensity(){return this.density}setDensity(e){this.density=e}get scrollSpeed(){return this.uniforms.get("scrollSpeed").value}set scrollSpeed(e){this.uniforms.get("scrollSpeed").value=e,0===e?this.defines.delete("SCROLL")&&this.setChanged():this.defines.has("SCROLL")||(this.defines.set("SCROLL","1"),this.setChanged())}setSize(e,t){this.resolution.set(e,t),this.uniforms.get("count").value=Math.round(t*this.density)}},td=.5*Math.PI,tf=new H.Vector3,tg=new H.Vector3,tp=class extends eo{constructor(e,t=new H.Vector3,{speed:r=2,maxRadius:i=1,waveSize:s=.2,amplitude:a=.05}={}){super("ShockWaveEffect","uniform bool active;uniform vec2 center;uniform float waveSize;uniform float radius;uniform float maxRadius;uniform float amplitude;varying float vSize;void mainUv(inout vec2 uv){if(active){vec2 aspectCorrection=vec2(aspect,1.0);vec2 difference=uv*aspectCorrection-center*aspectCorrection;float distance=sqrt(dot(difference,difference))*vSize;if(distance>radius){if(distancetd,n.value&&(a.get("cameraDistance").value=s.position.distanceTo(i),tf.copy(i).project(s),this.screenPosition.set((tf.x+1)*.5,(tf.y+1)*.5)),this.time+=r*this.speed;let t=this.time-e;a.get("radius").value=t,t>=(a.get("maxRadius").value+e)*2&&(this.active=!1,n.value=!1)}}},tv=`#include +#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer0;uniform highp sampler2D depthBuffer1; +#else +uniform mediump sampler2D depthBuffer0;uniform mediump sampler2D depthBuffer1; +#endif +uniform sampler2D inputBuffer;uniform vec2 cameraNearFar;float getViewZ(const in float depth){ +#ifdef PERSPECTIVE_CAMERA +return perspectiveDepthToViewZ(depth,cameraNearFar.x,cameraNearFar.y); +#else +return orthographicDepthToViewZ(depth,cameraNearFar.x,cameraNearFar.y); +#endif +}varying vec2 vUv;void main(){vec2 depth; +#if DEPTH_PACKING_0 == 3201 +depth.x=unpackRGBAToDepth(texture2D(depthBuffer0,vUv)); +#else +depth.x=texture2D(depthBuffer0,vUv).r; +#endif +#if DEPTH_PACKING_1 == 3201 +depth.y=unpackRGBAToDepth(texture2D(depthBuffer1,vUv)); +#else +depth.y=texture2D(depthBuffer1,vUv).r; +#endif +#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) +float a=cameraNearFar.y/(cameraNearFar.y-cameraNearFar.x);float b=cameraNearFar.y*cameraNearFar.x/(cameraNearFar.x-cameraNearFar.y);float c=log2(cameraNearFar.y+1.0);float d=pow(2.0,depth.x*c)-1.0;depth.x=a+b/d;d=pow(2.0,depth.y*c)-1.0;depth.y=a+b/d; +#elif defined(USE_REVERSED_DEPTH_BUFFER) +depth.x=1.0-depth.x;depth.y=1.0-depth.y; +#endif +bool isMaxDepth=(depth.x==1.0); +#ifdef PERSPECTIVE_CAMERA +depth.x=viewZToOrthographicDepth(getViewZ(depth.x),cameraNearFar.x,cameraNearFar.y);depth.y=viewZToOrthographicDepth(getViewZ(depth.y),cameraNearFar.x,cameraNearFar.y); +#endif +#if DEPTH_TEST_STRATEGY == 0 +bool keep=depthTest(depth.x,depth.y); +#elif DEPTH_TEST_STRATEGY == 1 +bool keep=isMaxDepth||depthTest(depth.x,depth.y); +#else +bool keep=!isMaxDepth&&depthTest(depth.x,depth.y); +#endif +if(keep){gl_FragColor=texture2D(inputBuffer,vUv);}else{discard;}}`,tm=class extends H.ShaderMaterial{constructor(){super({name:"DepthMaskMaterial",defines:{DEPTH_EPSILON:"0.0001",DEPTH_PACKING_0:"0",DEPTH_PACKING_1:"0",DEPTH_TEST_STRATEGY:1},uniforms:{inputBuffer:new H.Uniform(null),depthBuffer0:new H.Uniform(null),depthBuffer1:new H.Uniform(null),cameraNearFar:new H.Uniform(new H.Vector2(1,1))},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:tv,vertexShader:Y}),this.depthMode=H.LessDepth}set depthBuffer0(e){this.uniforms.depthBuffer0.value=e}set depthPacking0(e){this.defines.DEPTH_PACKING_0=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer0(e,t=H.BasicDepthPacking){this.depthBuffer0=e,this.depthPacking0=t}set depthBuffer1(e){this.uniforms.depthBuffer1.value=e}set depthPacking1(e){this.defines.DEPTH_PACKING_1=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer1(e,t=H.BasicDepthPacking){this.depthBuffer1=e,this.depthPacking1=t}get maxDepthStrategy(){return Number(this.defines.DEPTH_TEST_STRATEGY)}set maxDepthStrategy(e){this.defines.DEPTH_TEST_STRATEGY=e.toFixed(0),this.needsUpdate=!0}get keepFar(){return this.maxDepthStrategy}set keepFar(e){this.maxDepthStrategy=e?1:2}getMaxDepthStrategy(){return this.maxDepthStrategy}setMaxDepthStrategy(e){this.maxDepthStrategy=e}get epsilon(){return Number(this.defines.DEPTH_EPSILON)}set epsilon(e){this.defines.DEPTH_EPSILON=e.toFixed(16),this.needsUpdate=!0}getEpsilon(){return this.epsilon}setEpsilon(e){this.epsilon=e}get depthMode(){return Number(this.defines.DEPTH_MODE)}set depthMode(e){let t;switch(e){case H.NeverDepth:t="false";break;case H.AlwaysDepth:t="true";break;case H.EqualDepth:t="abs(d1 - d0) <= DEPTH_EPSILON";break;case H.NotEqualDepth:t="abs(d1 - d0) > DEPTH_EPSILON";break;case H.LessDepth:t="d0 > d1";break;case H.LessEqualDepth:t="d0 >= d1";break;case H.GreaterEqualDepth:t="d0 <= d1";break;case H.GreaterDepth:default:t="d0 < d1"}this.defines.DEPTH_MODE=e.toFixed(0),this.defines["depthTest(d0, d1)"]=t,this.needsUpdate=!0}getDepthMode(){return this.depthMode}setDepthMode(e){this.depthMode=e}adoptCameraSettings(e){this.copyCameraSettings(e)}copyCameraSettings(e){e&&(this.uniforms.cameraNearFar.value.set(e.near,e.far),e instanceof H.PerspectiveCamera?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}},tA=class extends eE{constructor(e,t,r){super(r),this.setAttributes(1|this.getAttributes()),this.camera=t,this.depthPass=new tn(e,t),this.clearPass=new J(!0,!1,!1),this.clearPass.overrideClearColor=new H.Color(0),this.depthMaskPass=new eG(new tm);const i=this.depthMaskMaterial;i.copyCameraSettings(t),i.depthBuffer1=this.depthPass.texture,i.depthPacking1=H.RGBADepthPacking,i.depthMode=H.EqualDepth,this.renderTargetMasked=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetMasked.texture.name="Bloom.Masked",this.selection=new es,this._inverted=!1,this._ignoreBackground=!1}set mainScene(e){this.depthPass.mainScene=e}set mainCamera(e){this.camera=e,this.depthPass.mainCamera=e,this.depthMaskMaterial.copyCameraSettings(e)}getSelection(){return this.selection}get depthMaskMaterial(){return this.depthMaskPass.fullscreenMaterial}get inverted(){return this._inverted}set inverted(e){this._inverted=e,this.depthMaskMaterial.depthMode=e?H.NotEqualDepth:H.EqualDepth}isInverted(){return this.inverted}setInverted(e){this.inverted=e}get ignoreBackground(){return this._ignoreBackground}set ignoreBackground(e){this._ignoreBackground=e,this.depthMaskMaterial.maxDepthStrategy=e?2:1}isBackgroundDisabled(){return this.ignoreBackground}setBackgroundDisabled(e){this.ignoreBackground=e}setDepthTexture(e,t=H.BasicDepthPacking){this.depthMaskMaterial.depthBuffer0=e,this.depthMaskMaterial.depthPacking0=t}update(e,t,r){let i=this.camera,s=this.selection,a=this.inverted,n=t;if(this.ignoreBackground||!a||s.size>0){let r=i.layers.mask;i.layers.set(s.layer),this.depthPass.render(e),i.layers.mask=r,n=this.renderTargetMasked,this.clearPass.render(e,n),this.depthMaskPass.render(e,t,n)}super.update(e,n,r)}setSize(e,t){super.setSize(e,t),this.renderTargetMasked.setSize(e,t),this.depthPass.setSize(e,t)}initialize(e,t,r){super.initialize(e,t,r),this.clearPass.initialize(e,t,r),this.depthPass.initialize(e,t,r),this.depthMaskPass.initialize(e,t,r),null!==e&&e.capabilities.logarithmicDepthBuffer&&(this.depthMaskPass.fullscreenMaterial.defines.LOG_DEPTH="1"),void 0!==r&&(this.renderTargetMasked.texture.type=r,null!==e&&e.outputColorSpace===H.SRGBColorSpace&&(this.renderTargetMasked.texture.colorSpace=H.SRGBColorSpace))}},tx=class extends eo{constructor({blendFunction:e,intensity:t=1}={}){super("SepiaEffect","uniform vec3 weightsR;uniform vec3 weightsG;uniform vec3 weightsB;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec3 color=vec3(dot(inputColor.rgb,weightsR),dot(inputColor.rgb,weightsG),dot(inputColor.rgb,weightsB));outputColor=vec4(color,inputColor.a);}",{blendFunction:e,uniforms:new Map([["weightsR",new H.Uniform(new H.Vector3(.393,.769,.189))],["weightsG",new H.Uniform(new H.Vector3(.349,.686,.168))],["weightsB",new H.Uniform(new H.Vector3(.272,.534,.131))]])})}get intensity(){return this.blendMode.opacity.value}set intensity(e){this.blendMode.opacity.value=e}getIntensity(){return this.intensity}setIntensity(e){this.intensity=e}get weightsR(){return this.uniforms.get("weightsR").value}get weightsG(){return this.uniforms.get("weightsG").value}get weightsB(){return this.uniforms.get("weightsB").value}},tD=`varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1; +#if EDGE_DETECTION_MODE != 0 +varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5; +#endif +#if EDGE_DETECTION_MODE == 1 +#include +#endif +#if EDGE_DETECTION_MODE == 0 || PREDICATION_MODE == 1 +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +}vec3 gatherNeighbors(){float p=readDepth(vUv);float pLeft=readDepth(vUv0);float pTop=readDepth(vUv1);return vec3(p,pLeft,pTop);} +#elif PREDICATION_MODE == 2 +uniform sampler2D predicationBuffer;vec3 gatherNeighbors(){float p=texture2D(predicationBuffer,vUv).r;float pLeft=texture2D(predicationBuffer,vUv0).r;float pTop=texture2D(predicationBuffer,vUv1).r;return vec3(p,pLeft,pTop);} +#endif +#if PREDICATION_MODE != 0 +vec2 calculatePredicatedThreshold(){vec3 neighbours=gatherNeighbors();vec2 delta=abs(neighbours.xx-neighbours.yz);vec2 edges=step(PREDICATION_THRESHOLD,delta);return PREDICATION_SCALE*EDGE_THRESHOLD*(1.0-PREDICATION_STRENGTH*edges);} +#endif +#if EDGE_DETECTION_MODE != 0 +uniform sampler2D inputBuffer; +#endif +void main(){ +#if EDGE_DETECTION_MODE == 0 +const vec2 threshold=vec2(DEPTH_THRESHOLD); +#elif PREDICATION_MODE != 0 +vec2 threshold=calculatePredicatedThreshold(); +#else +const vec2 threshold=vec2(EDGE_THRESHOLD); +#endif +#if EDGE_DETECTION_MODE == 0 +vec3 neighbors=gatherNeighbors();vec2 delta=abs(neighbors.xx-vec2(neighbors.y,neighbors.z));vec2 edges=step(threshold,delta);if(dot(edges,vec2(1.0))==0.0){discard;}gl_FragColor=vec4(edges,0.0,1.0); +#elif EDGE_DETECTION_MODE == 1 +float l=luminance(texture2D(inputBuffer,vUv).rgb);float lLeft=luminance(texture2D(inputBuffer,vUv0).rgb);float lTop=luminance(texture2D(inputBuffer,vUv1).rgb);vec4 delta;delta.xy=abs(l-vec2(lLeft,lTop));vec2 edges=step(threshold,delta.xy);if(dot(edges,vec2(1.0))==0.0){discard;}float lRight=luminance(texture2D(inputBuffer,vUv2).rgb);float lBottom=luminance(texture2D(inputBuffer,vUv3).rgb);delta.zw=abs(l-vec2(lRight,lBottom));vec2 maxDelta=max(delta.xy,delta.zw);float lLeftLeft=luminance(texture2D(inputBuffer,vUv4).rgb);float lTopTop=luminance(texture2D(inputBuffer,vUv5).rgb);delta.zw=abs(vec2(lLeft,lTop)-vec2(lLeftLeft,lTopTop));maxDelta=max(maxDelta.xy,delta.zw);float finalDelta=max(maxDelta.x,maxDelta.y);edges.xy*=step(finalDelta,LOCAL_CONTRAST_ADAPTATION_FACTOR*delta.xy);gl_FragColor=vec4(edges,0.0,1.0); +#elif EDGE_DETECTION_MODE == 2 +vec4 delta;vec3 c=texture2D(inputBuffer,vUv).rgb;vec3 cLeft=texture2D(inputBuffer,vUv0).rgb;vec3 t=abs(c-cLeft);delta.x=max(max(t.r,t.g),t.b);vec3 cTop=texture2D(inputBuffer,vUv1).rgb;t=abs(c-cTop);delta.y=max(max(t.r,t.g),t.b);vec2 edges=step(threshold,delta.xy);if(dot(edges,vec2(1.0))==0.0){discard;}vec3 cRight=texture2D(inputBuffer,vUv2).rgb;t=abs(c-cRight);delta.z=max(max(t.r,t.g),t.b);vec3 cBottom=texture2D(inputBuffer,vUv3).rgb;t=abs(c-cBottom);delta.w=max(max(t.r,t.g),t.b);vec2 maxDelta=max(delta.xy,delta.zw);vec3 cLeftLeft=texture2D(inputBuffer,vUv4).rgb;t=abs(c-cLeftLeft);delta.z=max(max(t.r,t.g),t.b);vec3 cTopTop=texture2D(inputBuffer,vUv5).rgb;t=abs(c-cTopTop);delta.w=max(max(t.r,t.g),t.b);maxDelta=max(maxDelta.xy,delta.zw);float finalDelta=max(maxDelta.x,maxDelta.y);edges*=step(finalDelta,LOCAL_CONTRAST_ADAPTATION_FACTOR*delta.xy);gl_FragColor=vec4(edges,0.0,1.0); +#endif +}`,tw=`uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1; +#if EDGE_DETECTION_MODE != 0 +varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5; +#endif +void main(){vUv=position.xy*0.5+0.5;vUv0=vUv+texelSize*vec2(-1.0,0.0);vUv1=vUv+texelSize*vec2(0.0,-1.0); +#if EDGE_DETECTION_MODE != 0 +vUv2=vUv+texelSize*vec2(1.0,0.0);vUv3=vUv+texelSize*vec2(0.0,1.0);vUv4=vUv+texelSize*vec2(-2.0,0.0);vUv5=vUv+texelSize*vec2(0.0,-2.0); +#endif +gl_Position=vec4(position.xy,1.0,1.0);}`,tE=class extends H.ShaderMaterial{constructor(e=new H.Vector2,t=2){super({name:"EdgeDetectionMaterial",defines:{THREE_REVISION:H.REVISION.replace(/\D+/g,""),LOCAL_CONTRAST_ADAPTATION_FACTOR:"2.0",EDGE_THRESHOLD:"0.1",DEPTH_THRESHOLD:"0.01",PREDICATION_MODE:"0",PREDICATION_THRESHOLD:"0.01",PREDICATION_SCALE:"2.0",PREDICATION_STRENGTH:"1.0",DEPTH_PACKING:"0"},uniforms:{inputBuffer:new H.Uniform(null),depthBuffer:new H.Uniform(null),predicationBuffer:new H.Uniform(null),texelSize:new H.Uniform(e)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:tD,vertexShader:tw}),this.edgeDetectionMode=t}set depthBuffer(e){this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=H.BasicDepthPacking){this.depthBuffer=e,this.depthPacking=t}get edgeDetectionMode(){return Number(this.defines.EDGE_DETECTION_MODE)}set edgeDetectionMode(e){this.defines.EDGE_DETECTION_MODE=e.toFixed(0),this.needsUpdate=!0}getEdgeDetectionMode(){return this.edgeDetectionMode}setEdgeDetectionMode(e){this.edgeDetectionMode=e}get localContrastAdaptationFactor(){return Number(this.defines.LOCAL_CONTRAST_ADAPTATION_FACTOR)}set localContrastAdaptationFactor(e){this.defines.LOCAL_CONTRAST_ADAPTATION_FACTOR=e.toFixed("6"),this.needsUpdate=!0}getLocalContrastAdaptationFactor(){return this.localContrastAdaptationFactor}setLocalContrastAdaptationFactor(e){this.localContrastAdaptationFactor=e}get edgeDetectionThreshold(){return Number(this.defines.EDGE_THRESHOLD)}set edgeDetectionThreshold(e){this.defines.EDGE_THRESHOLD=e.toFixed("6"),this.defines.DEPTH_THRESHOLD=(.1*e).toFixed("6"),this.needsUpdate=!0}getEdgeDetectionThreshold(){return this.edgeDetectionThreshold}setEdgeDetectionThreshold(e){this.edgeDetectionThreshold=e}get predicationMode(){return Number(this.defines.PREDICATION_MODE)}set predicationMode(e){this.defines.PREDICATION_MODE=e.toFixed(0),this.needsUpdate=!0}getPredicationMode(){return this.predicationMode}setPredicationMode(e){this.predicationMode=e}set predicationBuffer(e){this.uniforms.predicationBuffer.value=e}setPredicationBuffer(e){this.uniforms.predicationBuffer.value=e}get predicationThreshold(){return Number(this.defines.PREDICATION_THRESHOLD)}set predicationThreshold(e){this.defines.PREDICATION_THRESHOLD=e.toFixed("6"),this.needsUpdate=!0}getPredicationThreshold(){return this.predicationThreshold}setPredicationThreshold(e){this.predicationThreshold=e}get predicationScale(){return Number(this.defines.PREDICATION_SCALE)}set predicationScale(e){this.defines.PREDICATION_SCALE=e.toFixed("6"),this.needsUpdate=!0}getPredicationScale(){return this.predicationScale}setPredicationScale(e){this.predicationScale=e}get predicationStrength(){return Number(this.defines.PREDICATION_STRENGTH)}set predicationStrength(e){this.defines.PREDICATION_STRENGTH=e.toFixed("6"),this.needsUpdate=!0}getPredicationStrength(){return this.predicationStrength}setPredicationStrength(e){this.predicationStrength=e}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},tC=`#define sampleLevelZeroOffset(t, coord, offset) texture2D(t, coord + offset * texelSize) +#if __VERSION__ < 300 +#define round(v) floor(v + 0.5) +#endif +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +uniform lowp sampler2D areaTexture;uniform lowp sampler2D searchTexture;uniform vec2 texelSize;uniform vec2 resolution;varying vec2 vUv;varying vec4 vOffset[3];varying vec2 vPixCoord;void movec(const in bvec2 c,inout vec2 variable,const in vec2 value){if(c.x){variable.x=value.x;}if(c.y){variable.y=value.y;}}void movec(const in bvec4 c,inout vec4 variable,const in vec4 value){movec(c.xy,variable.xy,value.xy);movec(c.zw,variable.zw,value.zw);}vec2 decodeDiagBilinearAccess(in vec2 e){e.r=e.r*abs(5.0*e.r-5.0*0.75);return round(e);}vec4 decodeDiagBilinearAccess(in vec4 e){e.rb=e.rb*abs(5.0*e.rb-5.0*0.75);return round(e);}vec2 searchDiag1(const in vec2 texCoord,const in vec2 dir,out vec2 e){vec4 coord=vec4(texCoord,-1.0,1.0);vec3 t=vec3(texelSize,1.0);for(int i=0;i0.9)){break;}coord.xyz=t*vec3(dir,1.0)+coord.xyz;e=texture2D(inputBuffer,coord.xy).rg;coord.w=dot(e,vec2(0.5));}return coord.zw;}vec2 searchDiag2(const in vec2 texCoord,const in vec2 dir,out vec2 e){vec4 coord=vec4(texCoord,-1.0,1.0);coord.x+=0.25*texelSize.x;vec3 t=vec3(texelSize,1.0);for(int i=0;i0.9)){break;}coord.xyz=t*vec3(dir,1.0)+coord.xyz;e=texture2D(inputBuffer,coord.xy).rg;e=decodeDiagBilinearAccess(e);coord.w=dot(e,vec2(0.5));}return coord.zw;}vec2 areaDiag(const in vec2 dist,const in vec2 e,const in float offset){vec2 texCoord=vec2(AREATEX_MAX_DISTANCE_DIAG,AREATEX_MAX_DISTANCE_DIAG)*e+dist;texCoord=AREATEX_PIXEL_SIZE*texCoord+0.5*AREATEX_PIXEL_SIZE;texCoord.x+=0.5;texCoord.y+=AREATEX_SUBTEX_SIZE*offset;return texture2D(areaTexture,texCoord).rg;}vec2 calculateDiagWeights(const in vec2 texCoord,const in vec2 e,const in vec4 subsampleIndices){vec2 weights=vec2(0.0);vec4 d;vec2 end;if(e.r>0.0){d.xz=searchDiag1(texCoord,vec2(-1.0,1.0),end);d.x+=float(end.y>0.9);}else{d.xz=vec2(0.0);}d.yw=searchDiag1(texCoord,vec2(1.0,-1.0),end);if(d.x+d.y>2.0){vec4 coords=vec4(-d.x+0.25,d.x,d.y,-d.y-0.25)*texelSize.xyxy+texCoord.xyxy;vec4 c;c.xy=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(-1,0)).rg;c.zw=sampleLevelZeroOffset(inputBuffer,coords.zw,vec2(1,0)).rg;c.yxwz=decodeDiagBilinearAccess(c.xyzw);vec2 cc=vec2(2.0)*c.xz+c.yw;movec(bvec2(step(0.9,d.zw)),cc,vec2(0.0));weights+=areaDiag(d.xy,cc,subsampleIndices.z);}d.xz=searchDiag2(texCoord,vec2(-1.0,-1.0),end);if(sampleLevelZeroOffset(inputBuffer,texCoord,vec2(1,0)).r>0.0){d.yw=searchDiag2(texCoord,vec2(1.0),end);d.y+=float(end.y>0.9);}else{d.yw=vec2(0.0);}if(d.x+d.y>2.0){vec4 coords=vec4(-d.x,-d.x,d.y,d.y)*texelSize.xyxy+texCoord.xyxy;vec4 c;c.x=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(-1,0)).g;c.y=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(0,-1)).r;c.zw=sampleLevelZeroOffset(inputBuffer,coords.zw,vec2(1,0)).gr;vec2 cc=vec2(2.0)*c.xz+c.yw;movec(bvec2(step(0.9,d.zw)),cc,vec2(0.0));weights+=areaDiag(d.xy,cc,subsampleIndices.w).gr;}return weights;}float searchLength(const in vec2 e,const in float offset){vec2 scale=SEARCHTEX_SIZE*vec2(0.5,-1.0);vec2 bias=SEARCHTEX_SIZE*vec2(offset,1.0);scale+=vec2(-1.0,1.0);bias+=vec2(0.5,-0.5);scale*=1.0/SEARCHTEX_PACKED_SIZE;bias*=1.0/SEARCHTEX_PACKED_SIZE;return texture2D(searchTexture,scale*e+bias).r;}float searchXLeft(in vec2 texCoord,const in float end){vec2 e=vec2(0.0,1.0);for(int i=0;iend&&e.g>0.8281&&e.r==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(-2.0,0.0)*texelSize+texCoord;}float offset=-(255.0/127.0)*searchLength(e,0.0)+3.25;return texelSize.x*offset+texCoord.x;}float searchXRight(vec2 texCoord,const in float end){vec2 e=vec2(0.0,1.0);for(int i=0;i0.8281&&e.r==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(2.0,0.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e,0.5)+3.25;return-texelSize.x*offset+texCoord.x;}float searchYUp(vec2 texCoord,const in float end){vec2 e=vec2(1.0,0.0);for(int i=0;iend&&e.r>0.8281&&e.g==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=-vec2(0.0,2.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e.gr,0.0)+3.25;return texelSize.y*offset+texCoord.y;}float searchYDown(vec2 texCoord,const in float end){vec2 e=vec2(1.0,0.0);for(int i=0;i0.8281&&e.g==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(0.0,2.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e.gr,0.5)+3.25;return-texelSize.y*offset+texCoord.y;}vec2 area(const in vec2 dist,const in float e1,const in float e2,const in float offset){vec2 texCoord=vec2(AREATEX_MAX_DISTANCE)*round(4.0*vec2(e1,e2))+dist;texCoord=AREATEX_PIXEL_SIZE*texCoord+0.5*AREATEX_PIXEL_SIZE;texCoord.y=AREATEX_SUBTEX_SIZE*offset+texCoord.y;return texture2D(areaTexture,texCoord).rg;}void detectHorizontalCornerPattern(inout vec2 weights,const in vec4 texCoord,const in vec2 d){ +#if !defined(DISABLE_CORNER_DETECTION) +vec2 leftRight=step(d.xy,d.yx);vec2 rounding=(1.0-CORNER_ROUNDING_NORM)*leftRight;rounding/=leftRight.x+leftRight.y;vec2 factor=vec2(1.0);factor.x-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(0,1)).r;factor.x-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,1)).r;factor.y-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(0,-2)).r;factor.y-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,-2)).r;weights*=clamp(factor,0.0,1.0); +#endif +}void detectVerticalCornerPattern(inout vec2 weights,const in vec4 texCoord,const in vec2 d){ +#if !defined(DISABLE_CORNER_DETECTION) +vec2 leftRight=step(d.xy,d.yx);vec2 rounding=(1.0-CORNER_ROUNDING_NORM)*leftRight;rounding/=leftRight.x+leftRight.y;vec2 factor=vec2(1.0);factor.x-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(1,0)).g;factor.x-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,1)).g;factor.y-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(-2,0)).g;factor.y-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(-2,1)).g;weights*=clamp(factor,0.0,1.0); +#endif +}void main(){vec4 weights=vec4(0.0);vec4 subsampleIndices=vec4(0.0);vec2 e=texture2D(inputBuffer,vUv).rg;if(e.g>0.0){ +#if !defined(DISABLE_DIAG_DETECTION) +weights.rg=calculateDiagWeights(vUv,e,subsampleIndices);if(weights.r==-weights.g){ +#endif +vec2 d;vec3 coords;coords.x=searchXLeft(vOffset[0].xy,vOffset[2].x);coords.y=vOffset[1].y;d.x=coords.x;float e1=texture2D(inputBuffer,coords.xy).r;coords.z=searchXRight(vOffset[0].zw,vOffset[2].y);d.y=coords.z;d=round(resolution.xx*d+-vPixCoord.xx);vec2 sqrtD=sqrt(abs(d));float e2=sampleLevelZeroOffset(inputBuffer,coords.zy,vec2(1,0)).r;weights.rg=area(sqrtD,e1,e2,subsampleIndices.y);coords.y=vUv.y;detectHorizontalCornerPattern(weights.rg,coords.xyzy,d); +#if !defined(DISABLE_DIAG_DETECTION) +}else{e.r=0.0;} +#endif +}if(e.r>0.0){vec2 d;vec3 coords;coords.y=searchYUp(vOffset[1].xy,vOffset[2].z);coords.x=vOffset[0].x;d.x=coords.y;float e1=texture2D(inputBuffer,coords.xy).g;coords.z=searchYDown(vOffset[1].zw,vOffset[2].w);d.y=coords.z;d=round(resolution.yy*d-vPixCoord.yy);vec2 sqrtD=sqrt(abs(d));float e2=sampleLevelZeroOffset(inputBuffer,coords.xz,vec2(0,1)).g;weights.ba=area(sqrtD,e1,e2,subsampleIndices.x);coords.x=vUv.x;detectVerticalCornerPattern(weights.ba,coords.xyxz,d);}gl_FragColor=weights;}`,tB=class extends H.ShaderMaterial{constructor(e=new H.Vector2,t=new H.Vector2){super({name:"SMAAWeightsMaterial",defines:{MAX_SEARCH_STEPS_INT:"16",MAX_SEARCH_STEPS_FLOAT:"16.0",MAX_SEARCH_STEPS_DIAG_INT:"8",MAX_SEARCH_STEPS_DIAG_FLOAT:"8.0",CORNER_ROUNDING:"25",CORNER_ROUNDING_NORM:"0.25",AREATEX_MAX_DISTANCE:"16.0",AREATEX_MAX_DISTANCE_DIAG:"20.0",AREATEX_PIXEL_SIZE:"(1.0 / vec2(160.0, 560.0))",AREATEX_SUBTEX_SIZE:"(1.0 / 7.0)",SEARCHTEX_SIZE:"vec2(66.0, 33.0)",SEARCHTEX_PACKED_SIZE:"vec2(64.0, 16.0)"},uniforms:{inputBuffer:new H.Uniform(null),searchTexture:new H.Uniform(null),areaTexture:new H.Uniform(null),resolution:new H.Uniform(t),texelSize:new H.Uniform(e)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:tC,vertexShader:"uniform vec2 texelSize;uniform vec2 resolution;varying vec2 vUv;varying vec4 vOffset[3];varying vec2 vPixCoord;void main(){vUv=position.xy*0.5+0.5;vPixCoord=vUv*resolution;vOffset[0]=vUv.xyxy+texelSize.xyxy*vec4(-0.25,-0.125,1.25,-0.125);vOffset[1]=vUv.xyxy+texelSize.xyxy*vec4(-0.125,-0.25,-0.125,1.25);vOffset[2]=vec4(vOffset[0].xz,vOffset[1].yw)+vec4(-2.0,2.0,-2.0,2.0)*texelSize.xxyy*MAX_SEARCH_STEPS_FLOAT;gl_Position=vec4(position.xy,1.0,1.0);}"})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get searchTexture(){return this.uniforms.searchTexture.value}set searchTexture(e){this.uniforms.searchTexture.value=e}get areaTexture(){return this.uniforms.areaTexture.value}set areaTexture(e){this.uniforms.areaTexture.value=e}setLookupTextures(e,t){this.searchTexture=e,this.areaTexture=t}get orthogonalSearchSteps(){return Number(this.defines.MAX_SEARCH_STEPS_INT)}set orthogonalSearchSteps(e){let t=Math.min(Math.max(e,0),112);this.defines.MAX_SEARCH_STEPS_INT=t.toFixed("0"),this.defines.MAX_SEARCH_STEPS_FLOAT=t.toFixed("1"),this.needsUpdate=!0}setOrthogonalSearchSteps(e){this.orthogonalSearchSteps=e}get diagonalSearchSteps(){return Number(this.defines.MAX_SEARCH_STEPS_DIAG_INT)}set diagonalSearchSteps(e){let t=Math.min(Math.max(e,0),20);this.defines.MAX_SEARCH_STEPS_DIAG_INT=t.toFixed("0"),this.defines.MAX_SEARCH_STEPS_DIAG_FLOAT=t.toFixed("1"),this.needsUpdate=!0}setDiagonalSearchSteps(e){this.diagonalSearchSteps=e}get diagonalDetection(){return void 0===this.defines.DISABLE_DIAG_DETECTION}set diagonalDetection(e){e?delete this.defines.DISABLE_DIAG_DETECTION:this.defines.DISABLE_DIAG_DETECTION="1",this.needsUpdate=!0}isDiagonalDetectionEnabled(){return this.diagonalDetection}setDiagonalDetectionEnabled(e){this.diagonalDetection=e}get cornerRounding(){return Number(this.defines.CORNER_ROUNDING)}set cornerRounding(e){let t=Math.min(Math.max(e,0),100);this.defines.CORNER_ROUNDING=t.toFixed("4"),this.defines.CORNER_ROUNDING_NORM=(t/100).toFixed("4"),this.needsUpdate=!0}setCornerRounding(e){this.cornerRounding=e}get cornerDetection(){return void 0===this.defines.DISABLE_CORNER_DETECTION}set cornerDetection(e){e?delete this.defines.DISABLE_CORNER_DETECTION:this.defines.DISABLE_CORNER_DETECTION="1",this.needsUpdate=!0}isCornerRoundingEnabled(){return this.cornerDetection}setCornerRoundingEnabled(e){this.cornerDetection=e}setSize(e,t){let r=this.uniforms;r.texelSize.value.set(1/e,1/t),r.resolution.value.set(e,t)}},tT="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAYAAACm53kpAAAAeElEQVRYR+2XSwqAMAxEJ168ePEqwRSKhIIiuHjJqiU0gWE+1CQdApcVAMUAuARaMGCX1MIL/Ow13++9lW2s3mW9MWvsnWc/2fvGygwPAN4E8QzAA4CXAB6AHjG4JTHYI1ey3pcx6FHnEfhLDOIBKAmUBK6/ANUDTlROXAHd9EC1AAAAAElFTkSuQmCC",tS="data:image/png;base64,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",ty=class extends eo{constructor({blendFunction:e=30,preset:t=1,edgeDetectionMode:r=2,predicationMode:i=0}={}){let s,a;super("SMAAEffect","uniform sampler2D weightMap;varying vec2 vOffset0;varying vec2 vOffset1;void movec(const in bvec2 c,inout vec2 variable,const in vec2 value){if(c.x){variable.x=value.x;}if(c.y){variable.y=value.y;}}void movec(const in bvec4 c,inout vec4 variable,const in vec4 value){movec(c.xy,variable.xy,value.xy);movec(c.zw,variable.zw,value.zw);}void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 a;a.x=texture2D(weightMap,vOffset0).a;a.y=texture2D(weightMap,vOffset1).g;a.wz=texture2D(weightMap,uv).rb;vec4 color=inputColor;if(dot(a,vec4(1.0))>=1e-5){bool h=max(a.x,a.z)>max(a.y,a.w);vec4 blendingOffset=vec4(0.0,a.y,0.0,a.w);vec2 blendingWeight=a.yw;movec(bvec4(h),blendingOffset,vec4(a.x,0.0,a.z,0.0));movec(bvec2(h),blendingWeight,a.xz);blendingWeight/=dot(blendingWeight,vec2(1.0));vec4 blendingCoord=blendingOffset*vec4(texelSize,-texelSize)+uv.xyxy;color=blendingWeight.x*texture2D(inputBuffer,blendingCoord.xy);color+=blendingWeight.y*texture2D(inputBuffer,blendingCoord.zw);}outputColor=color;}",{vertexShader:"varying vec2 vOffset0;varying vec2 vOffset1;void mainSupport(const in vec2 uv){vOffset0=uv+texelSize*vec2(1.0,0.0);vOffset1=uv+texelSize*vec2(0.0,1.0);}",blendFunction:e,attributes:3,uniforms:new Map([["weightMap",new H.Uniform(null)]])}),arguments.length>1&&(s=arguments[0],a=arguments[1],arguments.length>2&&(t=arguments[2]),arguments.length>3&&(r=arguments[3])),this.renderTargetEdges=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetEdges.texture.name="SMAA.Edges",this.renderTargetWeights=this.renderTargetEdges.clone(),this.renderTargetWeights.texture.name="SMAA.Weights",this.uniforms.get("weightMap").value=this.renderTargetWeights.texture,this.clearPass=new J(!0,!1,!1),this.clearPass.overrideClearColor=new H.Color(0),this.clearPass.overrideClearAlpha=1,this.edgeDetectionPass=new eG(new tE),this.edgeDetectionMaterial.edgeDetectionMode=r,this.edgeDetectionMaterial.predicationMode=i,this.weightsPass=new eG(new tB);const n=new H.LoadingManager;n.onLoad=()=>{let e=new H.Texture(s);e.name="SMAA.Search",e.magFilter=H.NearestFilter,e.minFilter=H.NearestFilter,e.generateMipmaps=!1,e.needsUpdate=!0,e.flipY=!0,this.weightsMaterial.searchTexture=e;let t=new H.Texture(a);t.name="SMAA.Area",t.magFilter=H.LinearFilter,t.minFilter=H.LinearFilter,t.generateMipmaps=!1,t.needsUpdate=!0,t.flipY=!1,this.weightsMaterial.areaTexture=t,this.dispatchEvent({type:"load"})},n.itemStart("search"),n.itemStart("area"),void 0!==s&&void 0!==a?(n.itemEnd("search"),n.itemEnd("area")):"u">typeof Image&&(s=new Image,a=new Image,s.addEventListener("load",()=>n.itemEnd("search")),a.addEventListener("load",()=>n.itemEnd("area")),s.src=tT,a.src=tS),this.applyPreset(t)}get edgesTexture(){return this.renderTargetEdges.texture}getEdgesTexture(){return this.edgesTexture}get weightsTexture(){return this.renderTargetWeights.texture}getWeightsTexture(){return this.weightsTexture}get edgeDetectionMaterial(){return this.edgeDetectionPass.fullscreenMaterial}get colorEdgesMaterial(){return this.edgeDetectionMaterial}getEdgeDetectionMaterial(){return this.edgeDetectionMaterial}get weightsMaterial(){return this.weightsPass.fullscreenMaterial}getWeightsMaterial(){return this.weightsMaterial}setEdgeDetectionThreshold(e){this.edgeDetectionMaterial.edgeDetectionThreshold=e}setOrthogonalSearchSteps(e){this.weightsMaterial.orthogonalSearchSteps=e}applyPreset(e){let t=this.edgeDetectionMaterial,r=this.weightsMaterial;switch(e){case 0:t.edgeDetectionThreshold=.15,r.orthogonalSearchSteps=4,r.diagonalDetection=!1,r.cornerDetection=!1;break;case 1:t.edgeDetectionThreshold=.1,r.orthogonalSearchSteps=8,r.diagonalDetection=!1,r.cornerDetection=!1;break;case 2:t.edgeDetectionThreshold=.1,r.orthogonalSearchSteps=16,r.diagonalSearchSteps=8,r.cornerRounding=25,r.diagonalDetection=!0,r.cornerDetection=!0;break;case 3:t.edgeDetectionThreshold=.05,r.orthogonalSearchSteps=32,r.diagonalSearchSteps=16,r.cornerRounding=25,r.diagonalDetection=!0,r.cornerDetection=!0}}setDepthTexture(e,t=H.BasicDepthPacking){this.edgeDetectionMaterial.depthBuffer=e,this.edgeDetectionMaterial.depthPacking=t}update(e,t,r){this.clearPass.render(e,this.renderTargetEdges),this.edgeDetectionPass.render(e,t,this.renderTargetEdges),this.weightsPass.render(e,this.renderTargetEdges,this.renderTargetWeights)}setSize(e,t){this.edgeDetectionMaterial.setSize(e,t),this.weightsMaterial.setSize(e,t),this.renderTargetEdges.setSize(e,t),this.renderTargetWeights.setSize(e,t)}dispose(){let{searchTexture:e,areaTexture:t}=this.weightsMaterial;null!==e&&null!==t&&(e.dispose(),t.dispose()),super.dispose()}static get searchImageDataURL(){return tT}static get areaImageDataURL(){return tS}};function tM(e,t,r){return Math.min(Math.max((e+t)/(t-r),0),1)}var tP=`#include +#include +uniform vec2 cameraNearFar; +#define cameraNear cameraNearFar.x +#define cameraFar cameraNearFar.y +#ifdef NORMAL_DEPTH +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D normalDepthBuffer; +#else +uniform mediump sampler2D normalDepthBuffer; +#endif +float readDepth(const in vec2 uv){float depth=texture2D(normalDepthBuffer,uv).a; +#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) +float d=pow(2.0,depth*log2(cameraFar+1.0))-1.0;float a=cameraFar/(cameraFar-cameraNear);float b=cameraFar*cameraNear/(cameraNear-cameraFar);depth=a+b/d; +#endif +return depth;} +#else +uniform lowp sampler2D normalBuffer; +#if DEPTH_PACKING == 3201 +uniform lowp sampler2D depthBuffer; +#elif defined(GL_FRAGMENT_PRECISION_HIGH) +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +float depth=unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +float depth=texture2D(depthBuffer,uv).r; +#endif +#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) +float d=pow(2.0,depth*log2(cameraFar+1.0))-1.0;float a=cameraFar/(cameraFar-cameraNear);float b=cameraFar*cameraNear/(cameraNear-cameraFar);depth=a+b/d; +#endif +return depth;} +#endif +uniform lowp sampler2D noiseTexture;uniform mat4 inverseProjectionMatrix;uniform mat4 projectionMatrix;uniform vec2 texelSize;uniform float intensity;uniform float minRadiusScale;uniform float fade;uniform float bias;uniform vec2 distanceCutoff;uniform vec2 proximityCutoff;varying vec2 vUv;varying vec2 vUv2;float getViewZ(const in float depth){ +#ifdef PERSPECTIVE_CAMERA +return perspectiveDepthToViewZ(depth,cameraNear,cameraFar); +#else +return orthographicDepthToViewZ(depth,cameraNear,cameraFar); +#endif +}vec3 getViewPosition(const in vec2 screenPosition,const in float depth,const in float viewZ){vec4 clipPosition=vec4(vec3(screenPosition,depth)*2.0-1.0,1.0);float clipW=projectionMatrix[2][3]*viewZ+projectionMatrix[3][3];clipPosition*=clipW;return(inverseProjectionMatrix*clipPosition).xyz;}float getAmbientOcclusion(const in vec3 p,const in vec3 n,const in float depth,const in vec2 uv){float radiusScale=1.0-smoothstep(0.0,distanceCutoff.y,depth);radiusScale=radiusScale*(1.0-minRadiusScale)+minRadiusScale;float radius=RADIUS*radiusScale;float noise=texture2D(noiseTexture,vUv2).r;float baseAngle=noise*PI2;float rings=SPIRAL_TURNS*PI2;float occlusion=0.0;int taps=0;for(int i=0;i1.0||coords.t<0.0||coords.t>1.0){continue;}float sampleDepth=readDepth(coords);float viewZ=getViewZ(sampleDepth); +#ifdef PERSPECTIVE_CAMERA +float linearSampleDepth=viewZToOrthographicDepth(viewZ,cameraNear,cameraFar); +#else +float linearSampleDepth=sampleDepth; +#endif +float proximity=abs(depth-linearSampleDepth);if(proximity +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +#ifdef DOWNSAMPLE_NORMALS +uniform lowp sampler2D normalBuffer; +#endif +varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +}int findBestDepth(const in float samples[4]){float c=(samples[0]+samples[1]+samples[2]+samples[3])*0.25;float distances[4];distances[0]=abs(c-samples[0]);distances[1]=abs(c-samples[1]);distances[2]=abs(c-samples[2]);distances[3]=abs(c-samples[3]);float maxDistance=max(max(distances[0],distances[1]),max(distances[2],distances[3]));int remaining[3];int rejected[3];int i,j,k;for(i=0,j=0,k=0;i<4;++i){if(distances[i]this.setSize(o.baseWidth,o.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}setDepthTexture(e,t=H.BasicDepthPacking){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t}render(e,t,r,i,s){e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height),this.fullscreenMaterial.setSize(e,t)}initialize(e,t,r){let i=e.getContext();if(!(i.getExtension("EXT_color_buffer_float")||i.getExtension("EXT_color_buffer_half_float")))throw Error("Rendering to float texture is not supported.")}},tF=`uniform lowp sampler2D aoBuffer;uniform float luminanceInfluence;uniform float intensity; +#if defined(DEPTH_AWARE_UPSAMPLING) && defined(NORMAL_DEPTH) +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D normalDepthBuffer; +#else +uniform mediump sampler2D normalDepthBuffer; +#endif +#endif +#ifdef COLORIZE +uniform vec3 color; +#endif +void mainImage(const in vec4 inputColor,const in vec2 uv,const in float depth,out vec4 outputColor){float aoLinear=texture2D(aoBuffer,uv).r; +#if defined(DEPTH_AWARE_UPSAMPLING) && defined(NORMAL_DEPTH) && __VERSION__ == 300 +vec4 normalDepth[4];normalDepth[0]=textureOffset(normalDepthBuffer,uv,ivec2(0,0));normalDepth[1]=textureOffset(normalDepthBuffer,uv,ivec2(0,1));normalDepth[2]=textureOffset(normalDepthBuffer,uv,ivec2(1,0));normalDepth[3]=textureOffset(normalDepthBuffer,uv,ivec2(1,1));float dot01=dot(normalDepth[0].rgb,normalDepth[1].rgb);float dot02=dot(normalDepth[0].rgb,normalDepth[2].rgb);float dot03=dot(normalDepth[0].rgb,normalDepth[3].rgb);float minDot=min(dot01,min(dot02,dot03));float s=step(THRESHOLD,minDot);float smallestDistance=1.0;int index;for(int i=0;i<4;++i){float distance=abs(depth-normalDepth[i].a);if(distancethis.setSize(y.baseWidth,y.baseHeight)),this.camera=e,this.depthDownsamplingPass=new tb({normalBuffer:t,resolutionScale:E}),this.depthDownsamplingPass.enabled=null===a,this.ssaoPass=new eG(new tI(e));const M=new eW(64,64,H.RGBAFormat);M.wrapS=M.wrapT=H.RepeatWrapping;const P=this.ssaoMaterial;P.normalBuffer=t,P.noiseTexture=M,P.minRadiusScale=p,P.samples=i,P.radius=m,P.rings=s,P.fade=D,P.bias=x,P.distanceThreshold=h,P.distanceFalloff=d,P.proximityThreshold=f,P.proximityFalloff=g,void 0!==o&&(P.worldDistanceThreshold=o),void 0!==l&&(P.worldDistanceFalloff=l),void 0!==u&&(P.worldProximityThreshold=u),void 0!==c&&(P.worldProximityFalloff=c),null!==a&&(this.ssaoMaterial.normalDepthBuffer=a,this.defines.set("NORMAL_DEPTH","1")),this.depthAwareUpsampling=n,this.color=w}set mainCamera(e){this.camera=e,this.ssaoMaterial.copyCameraSettings(e)}get normalBuffer(){return this.ssaoMaterial.normalBuffer}set normalBuffer(e){this.ssaoMaterial.normalBuffer=e,this.depthDownsamplingPass.fullscreenMaterial.normalBuffer=e}getResolution(){return this.resolution}get ssaoMaterial(){return this.ssaoPass.fullscreenMaterial}getSSAOMaterial(){return this.ssaoMaterial}get samples(){return this.ssaoMaterial.samples}set samples(e){this.ssaoMaterial.samples=e}get rings(){return this.ssaoMaterial.rings}set rings(e){this.ssaoMaterial.rings=e}get radius(){return this.ssaoMaterial.radius}set radius(e){this.ssaoMaterial.radius=e}get depthAwareUpsampling(){return this.defines.has("DEPTH_AWARE_UPSAMPLING")}set depthAwareUpsampling(e){this.depthAwareUpsampling!==e&&(e?this.defines.set("DEPTH_AWARE_UPSAMPLING","1"):this.defines.delete("DEPTH_AWARE_UPSAMPLING"),this.setChanged())}isDepthAwareUpsamplingEnabled(){return this.depthAwareUpsampling}setDepthAwareUpsamplingEnabled(e){this.depthAwareUpsampling=e}get distanceScaling(){return!0}set distanceScaling(e){}get color(){return this.uniforms.get("color").value}set color(e){let t=this.uniforms,r=this.defines;null!==e?r.has("COLORIZE")?t.get("color").value.set(e):(r.set("COLORIZE","1"),t.get("color").value=new H.Color(e),this.setChanged()):r.has("COLORIZE")&&(r.delete("COLORIZE"),t.get("color").value=null,this.setChanged())}get luminanceInfluence(){return this.uniforms.get("luminanceInfluence").value}set luminanceInfluence(e){this.uniforms.get("luminanceInfluence").value=e}get intensity(){return this.uniforms.get("intensity").value}set intensity(e){this.uniforms.get("intensity").value=e}getColor(){return this.color}setColor(e){this.color=e}setDistanceCutoff(e,t){this.ssaoMaterial.distanceThreshold=e,this.ssaoMaterial.distanceFalloff=t}setProximityCutoff(e,t){this.ssaoMaterial.proximityThreshold=e,this.ssaoMaterial.proximityFalloff=t}setDepthTexture(e,t=H.BasicDepthPacking){this.depthDownsamplingPass.setDepthTexture(e,t),this.ssaoMaterial.depthBuffer=e,this.ssaoMaterial.depthPacking=t}update(e,t,r){let i=this.renderTarget;this.depthDownsamplingPass.enabled&&this.depthDownsamplingPass.render(e),this.ssaoPass.render(e,null,i)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t);let i=r.width,s=r.height;this.ssaoMaterial.copyCameraSettings(this.camera),this.ssaoMaterial.setSize(i,s),this.renderTarget.setSize(i,s),this.depthDownsamplingPass.resolution.scale=r.scale,this.depthDownsamplingPass.setSize(e,t)}initialize(e,t,r){try{let i=this.uniforms.get("normalDepthBuffer").value;null===i&&(this.depthDownsamplingPass.initialize(e,t,r),i=this.depthDownsamplingPass.texture,this.uniforms.get("normalDepthBuffer").value=i,this.ssaoMaterial.normalDepthBuffer=i,this.defines.set("NORMAL_DEPTH","1"))}catch(e){this.depthDownsamplingPass.enabled=!1}}},tO=`#ifdef TEXTURE_PRECISION_HIGH +uniform mediump sampler2D map; +#else +uniform lowp sampler2D map; +#endif +varying vec2 vUv2;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){ +#ifdef UV_TRANSFORM +vec4 texel=texture2D(map,vUv2); +#else +vec4 texel=texture2D(map,uv); +#endif +outputColor=TEXEL;outputColor.a=max(inputColor.a,outputColor.a);}`,tG=`#ifdef ASPECT_CORRECTION +uniform float scale; +#else +uniform mat3 uvTransform; +#endif +varying vec2 vUv2;void mainSupport(const in vec2 uv){ +#ifdef ASPECT_CORRECTION +vUv2=uv*vec2(aspect,1.0)*scale; +#else +vUv2=(uvTransform*vec3(uv,1.0)).xy; +#endif +}`,tN=class extends eo{constructor({blendFunction:e,texture:t=null,aspectCorrection:r=!1}={}){super("TextureEffect",tO,{blendFunction:e,defines:new Map([["TEXEL","texel"]]),uniforms:new Map([["map",new H.Uniform(null)],["scale",new H.Uniform(1)],["uvTransform",new H.Uniform(null)]])}),this.texture=t,this.aspectCorrection=r}get texture(){return this.uniforms.get("map").value}set texture(e){let t=this.texture,r=this.uniforms,i=this.defines;t!==e&&(r.get("map").value=e,r.get("uvTransform").value=e.matrix,i.delete("TEXTURE_PRECISION_HIGH"),null!==e&&(e.matrixAutoUpdate?(i.set("UV_TRANSFORM","1"),this.setVertexShader(tG)):(i.delete("UV_TRANSFORM"),this.setVertexShader(null)),e.type!==H.UnsignedByteType&&i.set("TEXTURE_PRECISION_HIGH","1"),(null===t||t.type!==e.type||t.encoding!==e.encoding)&&this.setChanged()))}getTexture(){return this.texture}setTexture(e){this.texture=e}get aspectCorrection(){return this.defines.has("ASPECT_CORRECTION")}set aspectCorrection(e){this.aspectCorrection!==e&&(e?this.defines.set("ASPECT_CORRECTION","1"):this.defines.delete("ASPECT_CORRECTION"),this.setChanged())}get uvTransform(){let e=this.texture;return null!==e&&e.matrixAutoUpdate}set uvTransform(e){let t=this.texture;null!==t&&(t.matrixAutoUpdate=e)}setTextureSwizzleRGBA(e,t=e,r=e,i=e){let s="rgba",a="";(0!==e||1!==t||2!==r||3!==i)&&(a="."+s[e]+s[t]+s[r]+s[i]),this.defines.set("TEXEL","texel"+a),this.setChanged()}update(e,t,r){this.texture.matrixAutoUpdate&&this.texture.updateMatrix()}},tH=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +uniform vec4 maskParams;varying vec2 vUv;varying vec2 vUv2;varying vec2 vOffset;float linearGradientMask(const in float x){return smoothstep(maskParams.x,maskParams.y,x)-smoothstep(maskParams.w,maskParams.z,x);}void main(){vec2 dUv=vOffset*(1.0-linearGradientMask(vUv2.y));vec4 sum=texture2D(inputBuffer,vec2(vUv.x-dUv.x,vUv.y+dUv.y));sum+=texture2D(inputBuffer,vec2(vUv.x+dUv.x,vUv.y+dUv.y));sum+=texture2D(inputBuffer,vec2(vUv.x+dUv.x,vUv.y-dUv.y));sum+=texture2D(inputBuffer,vec2(vUv.x-dUv.x,vUv.y-dUv.y));gl_FragColor=sum*0.25; +#include +}`,tz=class extends eh{constructor({kernelSize:e=el.MEDIUM,offset:t=0,rotation:r=0,focusArea:i=.4,feather:s=.3}={}){super(),this.fragmentShader=tH,this.vertexShader="uniform vec4 texelSize;uniform float kernel;uniform float scale;uniform float aspect;uniform vec2 rotation;varying vec2 vUv;varying vec2 vUv2;varying vec2 vOffset;void main(){vec2 uv=position.xy*0.5+0.5;vUv=uv;vUv2=(uv-0.5)*2.0*vec2(aspect,1.0);vUv2=vec2(dot(rotation,vUv2),dot(rotation,vec2(vUv2.y,-vUv2.x)));vOffset=(texelSize.xy*vec2(kernel)+texelSize.zw)*scale;gl_Position=vec4(position.xy,1.0,1.0);}",this.kernelSize=e,this.uniforms.aspect=new H.Uniform(1),this.uniforms.rotation=new H.Uniform(new H.Vector2),this.uniforms.maskParams=new H.Uniform(new H.Vector4),this._offset=t,this._focusArea=i,this._feather=s,this.rotation=r,this.updateParams()}updateParams(){let e=this.uniforms.maskParams.value,t=Math.max(this.focusArea,0),r=Math.max(t-this.feather,0);e.set(this.offset-t,this.offset-r,this.offset+t,this.offset+r)}get rotation(){return Math.acos(this.uniforms.rotation.value.x)}set rotation(e){this.uniforms.rotation.value.set(Math.cos(e),Math.sin(e))}get offset(){return this._offset}set offset(e){this._offset=e,this.updateParams()}get focusArea(){return this._focusArea}set focusArea(e){this._focusArea=e,this.updateParams()}get feather(){return this._feather}set feather(e){this._feather=e,this.updateParams()}setSize(e,t){super.setSize(e,t),this.uniforms.aspect.value=e/t}},tk=class extends ed{constructor({offset:e=0,rotation:t=0,focusArea:r=.4,feather:i=.3,kernelSize:s=el.MEDIUM,resolutionScale:a=.5,resolutionX:n=er.AUTO_SIZE,resolutionY:o=er.AUTO_SIZE}={}){super({kernelSize:s,resolutionScale:a,resolutionX:n,resolutionY:o}),this.blurMaterial=new tz({kernelSize:s,offset:e,rotation:t,focusArea:r,feather:i})}},tV=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D map; +#else +uniform lowp sampler2D map; +#endif +uniform vec2 maskParams;varying vec2 vUv2;float linearGradientMask(const in float x){return step(maskParams.x,x)-step(maskParams.y,x);}void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){float mask=linearGradientMask(vUv2.y);vec4 texel=texture2D(map,uv);outputColor=mix(texel,inputColor,mask);}`,tQ=class extends eo{constructor({blendFunction:e,offset:t=0,rotation:r=0,focusArea:i=.4,feather:s=.3,kernelSize:a=el.MEDIUM,resolutionScale:n=.5,resolutionX:o=er.AUTO_SIZE,resolutionY:l=er.AUTO_SIZE}={}){super("TiltShiftEffect",tV,{vertexShader:"uniform vec2 rotation;varying vec2 vUv2;void mainSupport(const in vec2 uv){vUv2=(uv-0.5)*2.0*vec2(aspect,1.0);vUv2=vec2(dot(rotation,vUv2),dot(rotation,vec2(vUv2.y,-vUv2.x)));}",blendFunction:e,uniforms:new Map([["rotation",new H.Uniform(new H.Vector2)],["maskParams",new H.Uniform(new H.Vector2)],["map",new H.Uniform(null)]])}),this._offset=t,this._focusArea=i,this._feather=s,this.renderTarget=new H.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="TiltShift.Target",this.uniforms.get("map").value=this.renderTarget.texture,this.blurPass=new tk({kernelSize:a,resolutionScale:n,resolutionX:o,resolutionY:l,offset:t,rotation:r,focusArea:i,feather:s});const u=this.resolution=new er(this,o,l,n);u.addEventListener("change",e=>this.setSize(u.baseWidth,u.baseHeight)),this.rotation=r,this.updateParams()}updateParams(){let e=this.uniforms.get("maskParams").value,t=Math.max(this.focusArea-this.feather,0);e.set(this.offset-t,this.offset+t)}get rotation(){return Math.acos(this.uniforms.get("rotation").value.x)}set rotation(e){this.uniforms.get("rotation").value.set(Math.cos(e),Math.sin(e)),this.blurPass.blurMaterial.rotation=e}get offset(){return this._offset}set offset(e){this._offset=e,this.blurPass.blurMaterial.offset=e,this.updateParams()}get focusArea(){return this._focusArea}set focusArea(e){this._focusArea=e,this.blurPass.blurMaterial.focusArea=e,this.updateParams()}get feather(){return this._feather}set feather(e){this._feather=e,this.blurPass.blurMaterial.feather=e,this.updateParams()}get bias(){return 0}set bias(e){}update(e,t,r){this.blurPass.render(e,t,this.renderTarget)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height),this.blurPass.resolution.copy(r)}initialize(e,t,r){this.blurPass.initialize(e,t,r),void 0!==r&&(this.renderTarget.texture.type=r,null!==e&&e.outputColorSpace===H.SRGBColorSpace&&(this.renderTarget.texture.colorSpace=H.SRGBColorSpace))}},tY=`#include +#define packFloatToRGBA(v) packDepthToRGBA(v) +#define unpackRGBAToFloat(v) unpackRGBAToDepth(v) +uniform lowp sampler2D luminanceBuffer0;uniform lowp sampler2D luminanceBuffer1;uniform float minLuminance;uniform float deltaTime;uniform float tau;varying vec2 vUv;void main(){float l0=unpackRGBAToFloat(texture2D(luminanceBuffer0,vUv)); +#if __VERSION__ < 300 +float l1=texture2DLodEXT(luminanceBuffer1,vUv,MIP_LEVEL_1X1).r; +#else +float l1=textureLod(luminanceBuffer1,vUv,MIP_LEVEL_1X1).r; +#endif +l0=max(minLuminance,l0);l1=max(minLuminance,l1);float adaptedLum=l0+(l1-l0)*(1.0-exp(-deltaTime*tau));gl_FragColor=(adaptedLum==1.0)?vec4(1.0):packFloatToRGBA(adaptedLum);}`,tW=class extends H.ShaderMaterial{constructor(){super({name:"AdaptiveLuminanceMaterial",defines:{MIP_LEVEL_1X1:"0.0"},uniforms:{luminanceBuffer0:new H.Uniform(null),luminanceBuffer1:new H.Uniform(null),minLuminance:new H.Uniform(.01),deltaTime:new H.Uniform(0),tau:new H.Uniform(1)},extensions:{shaderTextureLOD:!0},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:tY,vertexShader:Y})}set luminanceBuffer0(e){this.uniforms.luminanceBuffer0.value=e}setLuminanceBuffer0(e){this.uniforms.luminanceBuffer0.value=e}set luminanceBuffer1(e){this.uniforms.luminanceBuffer1.value=e}setLuminanceBuffer1(e){this.uniforms.luminanceBuffer1.value=e}set mipLevel1x1(e){this.defines.MIP_LEVEL_1X1=e.toFixed(1),this.needsUpdate=!0}setMipLevel1x1(e){this.mipLevel1x1=e}set deltaTime(e){this.uniforms.deltaTime.value=e}setDeltaTime(e){this.uniforms.deltaTime.value=e}get minLuminance(){return this.uniforms.minLuminance.value}set minLuminance(e){this.uniforms.minLuminance.value=e}getMinLuminance(){return this.uniforms.minLuminance.value}setMinLuminance(e){this.uniforms.minLuminance.value=e}get adaptationRate(){return this.uniforms.tau.value}set adaptationRate(e){this.uniforms.tau.value=e}getAdaptationRate(){return this.uniforms.tau.value}setAdaptationRate(e){this.uniforms.tau.value=e}},tK=class extends k{constructor(e,{minLuminance:t=.01,adaptationRate:r=1}={}){super("AdaptiveLuminancePass"),this.fullscreenMaterial=new tW,this.needsSwap=!1,this.renderTargetPrevious=new H.WebGLRenderTarget(1,1,{minFilter:H.NearestFilter,magFilter:H.NearestFilter,depthBuffer:!1}),this.renderTargetPrevious.texture.name="Luminance.Previous";const i=this.fullscreenMaterial;i.luminanceBuffer0=this.renderTargetPrevious.texture,i.luminanceBuffer1=e,i.minLuminance=t,i.adaptationRate=r,this.renderTargetAdapted=this.renderTargetPrevious.clone(),this.renderTargetAdapted.texture.name="Luminance.Adapted",this.copyPass=new K(this.renderTargetPrevious,!1)}get texture(){return this.renderTargetAdapted.texture}getTexture(){return this.renderTargetAdapted.texture}set mipLevel1x1(e){this.fullscreenMaterial.mipLevel1x1=e}get adaptationRate(){return this.fullscreenMaterial.adaptationRate}set adaptationRate(e){this.fullscreenMaterial.adaptationRate=e}render(e,t,r,i,s){this.fullscreenMaterial.deltaTime=i,e.setRenderTarget(this.renderToScreen?null:this.renderTargetAdapted),e.render(this.scene,this.camera),this.copyPass.render(e,this.renderTargetAdapted)}},tX=`#include +uniform float whitePoint; +#if TONE_MAPPING_MODE == 2 || TONE_MAPPING_MODE == 3 +uniform float middleGrey; +#if TONE_MAPPING_MODE == 3 +uniform lowp sampler2D luminanceBuffer; +#else +uniform float averageLuminance; +#endif +vec3 Reinhard2ToneMapping(vec3 color){color*=toneMappingExposure;float l=luminance(color); +#if TONE_MAPPING_MODE == 3 +float lumAvg=unpackRGBAToFloat(texture2D(luminanceBuffer,vec2(0.5))); +#else +float lumAvg=averageLuminance; +#endif +float lumScaled=(l*middleGrey)/max(lumAvg,1e-6);float lumCompressed=lumScaled*(1.0+lumScaled/(whitePoint*whitePoint));lumCompressed/=(1.0+lumScaled);return clamp(lumCompressed*color,0.0,1.0);} +#elif TONE_MAPPING_MODE == 4 +#define A 0.15 +#define B 0.50 +#define C 0.10 +#define D 0.20 +#define E 0.02 +#define F 0.30 +vec3 Uncharted2Helper(const in vec3 x){return((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}vec3 Uncharted2ToneMapping(vec3 color){color*=toneMappingExposure;return clamp(Uncharted2Helper(color)/Uncharted2Helper(vec3(whitePoint)),0.0,1.0);} +#endif +void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){ +#if TONE_MAPPING_MODE == 2 || TONE_MAPPING_MODE == 3 +outputColor=vec4(Reinhard2ToneMapping(inputColor.rgb),inputColor.a); +#elif TONE_MAPPING_MODE == 4 +outputColor=vec4(Uncharted2ToneMapping(inputColor.rgb),inputColor.a); +#else +outputColor=vec4(toneMapping(inputColor.rgb),inputColor.a); +#endif +}`,tJ=class extends eo{constructor({blendFunction:e=30,adaptive:t=!1,mode:r=t?3:7,resolution:i=256,maxLuminance:s=4,whitePoint:a=s,middleGrey:n=.6,minLuminance:o=.01,averageLuminance:l=1,adaptationRate:u=1}={}){super("ToneMappingEffect",tX,{blendFunction:e,uniforms:new Map([["luminanceBuffer",new H.Uniform(null)],["maxLuminance",new H.Uniform(s)],["whitePoint",new H.Uniform(a)],["middleGrey",new H.Uniform(n)],["averageLuminance",new H.Uniform(l)]])}),this.renderTargetLuminance=new H.WebGLRenderTarget(1,1,{minFilter:H.LinearMipmapLinearFilter,depthBuffer:!1}),this.renderTargetLuminance.texture.generateMipmaps=!0,this.renderTargetLuminance.texture.name="Luminance",this.luminancePass=new ep({renderTarget:this.renderTargetLuminance}),this.adaptiveLuminancePass=new tK(this.luminancePass.texture,{minLuminance:o,adaptationRate:u}),this.uniforms.get("luminanceBuffer").value=this.adaptiveLuminancePass.texture,this.resolution=i,this.mode=r}get mode(){return Number(this.defines.get("TONE_MAPPING_MODE"))}set mode(e){if(this.mode===e)return;let t=H.REVISION.replace(/\D+/g,"");switch(this.defines.clear(),this.defines.set("TONE_MAPPING_MODE",e.toFixed(0)),e){case 0:this.defines.set("toneMapping(texel)","LinearToneMapping(texel)");break;case 1:this.defines.set("toneMapping(texel)","ReinhardToneMapping(texel)");break;case 5:case 5:this.defines.set("toneMapping(texel)",t>=168?"CineonToneMapping(texel)":"OptimizedCineonToneMapping(texel)");break;case 6:this.defines.set("toneMapping(texel)","ACESFilmicToneMapping(texel)");break;case 7:this.defines.set("toneMapping(texel)","AgXToneMapping(texel)");break;case 8:this.defines.set("toneMapping(texel)","NeutralToneMapping(texel)");break;default:this.defines.set("toneMapping(texel)","texel")}this.adaptiveLuminancePass.enabled=3===e,this.setChanged()}getMode(){return this.mode}setMode(e){this.mode=e}get whitePoint(){return this.uniforms.get("whitePoint").value}set whitePoint(e){this.uniforms.get("whitePoint").value=e}get middleGrey(){return this.uniforms.get("middleGrey").value}set middleGrey(e){this.uniforms.get("middleGrey").value=e}get averageLuminance(){return this.uniforms.get("averageLuminance").value}set averageLuminance(e){this.uniforms.get("averageLuminance").value=e}get adaptiveLuminanceMaterial(){return this.adaptiveLuminancePass.fullscreenMaterial}getAdaptiveLuminanceMaterial(){return this.adaptiveLuminanceMaterial}get resolution(){return this.luminancePass.resolution.width}set resolution(e){let t=Math.max(0,Math.ceil(Math.log2(e))),r=Math.pow(2,t);this.luminancePass.resolution.setPreferredSize(r,r),this.adaptiveLuminanceMaterial.mipLevel1x1=t}getResolution(){return this.resolution}setResolution(e){this.resolution=e}get adaptive(){return 3===this.mode}set adaptive(e){this.mode=e?3:2}get adaptationRate(){return this.adaptiveLuminanceMaterial.adaptationRate}set adaptationRate(e){this.adaptiveLuminanceMaterial.adaptationRate=e}get distinction(){return console.warn(this.name,"distinction was removed."),1}set distinction(e){console.warn(this.name,"distinction was removed.")}update(e,t,r){this.adaptiveLuminancePass.enabled&&(this.luminancePass.render(e,t),this.adaptiveLuminancePass.render(e,null,null,r))}initialize(e,t,r){this.adaptiveLuminancePass.initialize(e,t,r)}},tj=`uniform float offset;uniform float darkness;void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){const vec2 center=vec2(0.5);vec3 color=inputColor.rgb; +#if VIGNETTE_TECHNIQUE == 0 +float d=distance(uv,center);color*=smoothstep(0.8,offset*0.799,d*(darkness+offset)); +#else +vec2 coord=(uv-center)*vec2(offset);color=mix(color,vec3(1.0-darkness),dot(coord,coord)); +#endif +outputColor=vec4(color,inputColor.a);}`,tZ=class extends eo{constructor({blendFunction:e,eskil:t=!1,technique:r=1*!!t,offset:i=.5,darkness:s=.5}={}){super("VignetteEffect",tj,{blendFunction:e,defines:new Map([["VIGNETTE_TECHNIQUE",r.toFixed(0)]]),uniforms:new Map([["offset",new H.Uniform(i)],["darkness",new H.Uniform(s)]])})}get technique(){return Number(this.defines.get("VIGNETTE_TECHNIQUE"))}set technique(e){this.technique!==e&&(this.defines.set("VIGNETTE_TECHNIQUE",e.toFixed(0)),this.setChanged())}get eskil(){return 1===this.technique}set eskil(e){this.technique=1*!!e}getTechnique(){return this.technique}setTechnique(e){this.technique=e}get offset(){return this.uniforms.get("offset").value}set offset(e){this.uniforms.get("offset").value=e}getOffset(){return this.offset}setOffset(e){this.offset=e}get darkness(){return this.uniforms.get("darkness").value}set darkness(e){this.uniforms.get("darkness").value=e}getDarkness(){return this.darkness}setDarkness(e){this.darkness=e}};H.Loader,H.Loader,H.Loader;H.ShaderMaterial;var tq=`#include +varying vec2 vUv; +#ifdef NORMAL_DEPTH +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D normalDepthBuffer; +#else +uniform mediump sampler2D normalDepthBuffer; +#endif +float readDepth(const in vec2 uv){return texture2D(normalDepthBuffer,uv).a;} +#else +#if INPUT_DEPTH_PACKING == 3201 +uniform lowp sampler2D depthBuffer; +#elif defined(GL_FRAGMENT_PRECISION_HIGH) +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +float readDepth(const in vec2 uv){ +#if INPUT_DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +} +#endif +void main(){ +#if INPUT_DEPTH_PACKING == OUTPUT_DEPTH_PACKING +gl_FragColor=texture2D(depthBuffer,vUv); +#else +float depth=readDepth(vUv); +#if OUTPUT_DEPTH_PACKING == 3201 +gl_FragColor=(depth==1.0)?vec4(1.0):packDepthToRGBA(depth); +#else +gl_FragColor=vec4(vec3(depth),1.0); +#endif +#endif +}`,t_=`varying vec2 vUv; +#if DEPTH_COPY_MODE == 1 +uniform vec2 texelPosition; +#endif +void main(){ +#if DEPTH_COPY_MODE == 1 +vUv=texelPosition; +#else +vUv=position.xy*0.5+0.5; +#endif +gl_Position=vec4(position.xy,1.0,1.0);}`,t$=class extends H.ShaderMaterial{constructor(){super({name:"DepthCopyMaterial",defines:{INPUT_DEPTH_PACKING:"0",OUTPUT_DEPTH_PACKING:"0",DEPTH_COPY_MODE:"0"},uniforms:{depthBuffer:new H.Uniform(null),texelPosition:new H.Uniform(new H.Vector2)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:tq,vertexShader:t_}),this.depthCopyMode=0}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){this.uniforms.depthBuffer.value=e}set inputDepthPacking(e){this.defines.INPUT_DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}get outputDepthPacking(){return Number(this.defines.OUTPUT_DEPTH_PACKING)}set outputDepthPacking(e){this.defines.OUTPUT_DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=H.BasicDepthPacking){this.depthBuffer=e,this.inputDepthPacking=t}getInputDepthPacking(){return Number(this.defines.INPUT_DEPTH_PACKING)}setInputDepthPacking(e){this.defines.INPUT_DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}getOutputDepthPacking(){return Number(this.defines.OUTPUT_DEPTH_PACKING)}setOutputDepthPacking(e){this.defines.OUTPUT_DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}get texelPosition(){return this.uniforms.texelPosition.value}getTexelPosition(){return this.uniforms.texelPosition.value}setTexelPosition(e){this.uniforms.texelPosition.value=e}get mode(){return this.depthCopyMode}set mode(e){this.depthCopyMode=e,this.defines.DEPTH_COPY_MODE=e.toFixed(0),this.needsUpdate=!0}getMode(){return this.mode}setMode(e){this.mode=e}},t0=`#include +#include +#include +#define packFloatToRGBA(v) packDepthToRGBA(v) +#define unpackRGBAToFloat(v) unpackRGBAToDepth(v) +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#if DEPTH_PACKING == 3201 +uniform lowp sampler2D depthBuffer; +#elif defined(GL_FRAGMENT_PRECISION_HIGH) +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;vec4 sRGBToLinear(const in vec4 value){return vec4(mix(pow(value.rgb*0.9478672986+vec3(0.0521327014),vec3(2.4)),value.rgb*0.0773993808,vec3(lessThanEqual(value.rgb,vec3(0.04045)))),value.a);}float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +float depth=unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +float depth=texture2D(depthBuffer,uv).r; +#endif +#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) +float d=pow(2.0,depth*log2(cameraFar+1.0))-1.0;float a=cameraFar/(cameraFar-cameraNear);float b=cameraFar*cameraNear/(cameraNear-cameraFar);depth=a+b/d; +#elif defined(USE_REVERSED_DEPTH_BUFFER) +depth=1.0-depth; +#endif +return depth;}float getViewZ(const in float depth){ +#ifdef PERSPECTIVE_CAMERA +return perspectiveDepthToViewZ(depth,cameraNear,cameraFar); +#else +return orthographicDepthToViewZ(depth,cameraNear,cameraFar); +#endif +}vec3 RGBToHCV(const in vec3 RGB){vec4 P=mix(vec4(RGB.bg,-1.0,2.0/3.0),vec4(RGB.gb,0.0,-1.0/3.0),step(RGB.b,RGB.g));vec4 Q=mix(vec4(P.xyw,RGB.r),vec4(RGB.r,P.yzx),step(P.x,RGB.r));float C=Q.x-min(Q.w,Q.y);float H=abs((Q.w-Q.y)/(6.0*C+EPSILON)+Q.z);return vec3(H,C,Q.x);}vec3 RGBToHSL(const in vec3 RGB){vec3 HCV=RGBToHCV(RGB);float L=HCV.z-HCV.y*0.5;float S=HCV.y/(1.0-abs(L*2.0-1.0)+EPSILON);return vec3(HCV.x,S,L);}vec3 HueToRGB(const in float H){float R=abs(H*6.0-3.0)-1.0;float G=2.0-abs(H*6.0-2.0);float B=2.0-abs(H*6.0-4.0);return clamp(vec3(R,G,B),0.0,1.0);}vec3 HSLToRGB(const in vec3 HSL){vec3 RGB=HueToRGB(HSL.x);float C=(1.0-abs(2.0*HSL.z-1.0))*HSL.y;return(RGB-0.5)*C+HSL.z;}FRAGMENT_HEAD void main(){FRAGMENT_MAIN_UV vec4 color0=texture2D(inputBuffer,UV);vec4 color1=vec4(0.0);FRAGMENT_MAIN_IMAGE color0.a=clamp(color0.a,0.0,1.0);gl_FragColor=color0; +#ifdef ENCODE_OUTPUT +#include +#endif +#include +}`,t1=class extends H.ShaderMaterial{constructor(e,t,r,i,s=!1){super({name:"EffectMaterial",defines:{THREE_REVISION:H.REVISION.replace(/\D+/g,""),DEPTH_PACKING:"0",ENCODE_OUTPUT:"1"},uniforms:{inputBuffer:new H.Uniform(null),depthBuffer:new H.Uniform(null),resolution:new H.Uniform(new H.Vector2),texelSize:new H.Uniform(new H.Vector2),cameraNear:new H.Uniform(.3),cameraFar:new H.Uniform(1e3),aspect:new H.Uniform(1),time:new H.Uniform(0)},blending:H.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,dithering:s}),e&&this.setShaderParts(e),t&&this.setDefines(t),r&&this.setUniforms(r),this.copyCameraSettings(i)}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){this.uniforms.depthBuffer.value=e}get depthPacking(){return Number(this.defines.DEPTH_PACKING)}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=H.BasicDepthPacking){this.depthBuffer=e,this.depthPacking=t}setShaderData(e){this.setShaderParts(e.shaderParts),this.setDefines(e.defines),this.setUniforms(e.uniforms),this.setExtensions(e.extensions)}setShaderParts(e){return this.fragmentShader=t0.replace(_.FRAGMENT_HEAD,e.get(_.FRAGMENT_HEAD)||"").replace(_.FRAGMENT_MAIN_UV,e.get(_.FRAGMENT_MAIN_UV)||"").replace(_.FRAGMENT_MAIN_IMAGE,e.get(_.FRAGMENT_MAIN_IMAGE)||""),this.vertexShader="uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;VERTEX_HEAD void main(){vUv=position.xy*0.5+0.5;VERTEX_MAIN_SUPPORT gl_Position=vec4(position.xy,1.0,1.0);}".replace(_.VERTEX_HEAD,e.get(_.VERTEX_HEAD)||"").replace(_.VERTEX_MAIN_SUPPORT,e.get(_.VERTEX_MAIN_SUPPORT)||""),this.needsUpdate=!0,this}setDefines(e){for(let t of e.entries())this.defines[t[0]]=t[1];return this.needsUpdate=!0,this}setUniforms(e){for(let t of e.entries())this.uniforms[t[0]]=t[1];return this}setExtensions(e){for(let t of(this.extensions={},e))this.extensions[t]=!0;return this}get encodeOutput(){return void 0!==this.defines.ENCODE_OUTPUT}set encodeOutput(e){this.encodeOutput!==e&&(e?this.defines.ENCODE_OUTPUT="1":delete this.defines.ENCODE_OUTPUT,this.needsUpdate=!0)}isOutputEncodingEnabled(e){return this.encodeOutput}setOutputEncodingEnabled(e){this.encodeOutput=e}get time(){return this.uniforms.time.value}set time(e){this.uniforms.time.value=e}setDeltaTime(e){this.uniforms.time.value+=e}adoptCameraSettings(e){this.copyCameraSettings(e)}copyCameraSettings(e){e&&(this.uniforms.cameraNear.value=e.near,this.uniforms.cameraFar.value=e.far,e instanceof H.PerspectiveCamera?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}setSize(e,t){let r=this.uniforms;r.resolution.value.set(e,t),r.texelSize.value.set(1/e,1/t),r.aspect.value=e/t}static get Section(){return _}};H.ShaderMaterial;var t2=class extends k{constructor({depthPacking:e=H.RGBADepthPacking}={}){super("DepthCopyPass");const t=new t$;t.outputDepthPacking=e,this.fullscreenMaterial=t,this.needsDepthTexture=!0,this.needsSwap=!1,this.renderTarget=new H.WebGLRenderTarget(1,1,{type:e===H.RGBADepthPacking?H.UnsignedByteType:H.FloatType,minFilter:H.NearestFilter,magFilter:H.NearestFilter,depthBuffer:!1}),this.renderTarget.texture.name="DepthCopyPass.Target"}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}get depthPacking(){return this.fullscreenMaterial.outputDepthPacking}getDepthPacking(){return this.fullscreenMaterial.outputDepthPacking}setDepthTexture(e,t=H.BasicDepthPacking){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.inputDepthPacking=t}render(e,t,r,i,s){e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){this.renderTarget.setSize(e,t)}},t4=Number(H.REVISION.replace(/\D+/g,"")),t3=255/256,t5=new Float32Array([255/256/0x1000000,255/256/65536,255/256/256,255/256]),t8=new Float32Array([t3,t3/256,t3/65536,1/0x1000000]),t6=class extends t2{constructor({depthPacking:e=H.RGBADepthPacking,mode:t=1}={}){if(e!==H.RGBADepthPacking&&e!==H.BasicDepthPacking)throw Error(`Unsupported depth packing: ${e}`);super({depthPacking:e}),this.name="DepthPickingPass",this.fullscreenMaterial.mode=t,this.pixelBuffer=e===H.RGBADepthPacking?new Uint8Array(4):new Float32Array(4),this.callback=null}readDepth(e){return this.fullscreenMaterial.texelPosition.set(.5*e.x+.5,.5*e.y+.5),new Promise(e=>{this.callback=e})}render(e,t,r,i,s){let a=this.fullscreenMaterial,n=a.mode;if(0===n&&super.render(e),null!==this.callback){let t,r=this.renderTarget,i=this.pixelBuffer,s=r.texture.type!==H.FloatType,o=0,l=0;if(1===n)super.render(e);else{let e=a.texelPosition;o=Math.round(e.x*r.width),l=Math.round(e.y*r.height)}e.readRenderTargetPixels(r,o,l,1,1,i),this.callback(s?(t=t4>=167?t8:t5,(i[0]*t[0]+i[1]*t[1]+i[2]*t[2]+i[3]*t[3])/255):i[0]),this.callback=null}}setSize(e,t){0===this.fullscreenMaterial.mode&&super.setSize(e,t)}};function t9(e,t,r){for(let i of t){let t="$1"+e+i.charAt(0).toUpperCase()+i.slice(1),s=RegExp("([^\\.])(\\b"+i+"\\b)","g");for(let e of r.entries())null!==e[1]&&r.set(e[0],e[1].replace(s,t))}}var t7=class extends k{constructor(e,...t){super("EffectPass"),this.fullscreenMaterial=new t1(null,null,null,e),this.listener=e=>this.handleEvent(e),this.effects=[],this.setEffects(t),this.skipRendering=!1,this.minTime=1,this.maxTime=1/0,this.timeScale=1}set mainScene(e){for(let t of this.effects)t.mainScene=e}set mainCamera(e){for(let t of(this.fullscreenMaterial.copyCameraSettings(e),this.effects))t.mainCamera=e}get encodeOutput(){return this.fullscreenMaterial.encodeOutput}set encodeOutput(e){this.fullscreenMaterial.encodeOutput=e}get dithering(){return this.fullscreenMaterial.dithering}set dithering(e){let t=this.fullscreenMaterial;t.dithering=e,t.needsUpdate=!0}setEffects(e){for(let e of this.effects)e.removeEventListener("change",this.listener);for(let t of(this.effects=e.sort((e,t)=>t.attributes-e.attributes),this.effects))t.addEventListener("change",this.listener)}updateMaterial(){let e=new $,t=0;for(let r of this.effects)if(9===r.blendMode.blendFunction)e.attributes|=1&r.getAttributes();else if((e.attributes&r.getAttributes()&2)!=0)throw Error(`Convolution effects cannot be merged (${r.name})`);else!function(e,t,r){let i=t.getFragmentShader(),s=t.getVertexShader(),a=void 0!==i&&/mainImage/.test(i),n=void 0!==i&&/mainUv/.test(i);if(r.attributes|=t.getAttributes(),void 0===i)throw Error(`Missing fragment shader (${t.name})`);if(n&&(2&r.attributes)!=0)throw Error(`Effects that transform UVs are incompatible with convolution effects (${t.name})`);if(a||n){let o=/\w+\s+(\w+)\([\w\s,]*\)\s*{/g,l=r.shaderParts,u=l.get(_.FRAGMENT_HEAD)||"",c=l.get(_.FRAGMENT_MAIN_UV)||"",h=l.get(_.FRAGMENT_MAIN_IMAGE)||"",d=l.get(_.VERTEX_HEAD)||"",f=l.get(_.VERTEX_MAIN_SUPPORT)||"",g=new Set,p=new Set;if(n&&(c+=` ${e}MainUv(UV); +`,r.uvTransformation=!0),null!==s&&/mainSupport/.test(s)){let t=/mainSupport *\([\w\s]*?uv\s*?\)/.test(s);for(let i of(f+=` ${e}MainSupport(`,f+=t?"vUv);\n":");\n",s.matchAll(/(?:varying\s+\w+\s+([\S\s]*?);)/g)))for(let e of i[1].split(/\s*,\s*/))r.varyings.add(e),g.add(e),p.add(e);for(let e of s.matchAll(o))p.add(e[1])}for(let e of i.matchAll(o))p.add(e[1]);for(let e of t.defines.keys())p.add(e.replace(/\([\w\s,]*\)/g,""));for(let e of t.uniforms.keys())p.add(e);p.delete("while"),p.delete("for"),p.delete("if"),t.uniforms.forEach((t,i)=>r.uniforms.set(e+i.charAt(0).toUpperCase()+i.slice(1),t)),t.defines.forEach((t,i)=>r.defines.set(e+i.charAt(0).toUpperCase()+i.slice(1),t));let v=new Map([["fragment",i],["vertex",s]]);t9(e,p,r.defines),t9(e,p,v),i=v.get("fragment"),s=v.get("vertex");let m=t.blendMode;if(r.blendModes.set(m.blendFunction,m),a){null!==t.inputColorSpace&&t.inputColorSpace!==r.colorSpace&&(h+=t.inputColorSpace===H.SRGBColorSpace?"color0 = sRGBTransferOETF(color0);\n ":"color0 = sRGBToLinear(color0);\n "),t.outputColorSpace!==H.NoColorSpace?r.colorSpace=t.outputColorSpace:null!==t.inputColorSpace&&(r.colorSpace=t.inputColorSpace),h+=`${e}MainImage(color0, UV, `,(1&r.attributes)!=0&&/MainImage *\([\w\s,]*?depth[\w\s,]*?\)/.test(i)&&(h+="depth, ",r.readDepth=!0),h+="color1);\n ";let s=e+"BlendOpacity";r.uniforms.set(s,m.opacity),h+=`color0 = blend${m.blendFunction}(color0, color1, ${s}); + + `,u+=`uniform float ${s}; + +`}if(u+=i+"\n",null!==s&&(d+=s+"\n"),l.set(_.FRAGMENT_HEAD,u),l.set(_.FRAGMENT_MAIN_UV,c),l.set(_.FRAGMENT_MAIN_IMAGE,h),l.set(_.VERTEX_HEAD,d),l.set(_.VERTEX_MAIN_SUPPORT,f),null!==t.extensions)for(let e of t.extensions)r.extensions.add(e)}else throw Error(`Could not find mainImage or mainUv function (${t.name})`)}("e"+t++,r,e);let r=e.shaderParts.get(_.FRAGMENT_HEAD),i=e.shaderParts.get(_.FRAGMENT_MAIN_IMAGE),s=e.shaderParts.get(_.FRAGMENT_MAIN_UV),a=/\bblend\b/g;for(let t of e.blendModes.values())r+=t.getShaderCode().replace(a,`blend${t.blendFunction}`)+"\n";for(let[t,a]of((1&e.attributes)!=0?(e.readDepth&&(i="float depth = readDepth(UV);\n\n "+i),this.needsDepthTexture=null===this.getDepthTexture()):this.needsDepthTexture=!1,e.colorSpace===H.SRGBColorSpace&&(i+="color0 = sRGBToLinear(color0);\n "),e.uvTransformation?(s="vec2 transformedUv = vUv;\n"+s,e.defines.set("UV","transformedUv")):e.defines.set("UV","vUv"),e.shaderParts.set(_.FRAGMENT_HEAD,r),e.shaderParts.set(_.FRAGMENT_MAIN_IMAGE,i),e.shaderParts.set(_.FRAGMENT_MAIN_UV,s),e.shaderParts))null!==a&&e.shaderParts.set(t,a.trim().replace(/^#/,"\n#"));this.skipRendering=0===t,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=H.BasicDepthPacking){for(let r of(this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t,this.effects))r.setDepthTexture(e,t)}render(e,t,r,i,s){for(let r of this.effects)r.update(e,t,i);if(!this.skipRendering||this.renderToScreen){let s=this.fullscreenMaterial;s.inputBuffer=t.texture,s.time+=i*this.timeScale,e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}}setSize(e,t){for(let r of(this.fullscreenMaterial.setSize(e,t),this.effects))r.setSize(e,t)}initialize(e,t,r){for(let i of(this.renderer=e,this.effects))i.initialize(e,t,r);this.updateMaterial(),void 0!==r&&r!==H.UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){for(let e of(super.dispose(),this.effects))e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){"change"===e.type&&this.recompile()}},re=class extends k{constructor(e,t,{renderTarget:r,resolutionScale:i=1,width:s=er.AUTO_SIZE,height:a=er.AUTO_SIZE,resolutionX:n=s,resolutionY:o=a}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new eq(e,t,new H.MeshNormalMaterial);const l=this.renderPass;l.ignoreBackground=!0,l.skipShadowMapUpdate=!0;const u=l.getClearPass();u.overrideClearColor=new H.Color(7829503),u.overrideClearAlpha=1,this.renderTarget=r,void 0===this.renderTarget&&(this.renderTarget=new H.WebGLRenderTarget(1,1,{minFilter:H.NearestFilter,magFilter:H.NearestFilter}),this.renderTarget.texture.name="NormalPass.Target");const c=this.resolution=new er(this,n,o,i);c.addEventListener("change",e=>this.setSize(c.baseWidth,c.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,i,s){let a=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,a,a)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}};function rt(e,t,r,i){var s;return(s=e+(t-e)*.75)+(r+(i-r)*.75-s)*.875}function rr(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1]),new Float32Array(2),new Float32Array(2),new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125]),new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4]),new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3]),rt(0,0,0,0),new Float32Array([0,0,0,0]),rt(0,0,0,1),new Float32Array([0,0,0,1]),rt(0,0,1,0),new Float32Array([0,0,1,0]),rt(0,0,1,1),new Float32Array([0,0,1,1]),rt(0,1,0,0),new Float32Array([0,1,0,0]),rt(0,1,0,1),new Float32Array([0,1,0,1]),rt(0,1,1,0),new Float32Array([0,1,1,0]),rt(0,1,1,1),new Float32Array([0,1,1,1]),rt(1,0,0,0),new Float32Array([1,0,0,0]),rt(1,0,0,1),new Float32Array([1,0,0,1]),rt(1,0,1,0),new Float32Array([1,0,1,0]),rt(1,0,1,1),new Float32Array([1,0,1,1]),rt(1,1,0,0),new Float32Array([1,1,0,0]),rt(1,1,0,1),new Float32Array([1,1,0,1]),rt(1,1,1,0),new Float32Array([1,1,1,0]),rt(1,1,1,1),new Float32Array([1,1,1,1]),e.s(["BloomEffect",0,eE,"BrightnessContrastEffect",0,eC,"ChromaticAberrationEffect",0,ey,"ColorAverageEffect",0,eB,"ColorDepthEffect",0,eT,"CopyPass",0,K,"DepthDownsamplingPass",0,tb,"DepthEffect",0,eP,"DepthOfFieldEffect",0,ez,"DepthPickingPass",0,t6,"DotScreenEffect",0,ek,"Effect",0,eo,"EffectComposer",0,q,"EffectPass",0,t7,"FXAAEffect",0,eQ,"GlitchEffect",0,eJ,"GlitchMode",0,eY,"GodRaysEffect",0,e1,"GridEffect",0,e2,"HueSaturationEffect",0,e4,"KernelSize",0,el,"LUT3DEffect",0,e7,"MaskFunction",0,eI,"NoiseEffect",0,tt,"NormalPass",0,re,"OutlineEffect",0,tl,"Pass",0,k,"PixelationEffect",0,tu,"RenderPass",0,eq,"SMAAEffect",0,ty,"SSAOEffect",0,tL,"ScanlineEffect",0,th,"SelectiveBloomEffect",0,tA,"SepiaEffect",0,tx,"ShockWaveEffect",0,tp,"TextureEffect",0,tN,"TiltShiftEffect",0,tQ,"ToneMappingEffect",0,tJ,"VignetteEffect",0,tZ],33623);function ri(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=Array(t);rtypeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||rs(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}new F.Vector2,new F.Vector2;function rn(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var ro=function e(t,r,i){var s=this;rn(this,e),rr(this,"dot2",function(e,t){return s.x*e+s.y*t}),rr(this,"dot3",function(e,t,r){return s.x*e+s.y*t+s.z*r}),this.x=t,this.y=r,this.z=i},rl=[new ro(1,1,0),new ro(-1,1,0),new ro(1,-1,0),new ro(-1,-1,0),new ro(1,0,1),new ro(-1,0,1),new ro(1,0,-1),new ro(-1,0,-1),new ro(0,1,1),new ro(0,-1,1),new ro(0,1,-1),new ro(0,-1,-1)],ru=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],rc=Array(512),rh=Array(512),rd=0;(rd=Math.floor(rd))<256&&(rd|=rd<<8);for(var rf,rg=0;rg<256;rg++)rf=1&rg?ru[rg]^255&rd:ru[rg]^rd>>8&255,rc[rg]=rc[rg+256]=rf,rh[rg]=rh[rg+256]=rl[rf%12];function rp(e){var t=function(e){if("number"==typeof e)e=Math.abs(e);else if("string"==typeof e){var t=e;e=0;for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:.25,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.01,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1/0,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:rv,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:.001,l="velocity_"+t;if(void 0===e.__damp&&(e.__damp={}),void 0===e.__damp[l]&&(e.__damp[l]=0),Math.abs(e[t]-r)<=o)return e[t]=r,!1;var u=2/(i=Math.max(1e-4,i)),c=n(u*s),h=e[t]-r,d=r,f=a*i;h=Math.min(Math.max(h,-f),f),r=e[t]-h;var g=(e.__damp[l]+u*h)*s;e.__damp[l]=(e.__damp[l]-u*g)*c;var p=r+(h+g)*c;return d-e[t]>0==p>d&&(p=d,e.__damp[l]=(p-d)/s),e[t]=p,!0}function rA(e,t,r,i,s,a,n,o){var l,u,c,h;return rm(e,t,e[t]+(c=(l=r-e[t])-Math.floor(l/(u=2*Math.PI))*u,(h=Math.max(0,Math.min(u,c)))>Math.PI&&(h-=2*Math.PI),h),i,s,a,n,o)}var rx=new F.Vector2,rD=new F.Vector3;function rw(e,t,r,i,s,a,n){return"number"==typeof t?rD.setScalar(t):Array.isArray(t)?rD.set(t[0],t[1],t[2]):rD.copy(t),u=rm(e,"x",rD.x,r,i,s,a,n),c=rm(e,"y",rD.y,r,i,s,a,n),h=rm(e,"z",rD.z,r,i,s,a,n),u||c||h}var rE=new F.Vector4,rC=new F.Euler,rB=new F.Color,rT=new F.Quaternion,rS=new F.Vector4,ry=new F.Vector4,rM=new F.Vector4;function rP(e,t,r,i,s,a,n){Array.isArray(t)?rT.set(t[0],t[1],t[2],t[3]):rT.copy(t);var o=e.dot(rT)>0?1:-1;return rT.x*=o,rT.y*=o,rT.z*=o,rT.w*=o,E=rm(e,"x",rT.x,r,i,s,a,n),C=rm(e,"y",rT.y,r,i,s,a,n),B=rm(e,"z",rT.z,r,i,s,a,n),T=rm(e,"w",rT.w,r,i,s,a,n),rS.set(e.x,e.y,e.z,e.w).normalize(),ry.set(e.__damp.velocity_x,e.__damp.velocity_y,e.__damp.velocity_z,e.__damp.velocity_w),rM.copy(rS).multiplyScalar(ry.dot(rS)/rS.dot(rS)),e.__damp.velocity_x-=rM.x,e.__damp.velocity_y-=rM.y,e.__damp.velocity_z-=rM.z,e.__damp.velocity_w-=rM.w,e.set(rS.x,rS.y,rS.z,rS.w),E||C||B||T}var rI=new F.Spherical,rU=new F.Matrix4,rR=new F.Vector3,rb=new F.Quaternion,rF=new F.Vector3,rL=Object.freeze({__proto__:null,rsqw:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.01,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1/(2*Math.PI);return r/Math.atan(1/t)*Math.atan(Math.sin(2*Math.PI*e*i)/t)},exp:rv,damp:rm,dampAngle:rA,damp2:function(e,t,r,i,s,a,n){return"number"==typeof t?rx.setScalar(t):Array.isArray(t)?rx.set(t[0],t[1]):rx.copy(t),o=rm(e,"x",rx.x,r,i,s,a,n),l=rm(e,"y",rx.y,r,i,s,a,n),o||l},damp3:rw,damp4:function(e,t,r,i,s,a,n){return"number"==typeof t?rE.setScalar(t):Array.isArray(t)?rE.set(t[0],t[1],t[2],t[3]):rE.copy(t),d=rm(e,"x",rE.x,r,i,s,a,n),f=rm(e,"y",rE.y,r,i,s,a,n),g=rm(e,"z",rE.z,r,i,s,a,n),p=rm(e,"w",rE.w,r,i,s,a,n),d||f||g||p},dampE:function(e,t,r,i,s,a,n){return Array.isArray(t)?rC.set(t[0],t[1],t[2],t[3]):rC.copy(t),v=rA(e,"x",rC.x,r,i,s,a,n),m=rA(e,"y",rC.y,r,i,s,a,n),A=rA(e,"z",rC.z,r,i,s,a,n),v||m||A},dampC:function(e,t,r,i,s,a,n){return t instanceof F.Color?rB.copy(t):Array.isArray(t)?rB.setRGB(t[0],t[1],t[2]):rB.set(t),x=rm(e,"r",rB.r,r,i,s,a,n),D=rm(e,"g",rB.g,r,i,s,a,n),w=rm(e,"b",rB.b,r,i,s,a,n),x||D||w},dampQ:rP,dampS:function(e,t,r,i,s,a,n){return Array.isArray(t)?rI.set(t[0],t[1],t[2]):rI.copy(t),S=rm(e,"radius",rI.radius,r,i,s,a,n),y=rA(e,"phi",rI.phi,r,i,s,a,n),M=rA(e,"theta",rI.theta,r,i,s,a,n),S||y||M},dampM:function(e,t,r,i,s,a,n){return void 0===e.__damp&&(e.__damp={position:new F.Vector3,rotation:new F.Quaternion,scale:new F.Vector3},e.decompose(e.__damp.position,e.__damp.rotation,e.__damp.scale)),Array.isArray(t)?rU.set.apply(rU,ra(t)):rU.copy(t),rU.decompose(rR,rb,rF),P=rw(e.__damp.position,rR,r,i,s,a,n),I=rP(e.__damp.rotation,rb,r,i,s,a,n),U=rw(e.__damp.scale,rF,r,i,s,a,n),e.compose(e.__damp.position,e.__damp.rotation,e.__damp.scale),P||I||U}}),rO=F,rG=F;new rG.OrthographicCamera(-1,1,1,-1,0,1);class rN extends rG.BufferGeometry{constructor(){super(),this.setAttribute("position",new rG.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new rG.Float32BufferAttribute([0,2,0,0,2,0],2))}}new rN;class rH extends rO.BufferGeometry{boundingSphere=new rO.Sphere;constructor(){super(),this.setAttribute("position",new rO.BufferAttribute(new Float32Array([-1,-1,3,-1,-1,3]),2)),this.setAttribute("uv",new rO.BufferAttribute(new Float32Array([0,0,2,0,0,2]),2))}computeBoundingSphere(){}}Uint8Array.from(atob("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"),e=>e.charCodeAt(0)),parseInt(rO.REVISION.replace(/\D+/g,""))>=162?class extends rO.WebGLRenderTarget{constructor(e=1,t=1,r=1,i={}){super(e,t,{...i,count:r}),this.isWebGLMultipleRenderTargets=!0}get texture(){return this.textures}}:class extends rO.WebGLRenderTarget{constructor(e=1,t=1,r=1,i={}){super(e,t,i),this.isWebGLMultipleRenderTargets=!0;const s=this.texture;this.texture=[];for(let e=0;e(2&e.getAttributes())==2,rV=(0,b.memo)((0,b.forwardRef)(({children:e,camera:t,scene:r,resolutionScale:i,enabled:s=!0,renderPriority:a=1,autoClear:n=!0,depthBuffer:o,enableNormalPass:l,stencilBuffer:u,multisampling:c=8,frameBufferType:h=F.HalfFloatType},d)=>{let{gl:f,scene:g,camera:p,size:v}=(0,L.useThree)(),m=r||g,A=t||p,[x,D,w]=(0,b.useMemo)(()=>{let e=new q(f,{depthBuffer:o,stencilBuffer:u,multisampling:c,frameBufferType:h});e.addPass(new eq(m,A));let t=null,r=null;return l&&((r=new re(m,A)).enabled=!1,e.addPass(r),void 0!==i&&((t=new tb({normalBuffer:r.texture,resolutionScale:i})).enabled=!1,e.addPass(t))),[e,r,t]},[A,f,o,u,c,h,m,l,i]);(0,b.useEffect)(()=>x?.setSize(v.width,v.height),[x,v]),(0,O.useFrame)((e,t)=>{if(s){let e=f.autoClear;f.autoClear=n,u&&!n&&f.clearStencil(),x.render(t),f.autoClear=e}},s?a:0);let E=(0,b.useRef)(null);(0,b.useLayoutEffect)(()=>{let e=[],t=E.current.__r3f;if(t&&x){let r=t.children;for(let t=0;t{for(let t of e)x?.removePass(t);D&&(D.enabled=!1),w&&(w.enabled=!1)}},[x,e,A,D,w]),(0,b.useEffect)(()=>{let e=f.toneMapping;return f.toneMapping=F.NoToneMapping,()=>{f.toneMapping=e}},[f]);let C=(0,b.useMemo)(()=>({composer:x,normalPass:D,downSamplingPass:w,resolutionScale:i,camera:A,scene:m}),[x,D,w,i,A,m]);return(0,b.useImperativeHandle)(d,()=>x,[x]),(0,R.jsx)(rz.Provider,{value:C,children:(0,R.jsx)("group",{ref:E,children:e})})})),rQ=0,rY=new WeakMap,rW=(0,b.forwardRef)(function({blendFunction:e,worldFocusDistance:t,worldFocusRange:r,focusDistance:i,focusRange:s,focalLength:a,bokehScale:n,resolutionScale:o,resolutionX:l,resolutionY:u,width:c,height:h,target:d,depthTexture:f,...g},p){let{camera:v}=(0,b.useContext)(rz),m=null!=d,A=(0,b.useMemo)(()=>{let d=new ez(v,{blendFunction:e,worldFocusDistance:t,worldFocusRange:r,focusDistance:i,focusRange:s,focalLength:a,bokehScale:n,resolutionScale:o,resolutionX:l,resolutionY:u,width:c,height:h});return m&&(d.target=new F.Vector3),f&&d.setDepthTexture(f.texture,f.packing),d.maskPass.maskFunction=eI.MULTIPLY_RGB_SET_ALPHA,d},[v,e,t,r,i,s,a,n,o,l,u,c,h,m,f]);return(0,b.useEffect)(()=>()=>{A.dispose()},[A]),(0,R.jsx)("primitive",{...g,ref:p,object:A,target:d})}),rK=(a=eE,n={blendFunction:0},function({blendFunction:e=n?.blendFunction,opacity:t=n?.opacity,...r}){let i=rY.get(a);if(!i){let e=`@react-three/postprocessing/${a.name}-${rQ++}`;(0,G.extend)({[e]:a}),rY.set(a,i=e)}let s=(0,L.useThree)(e=>e.camera),o=b.default.useMemo(()=>[...n?.args??[],...r.args??[{...n,...r}]],[JSON.stringify(r)]);return(0,R.jsx)(i,{camera:s,"blendMode-blendFunction":e,"blendMode-opacity-value":t,...r,args:o})});var rX=((s=rX||{})[s.Linear=0]="Linear",s[s.Radial=1]="Radial",s[s.MirroredLinear=2]="MirroredLinear",s);e.s(["Bloom",0,rK,"EffectComposer",0,rV],79877)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0ht_jt035hxfz.js b/build/.next/static/chunks/0ht_jt035hxfz.js new file mode 100644 index 0000000..8fffd5f --- /dev/null +++ b/build/.next/static/chunks/0ht_jt035hxfz.js @@ -0,0 +1,14 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,32322,(t,e,i)=>{t.e,function(t){"use strict";function e(t){var e,i,n,o;for(i=1,n=arguments.length;itypeof L&&L&&L.Mixin){t=z(t)?t:[t];for(var e=0;e0?Math.floor(t):Math.ceil(t)};function F(t,e,i){return t instanceof D?t:z(t)?new D(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new D(t.x,t.y):new D(t,e,i)}function W(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=U(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=U(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=q(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=q(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lngtypeof orientation||tA("mobile"),tT=!window.PointerEvent&&window.MSPointerEvent,tM=!!(window.PointerEvent||tT),tz="ontouchstart"in window||!!window.TouchEvent,tC=!window.L_NO_TOUCH&&(tz||tM),tS=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,tZ=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",v,e),window.removeEventListener("testPassiveEventSupport",v,e)}catch(t){}return t}(),tE=!!document.createElement("canvas").getContext,tk=!!(document.createElementNS&&ti("svg").createSVGRect),tO=!!tk&&((u=document.createElement("div")).innerHTML="","http://www.w3.org/2000/svg"===(u.firstChild&&u.firstChild.namespaceURI)),tI=!tk&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function tA(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var tB={ie:ts,ielt9:tr,edge:ta,webkit:th,android:tl,android23:tu,androidStock:td,opera:t_,chrome:tp,gecko:tm,safari:tf,phantom:tg,opera12:tv,win:ty,ie3d:tx,webkit3d:tw,gecko3d:tb,any3d:tP,mobile:tL,mobileWebkit:tL&&th,mobileWebkit3d:tL&&tw,msPointer:tT,pointer:tM,touch:tC,touchNative:tz,mobileOpera:tL&&t_,mobileGecko:tL&&tm,retina:tS,passiveEvents:tZ,canvas:tE,svg:tk,vml:tI,inlineSvg:tO,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},tR=tB.msPointer?"MSPointerDown":"pointerdown",tN=tB.msPointer?"MSPointerMove":"pointermove",tj=tB.msPointer?"MSPointerUp":"pointerup",tD=tB.msPointer?"MSPointerCancel":"pointercancel",tH={touchstart:tR,touchmove:tN,touchend:tj,touchcancel:tD},tF={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&eb(e),tK(t,e)},touchmove:tK,touchend:tK,touchcancel:tK},tW={},tU=!1;function tV(t){tW[t.pointerId]=t}function tq(t){tW[t.pointerId]&&(tW[t.pointerId]=t)}function tG(t){delete tW[t.pointerId]}function tK(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],tW)e.touches.push(tW[i]);e.changedTouches=[e],t(e)}}var tY=ee(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),tJ=ee(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),tX="webkitTransition"===tJ||"OTransition"===tJ?tJ+"End":"transitionend";function t$(t){return"string"==typeof t?document.getElementById(t):t}function tQ(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function t0(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function t1(t){var e=t.parentNode;e&&e.removeChild(t)}function t2(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function t3(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function t5(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function t4(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=t7(t);return i.length>0&&RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function t8(t,e){if(void 0!==t.classList)for(var i=w(e),n=0,o=i.length;n0?2*window.devicePixelRatio:1;function ez(t){return tB.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/eM:t.deltaY&&1===t.deltaMode?-(20*t.deltaY):t.deltaY&&2===t.deltaMode?-(60*t.deltaY):t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&32765>Math.abs(t.detail)?-(20*t.detail):t.detail?-(60*(t.detail/32765)):0}function eC(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var eS=j.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=eo(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=A(this._animate,this),this._step()},_step:function(t){var e=new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom))?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,q(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=F((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=F(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=U([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var l=s.subtract(a.getCenter()),u=a.extend(s).getSize().subtract(h);o.x+=l.x<0?-u.x:u.x,o.y+=l.y<0?-u.y:u.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var n=this.getSize(),o=i.divideBy(2).round(),s=n.divideBy(2).round(),r=o.subtract(s);return r.x||r.y?(t.animate&&t.pan?this.panBy(r):(t.pan&&this._rawPanBy(r),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(_(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:n})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=_(this._handleGeolocationResponse,this),n=_(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,n,t):navigator.geolocation.getCurrentPosition(i,n,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new G(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){var t;if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),t1(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(B(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)t1(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=t0("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return(this._checkIfLoaded(),this._lastCenter&&!this._moved())?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new V(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=q(t),i=F(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),l=U(this.project(a,n),this.project(r,n)).getSize(),u=tB.any3d?this.options.zoomSnap:1,c=h.x/l.x,d=h.y/l.y,_=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(_,n),u&&(n=u/100*Math.round(n/(u/100)),n=e?Math.ceil(n/u)*u:Math.floor(n/u)*u),Math.max(o,Math.min(s,n))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new D(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new W(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(K(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(F(t),e)},layerPointToLatLng:function(t){var e=F(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(K(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(K(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(q(t))},distance:function(t,e){return this.options.crs.distance(K(t),K(e))},containerPointToLayerPoint:function(t){return F(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return F(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(F(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(K(t)))},mouseEventToContainerPoint:function(t){return eT(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=t$(t);if(e){if(e._leaflet_id)throw Error("Map container is already initialized.")}else throw Error("Map container not found.");ed(e,"scroll",this._onScroll,this),this._containerId=m(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&tB.any3d,t8(t,"leaflet-container"+(tB.touch?" leaflet-touch":"")+(tB.retina?" leaflet-retina":"")+(tB.ielt9?" leaflet-oldie":"")+(tB.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=tQ(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),en(this._mapPane,new D(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(t8(t.markerPane,"leaflet-zoom-hide"),t8(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){en(this._mapPane,new D(0,0));var n=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var o=this._zoom!==e;this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return B(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){en(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[m(this._container)]=this;var e=t?ep:ed;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),tB.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){B(this._resizeRequest),this._resizeRequest=A(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[m(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)&&(o&&!eC(s,t)||(n.push(i),o)))break;if(s===this._container)break;s=s.parentNode}return!n.length&&!r&&!o&&this.listens(e,!0)&&(n=[this]),n},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&eh(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}var s=this._findEventTargets(t,i);if(n){for(var r=[],a=0;a=Math.abs(r.x)&&1>=Math.abs(r.y)?t:this.unproject(n.add(r),e)},_limitOffset:function(t,e){if(!e)return t;var i=this.getPixelBounds(),n=new W(i.min.add(t),i.max.add(t));return t.add(this._getBoundsOffset(n,e))},_getBoundsOffset:function(t,e,i){var n=U(this.project(e.getNorthEast(),i),this.project(e.getSouthWest(),i)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return new D(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,e){return t+e>0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=tB.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){t9(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return(!0===(e&&e.animate)||!!this.getSize().contains(i))&&(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=t0("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var e=this._proxy.style[tY];ei(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[tY]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){t1(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();ei(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return(!0===i.animate||!!this.getSize().contains(o))&&(A(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this),!0)},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,t8(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(_(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&t9(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}}),eE=R.extend({options:{position:"topright"},initialize:function(t){b(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return t8(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(t1(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),ek=function(t){return new eE(t)};eZ.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=t0("div",e+"control-container",this._container);function n(n,o){t[n+o]=t0("div",e+n+" "+e+o,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)t1(this._controlCorners[t]);t1(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var eO=eE.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(m(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i=document.createElement("div");return i.innerHTML='",i.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+m(this),n),this._layerControlInputs.push(e),e.layerId=m(t.layer),ed(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("span");return i.appendChild(s),s.appendChild(e),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,ed(t,"click",eb),this.expand();var e=this;setTimeout(function(){ep(t,"click",eb),e._preventClick=!1})}}),eI=eE.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=t0("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=t0("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),ew(s),ed(s,"click",eP),ed(s,"click",o,this),ed(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";t9(this._zoomInButton,e),t9(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(t8(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(t8(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});eZ.mergeOptions({zoomControl:!0}),eZ.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new eI,this.addControl(this.zoomControl))});var eA=eE.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=t0("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=t0("div",e,i)),t.imperial&&(this._iScale=t0("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),eB=eE.extend({options:{position:"bottomright",prefix:''+(tB.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){b(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=t0("div","leaflet-control-attribution"),ew(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});eZ.mergeOptions({attributionControl:!0}),eZ.addInitHook(function(){this.options.attributionControl&&new eB().addTo(this)}),eE.Layers=eO,eE.Zoom=eI,eE.Scale=eA,eE.Attribution=eB,ek.layers=function(t,e,i){return new eO(t,e,i)},ek.zoom=function(t){return new eI(t)},ek.scale=function(t){return new eA(t)},ek.attribution=function(t){return new eB(t)};var eR=R.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}});eR.addTo=function(t,e){return t.addHandler(e,this),this};var eN=tB.touch?"touchstart mousedown":"mousedown",ej=j.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){b(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(ed(this._dragStartTarget,eN,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ej._dragging===this&&this.finishDrag(!0),ep(this._dragStartTarget,eN,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!(!this._enabled||(this._moved=!1,t4(this._element,"leaflet-zoom-anim")))){if(t.touches&&1!==t.touches.length){ej._dragging===this&&this.finishDrag();return}if(!ej._dragging&&!t.shiftKey&&(1===t.which||1===t.button||t.touches)&&(ej._dragging=this,this._preventOutline&&eh(this._element),er(),i(),!this._moving)){this.fire("down");var e=t.touches?t.touches[0]:t,n=eu(this._element);this._startPoint=new D(e.clientX,e.clientY),this._startPos=eo(this._element),this._parentScale=ec(n);var o="mousedown"===t.type;ed(document,o?"mousemove":"touchmove",this._onMove,this),ed(document,o?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(t){if(this._enabled){if(t.touches&&t.touches.length>1){this._moved=!0;return}var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new D(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)typeof Uint8Array?Uint8Array:Array)(i);n[0]=n[i-1]=1,function t(e,i,n,o,s){var r,a,h,l=0;for(a=o+1;a<=s-1;a++)(h=eK(e[a],e[o],e[s],!0))>l&&(r=a,l=h);l>n&&(i[r]=1,t(e,i,n,o,r),t(e,i,n,r,s))}(t,n,e,0,i-1);var o,s=[];for(o=0;oe&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function eK(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,l=a*a+h*h;return l>0&&((o=((t.x-s)*a+(t.y-r)*h)/l)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new D(s,r)}function eY(t){return!z(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function eJ(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),eY(t)}function eX(t,e){if(!t||0===t.length)throw Error("latlngs not passed");eY(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var i,n,o,s,r,a,h,l,u=K([0,0]),c=q(t);c.getNorthWest().distanceTo(c.getSouthWest())*c.getNorthEast().distanceTo(c.getNorthWest())<1700&&(u=eF(t));var d=t.length,_=[];for(i=0;in){h=(s-n)/o,l=[a.x-h*(a.x-r.x),a.y-h*(a.y-r.y)];break}var m=e.unproject(F(l));return K([m.lat+u.lat,m.lng+u.lng])}var e$={project:function(t){return new D(t.lng,t.lat)},unproject:function(t){return new G(t.y,t.x)},bounds:new W([-180,-90],[180,90])},eQ={R:6378137,R_MINOR:6356752.314245179,bounds:new W([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,o=this.R_MINOR/i,s=Math.sqrt(1-o*o),r=s*Math.sin(n);return n=-i*Math.log(Math.max(Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2),1e-10)),new D(t.lng*e*i,n)},unproject:function(t){for(var e,i=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,l=.1;h<15&&Math.abs(l)>1e-7;h++)l=Math.PI/2-2*Math.atan(r*(e=Math.pow((1-(e=s*Math.sin(a)))/(1+e),s/2)))-a,a+=l;return new G(a*i,t.x*i/n)}},e0=e({},J,{code:"EPSG:3395",projection:eQ,transformation:Q(c=.5/(Math.PI*eQ.R),.5,-c,.5)}),e1=e({},J,{code:"EPSG:4326",projection:e$,transformation:Q(1/180,1,-1/180,.5)}),e2=e({},Y,{projection:e$,transformation:Q(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});Y.Earth=J,Y.EPSG3395=e0,Y.EPSG3857=tt,Y.EPSG900913=te,Y.EPSG4326=e1,Y.Simple=e2;var e3=j.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[m(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[m(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",function(){e.off(i,this)},this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});eZ.include({addLayer:function(t){if(!t._layerAdd)throw Error("The provided object is not a Layer.");var e=m(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=m(t);return this._layers[e]&&(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null),this},hasLayer:function(t){return m(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){t=t?z(t)?t:[t]:[];for(var e=0,i=t.length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()=2&&e[0]instanceof G&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){io.prototype._setLatLngs.call(this,t),eY(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return eY(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new D(e,e);if(t=new W(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip){this._parts=this._rings;return}for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||io.prototype._containsPoint.call(this,t,!0)}}),ir=e4.extend({initialize:function(t,e){b(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=z(t)?t:t.features;if(o){for(e=0,i=o.length;e0&&o.push(o[0].slice()),o}function i_(t,i){return t.feature?e({},t.feature,{geometry:i}):ip(i)}function ip(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}var im={toGeoJSON:function(t){return i_(this,{type:"Point",coordinates:ic(this.getLatLng(),t)})}};function ig(t,e){return new ir(t,e)}e7.include(im),ii.include(im),ie.include(im),io.include({toGeoJSON:function(t){var e=!eY(this._latlngs),i=id(this._latlngs,+!!e,!1,t);return i_(this,{type:(e?"Multi":"")+"LineString",coordinates:i})}}),is.include({toGeoJSON:function(t){var e=!eY(this._latlngs),i=e&&!eY(this._latlngs[0]),n=id(this._latlngs,i?2:+!!e,!0,t);return e||(n=[n]),i_(this,{type:(i?"Multi":"")+"Polygon",coordinates:n})}}),e5.include({toMultiPoint:function(t){var e=[];return this.eachLayer(function(i){e.push(i.toGeoJSON(t).geometry.coordinates)}),i_(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(t){var e=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===e)return this.toMultiPoint(t);var i="GeometryCollection"===e,n=[];return(this.eachLayer(function(e){if(e.toGeoJSON){var o=e.toGeoJSON(t);if(i)n.push(o.geometry);else{var s=ip(o);"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}}),i)?i_(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var iv=e3.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,i){this._url=t,this._bounds=q(e),b(this,i)},onAdd:function(){!this._image&&(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(t8(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){t1(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&t3(this._image),this},bringToBack:function(){return this._map&&t5(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=q(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,e=this._image=t?this._url:t0("img");if(t8(e,"leaflet-image-layer"),this._zoomAnimated&&t8(e,"leaflet-zoom-animated"),this.options.className&&t8(e,this.options.className),e.onselectstart=v,e.onmousemove=v,e.onload=_(this.fire,this,"load"),e.onerror=_(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t){this._url=e.src;return}e.src=this._url,e.alt=this.options.alt},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;ei(this._image,i,e)},_reset:function(){var t=this._image,e=new W(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();en(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){et(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),iy=iv.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,e=this._image=t?this._url:t0("video");if(t8(e,"leaflet-image-layer"),this._zoomAnimated&&t8(e,"leaflet-zoom-animated"),this.options.className&&t8(e,this.options.className),e.onselectstart=v,e.onmousemove=v,e.onloadeddata=_(this.fire,this,"load"),t){for(var i=e.getElementsByTagName("source"),n=[],o=0;o0?n:[e.src];return}z(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var s=0;so?(e.height=o+"px",t8(t,s)):t9(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();en(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning){this._autopanning=!1;return}var t=this._map,e=parseInt(tQ(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new D(this._containerLeft,-i-this._containerBottom);o._add(eo(this._container));var s=t.layerPointToContainerPoint(o),r=F(this.options.autoPanPadding),a=F(this.options.autoPanPaddingTopLeft||r),h=F(this.options.autoPanPaddingBottomRight||r),l=t.getSize(),u=0,c=0;s.x+n+h.x>l.x&&(u=s.x+n-l.x+h.x),s.x-u-a.x<0&&(u=s.x-a.x),s.y+i+h.y>l.y&&(c=s.y+i-l.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(u||c)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([u,c]))}},_getAnchor:function(){return F(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});eZ.mergeOptions({closePopupOnClick:!0}),eZ.include({openPopup:function(t,e,i){return this._initOverlay(ib,t,e,i).openOn(this),this},closePopup:function(t){return t=arguments.length?t:this._popup,t&&t.close(),this}}),e3.include({bindPopup:function(t,e){return this._popup=this._initOverlay(ib,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof e4||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){eP(t);var e=t.layer||t.target;if(this._popup._source===e&&!(e instanceof it))return void(this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng));this._popup._source=e,this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var iP=iw.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){iw.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){iw.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=iw.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=t0("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+m(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,l=o.offsetHeight,u=F(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=l):"bottom"===a?(e=h/2,i=0):("center"===a?e=h/2:"right"===a?e=0:"left"===a?e=h:r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new D(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];if(h&&h.active){h.retain=!0;continue}h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)return void this._setView(t,i);for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var _=new D(d,c);if(_.z=this._tileZoom,this._isValidTile(_)){var p=this._tiles[this._tileCoordsToKey(_)];p?p.current=!0:r.push(_)}}if(r.sort(function(t,e){return t.distanceTo(s)-e.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return q(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new V(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new D(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(t1(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){t8(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=v,t.onmousemove=v,tB.ielt9&&this.options.opacity<1&&et(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),_(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&A(_(this._tileReady,this,t,null,o)),en(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(et(i.el,0),B(this._fadeFrame),this._fadeFrame=A(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(t8(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),tB.ielt9||!this._map._fadeAnimated?A(this._pruneTiles,this):setTimeout(_(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new D(this._wrapX?g(t.x,this._wrapX):t.x,this._wrapY?g(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new W(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),iM=iT.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=b(this,e)).detectRetina&&tB.retina&&e.maxZoom>0?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return ed(i,"load",_(this._tileOnLoad,this,e,i)),ed(i,"error",_(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var i={r:tB.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=n),i["-y"]=n}return M(this._url,e(i,this.options))},_tileOnLoad:function(t,e){tB.ielt9?setTimeout(_(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom,i=this.options.zoomReverse,n=this.options.zoomOffset;return i&&(t=e-t),t+n},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=v,e.onerror=v,!e.complete)){e.src=S;var i=this._tiles[t].coords;t1(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",S),iT.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==S))return iT.prototype._tileReady.call(this,t,e,i)}});function iz(t,e){return new iM(t,e)}var iC=iM.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var n=e({},this.defaultWmsParams);for(var o in i)o in this.options||(n[o]=i[o]);var s=(i=b(this,i)).detectRetina&&tB.retina?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,iM.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=U(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===e1?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=iM.prototype.getTileUrl.call(this,t);return a+P(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}});iM.WMS=iC,iz.wms=function(t,e){return new iC(t,e)};var iS=e3.extend({options:{padding:.1},initialize:function(t){b(this,t),m(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),t8(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));tB.any3d?ei(this._container,s,i):en(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new W(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),iZ=iS.extend({options:{tolerance:0},getEvents:function(){var t=iS.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){iS.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");ed(t,"mousemove",this._onMouseMove,this),ed(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),ed(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){B(this._redrawRequest),delete this._ctx,t1(this._container),ep(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){iS.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=tB.retina?2:1;en(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",tB.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){iS.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[m(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[m(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),iO=tB.vml?ik:ti,iI=iS.extend({_initContainer:function(){this._container=iO("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=iO("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){t1(this._container),ep(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){iS.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),en(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=iO("path");t.options.className&&t8(e,t.options.className),t.options.interactive&&t8(e,"leaflet-interactive"),this._updateStyle(t),this._layers[m(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){t1(t._path),t.removeInteractiveTarget(t._path),delete this._layers[m(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,tn(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n=Math.max(Math.round(t._radiusY),1)||i,o="a"+i+","+n+" 0 1,0 ",s=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+o+2*i+",0 "+o+-(2*i)+",0 ";this._setPath(t,s)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){t3(t._path)},_bringToBack:function(t){t5(t._path)}});function iA(t){return tB.svg||tB.vml?new iI(t):null}tB.vml&&iI.include({_initContainer:function(){this._container=t0("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(iS.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=ik("shape");t8(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=ik("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[m(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;t1(e),t.removeInteractiveTarget(e),delete this._layers[m(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=ik("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=z(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=ik("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){t3(t._container)},_bringToBack:function(t){t5(t._container)}}),eZ.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&iE(t)||iA(t)}});var iB=is.extend({initialize:function(t,e){is.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=q(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});iI.create=iO,iI.pointsToPath=tn,ir.geometryToLayer=ia,ir.coordsToLatLng=il,ir.coordsToLatLngs=iu,ir.latLngToCoords=ic,ir.latLngsToCoords=id,ir.getFeature=i_,ir.asFeature=ip,eZ.mergeOptions({boxZoom:!0});var iR=eR.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){ed(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){ep(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){t1(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),i(),er(),this._startPoint=this._map.mouseEventToContainerPoint(t),ed(document,{contextmenu:eP,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=t0("div","leaflet-zoom-box",this._container),t8(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new W(this._point,this._startPoint),i=e.getSize();en(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(t1(this._box),t9(this._container,"leaflet-crosshair")),n(),ea(),ep(document,{contextmenu:eP,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(_(this._resetState,this),0);var e=new V(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});eZ.addInitHook("addHandler","boxZoom",iR),eZ.mergeOptions({doubleClickZoom:!0});var iN=eR.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});eZ.addInitHook("addHandler","doubleClickZoom",iN),eZ.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var ij=eR.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ej(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}t8(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){t9(this._map._container,"leaflet-grab"),t9(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=q(this._map.options.maxBounds);this._offsetLimit=U(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?o:-o))-e;this._delta=0,this._startTime=null,s&&("center"===t.options.scrollWheelZoom?t.setZoom(e+s):t.setZoomAround(this._lastMousePos,e+s))}});eZ.addInitHook("addHandler","scrollWheelZoom",iH),eZ.mergeOptions({tapHold:tB.touchNative&&tB.safari&&tB.mobile,tapTolerance:15});var iF=eR.extend({addHooks:function(){ed(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){ep(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new D(e.clientX,e.clientY),this._holdTimeout=setTimeout(_(function(){this._cancel(),this._isTapValid()&&(ed(document,"touchend",eb),ed(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))},this),600),ed(document,"touchend touchcancel contextmenu",this._cancel,this),ed(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){ep(document,"touchend",eb),ep(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),ep(document,"touchend touchcancel contextmenu",this._cancel,this),ep(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new D(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});eZ.addInitHook("addHandler","tapHold",iF),eZ.mergeOptions({touchZoom:tB.touch,bounceAtZoomLimits:!0});var iW=eR.extend({addHooks:function(){t8(this._map._container,"leaflet-touch-zoom"),ed(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){t9(this._map._container,"leaflet-touch-zoom"),ep(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),ed(document,"touchmove",this._onTouchMove,this),ed(document,"touchend touchcancel",this._onTouchEnd,this),eb(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),o=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(o,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&o>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===o)return}else{var s=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===o&&0===s.x&&0===s.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),B(this._animRequest);var r=_(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=A(r,this,!0),eb(t)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,B(this._animRequest),ep(document,"touchmove",this._onTouchMove,this),ep(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}});eZ.addInitHook("addHandler","touchZoom",iW),eZ.BoxZoom=iR,eZ.DoubleClickZoom=iN,eZ.Drag=ij,eZ.Keyboard=iD,eZ.ScrollWheelZoom=iH,eZ.TapHold=iF,eZ.TouchZoom=iW,t.Bounds=W,t.Browser=tB,t.CRS=Y,t.Canvas=iZ,t.Circle=ii,t.CircleMarker=ie,t.Class=R,t.Control=eE,t.DivIcon=iL,t.DivOverlay=iw,t.DomEvent={__proto__:null,on:ed,off:ep,stopPropagation:ey,disableScrollPropagation:ex,disableClickPropagation:ew,preventDefault:eb,stop:eP,getPropagationPath:eL,getMousePosition:eT,getWheelDelta:ez,isExternalTarget:eC,addListener:ed,removeListener:ep},t.DomUtil={__proto__:null,TRANSFORM:tY,TRANSITION:tJ,TRANSITION_END:tX,get:t$,getStyle:tQ,create:t0,remove:t1,empty:t2,toFront:t3,toBack:t5,hasClass:t4,addClass:t8,removeClass:t9,setClass:t6,getClass:t7,setOpacity:et,testProp:ee,setTransform:ei,setPosition:en,getPosition:eo,get disableTextSelection(){return i},get enableTextSelection(){return n},disableImageDrag:er,enableImageDrag:ea,preventOutline:eh,restoreOutline:el,getSizedParentNode:eu,getScale:ec},t.Draggable=ej,t.Evented=j,t.FeatureGroup=e4,t.GeoJSON=ir,t.GridLayer=iT,t.Handler=eR,t.Icon=e8,t.ImageOverlay=iv,t.LatLng=G,t.LatLngBounds=V,t.Layer=e3,t.LayerGroup=e5,t.LineUtil={__proto__:null,simplify:eW,pointToSegmentDistance:eU,closestPointOnSegment:function(t,e,i){return eK(t,e,i)},clipSegment:eV,_getEdgeIntersection:eq,_getBitCode:eG,_sqClosestPointOnSegment:eK,isFlat:eY,_flat:eJ,polylineCenter:eX},t.Map=eZ,t.Marker=e7,t.Mixin={Events:N},t.Path=it,t.Point=D,t.PolyUtil={__proto__:null,clipPolygon:eD,polygonCenter:eH,centroid:eF},t.Polygon=is,t.Polyline=io,t.Popup=ib,t.PosAnimation=eS,t.Projection={__proto__:null,LonLat:e$,Mercator:eQ,SphericalMercator:X},t.Rectangle=iB,t.Renderer=iS,t.SVG=iI,t.SVGOverlay=ix,t.TileLayer=iM,t.Tooltip=iP,t.Transformation=$,t.Util={__proto__:null,extend:e,create:d,bind:_,get lastId(){return p},stamp:m,throttle:f,wrapNum:g,falseFn:v,formatNum:y,trim:x,splitWords:w,setOptions:b,getParamString:P,template:M,isArray:z,indexOf:C,emptyImageUrl:S,requestFn:O,cancelFn:I,requestAnimFrame:A,cancelAnimFrame:B},t.VideoOverlay=iy,t.bind=_,t.bounds=U,t.canvas=iE,t.circle=function(t,e,i){return new ii(t,e,i)},t.circleMarker=function(t,e){return new ie(t,e)},t.control=ek,t.divIcon=function(t){return new iL(t)},t.extend=e,t.featureGroup=function(t,e){return new e4(t,e)},t.geoJSON=ig,t.geoJson=ig,t.gridLayer=function(t){return new iT(t)},t.icon=function(t){return new e8(t)},t.imageOverlay=function(t,e,i){return new iv(t,e,i)},t.latLng=K,t.latLngBounds=q,t.layerGroup=function(t,e){return new e5(t,e)},t.map=function(t,e){return new eZ(t,e)},t.marker=function(t,e){return new e7(t,e)},t.point=F,t.polygon=function(t,e){return new is(t,e)},t.polyline=function(t,e){return new io(t,e)},t.popup=function(t,e){return new ib(t,e)},t.rectangle=function(t,e){return new iB(t,e)},t.setOptions=b,t.stamp=m,t.svg=iA,t.svgOverlay=function(t,e,i){return new ix(t,e,i)},t.tileLayer=iz,t.tooltip=function(t,e){return new iP(t,e)},t.transformation=Q,t.version="1.9.4",t.videoOverlay=function(t,e,i){return new iy(t,e,i)};var iU=window.L;t.noConflict=function(){return window.L=iU,this},window.L=t}(i)},13958,t=>{"use strict";var e,i,n,o,s,r,a,h=t.i(43476),l=t.i(9409),u=t.i(71645),c=t.i(32322);let d=(0,u.createContext)(null);function _(){let t=(0,u.use)(d);if(null==t)throw Error("No context provided: useLeafletContext() can only be used in a descendant of ");return t}let p=(0,u.forwardRef)(function({bounds:t,boundsOptions:e,center:i,children:n,className:o,id:s,placeholder:r,style:a,whenReady:h,zoom:l,..._},p){let[m]=(0,u.useState)({className:o,id:s,style:a}),[f,g]=(0,u.useState)(null),v=(0,u.useRef)(void 0);(0,u.useImperativeHandle)(p,()=>f?.map??null,[f]);let y=(0,u.useCallback)(n=>{if(null!==n&&!v.current){let o=new c.Map(n,_);v.current=o,null!=i&&null!=l?o.setView(i,l):null!=t&&o.fitBounds(t,e),null!=h&&o.whenReady(h),g(Object.freeze({__version:1,map:o}))}},[]);(0,u.useEffect)(()=>()=>{f?.map.remove()},[f]);let x=f?u.default.createElement(d,{value:f},n):r??null;return u.default.createElement("div",{...m,ref:y},x)});function m(t,e,i){return Object.freeze({instance:t,context:e,container:i})}function f(t,e){return null==e?function(e,i){let n=(0,u.useRef)(void 0);return n.current||(n.current=t(e,i)),n}:function(i,n){let o=(0,u.useRef)(void 0);o.current||(o.current=t(i,n));let s=(0,u.useRef)(i),{instance:r}=o.current;return(0,u.useEffect)(function(){s.current!==i&&(e(r,i,s.current),s.current=i)},[r,i,e]),o}}var g=t.i(74080);function v(t){return(0,u.forwardRef)(function(e,i){let{instance:n}=t(e).current;return(0,u.useImperativeHandle)(i,()=>n),null})}function y(t,e){let i=(0,u.useRef)(e);(0,u.useEffect)(function(){e!==i.current&&null!=t.attributionControl&&(null!=i.current&&t.attributionControl.removeAttribution(i.current),null!=e&&t.attributionControl.addAttribution(e)),i.current=e},[t,e])}function x(t,e){let i=(0,u.useRef)(void 0);(0,u.useEffect)(function(){return null!=e&&t.instance.on(e),i.current=e,function(){null!=i.current&&t.instance.off(i.current),i.current=null}},[t,e])}function w(t,e){let i=t.pane??e.pane;return i?{...t,pane:i}:t}function b(t){return function(e){var i;let n=_(),o=t(w(e,n),n);return y(n.map,e.attribution),x(o.current,e.eventHandlers),i=o.current,(0,u.useEffect)(function(){return(n.layerContainer??n.map).addLayer(i.instance),function(){n.layerContainer?.removeLayer(i.instance),n.map.removeLayer(i.instance)}},[n,i]),o}}let P=(e=b(f(function({position:t,...e},i){var n;let o=new c.Marker(t,e);return m(o,(n={overlayContainer:o},Object.freeze({...i,...n})))},function(t,e,i){e.position!==i.position&&t.setLatLng(e.position),null!=e.icon&&e.icon!==i.icon&&t.setIcon(e.icon),null!=e.zIndexOffset&&e.zIndexOffset!==i.zIndexOffset&&t.setZIndexOffset(e.zIndexOffset),null!=e.opacity&&e.opacity!==i.opacity&&t.setOpacity(e.opacity),null!=t.dragging&&e.draggable!==i.draggable&&(!0===e.draggable?t.dragging.enable():t.dragging.disable())})),(0,u.forwardRef)(function(t,i){let{instance:n,context:o}=e(t).current;(0,u.useImperativeHandle)(i,()=>n);let{children:s}=t;return null==s?null:u.default.createElement(d,{value:o},s)})),T=(i=function(t,e){return m(new c.Popup(t,e.overlayContainer),e)},n=function(t,e,{position:i},n){(0,u.useEffect)(function(){let{instance:o}=t;function s(t){t.popup===o&&(o.update(),n(!0))}function r(t){t.popup===o&&n(!1)}return e.map.on({popupopen:s,popupclose:r}),null==e.overlayContainer?(null!=i&&o.setLatLng(i),o.openOn(e.map)):e.overlayContainer.bindPopup(o),function(){e.map.off({popupopen:s,popupclose:r}),e.overlayContainer?.unbindPopup(),e.map.removeLayer(o)}},[t,e,n,i])},o=f(i),s=function(t,e){let i=_(),s=o(w(t,i),i);return y(i.map,t.attribution),x(s.current,t.eventHandlers),n(s.current,i,t,e),s},(0,u.forwardRef)(function(t,e){let[i,n]=(0,u.useState)(!1),{instance:o}=s(t,n).current;(0,u.useImperativeHandle)(e,()=>o),(0,u.useEffect)(function(){i&&o.update()},[o,i,t.children]);let r=o._contentNode;return r?(0,g.createPortal)(t.children,r):null})),M=v(b(f(function({url:t,...e},i){return m(new c.TileLayer(t,w(e,i)),i)},function(t,e,i){!function(t,e,i){let{opacity:n,zIndex:o}=e;null!=n&&n!==i.opacity&&t.setOpacity(n),null!=o&&o!==i.zIndex&&t.setZIndex(o)}(t,e,i);let{url:n}=e;null!=n&&n!==i.url&&t.setUrl(n)}))),z=(r=function(t){return new c.Control.Zoom(t)},v((a=f(function(t,e){return m(r(t),e)}),function(t){let e=_(),i=a(t,e),{instance:n}=i.current,o=(0,u.useRef)(t.position),{position:s}=t;return(0,u.useEffect)(function(){return n.addTo(e.map),function(){n.remove()}},[e.map,n]),(0,u.useEffect)(function(){null!=s&&s!==o.current&&(n.setPosition(s),o.current=s)},[n,s]),i}))),C=[{id:"hyderabad",city:"Hyderabad",name:"Doormile Headquarters",shortLabel:"Hyderabad HQ",position:[17.4484,78.3573],isHeadquarters:!0,address:["5th Floor, Vision Ultima,","Street No.3, Jayabheri Enclave,","Gachibowli, Hyderabad,","Telangana 500032"]},{id:"bengaluru",city:"Bengaluru",name:"Bengaluru Hub",shortLabel:"Bengaluru Hub",position:[12.9929351,77.6988599],address:["C612, 6th Floor,","Trifecta Starlight, ITPL Road,","Garudacharapalya, Mahadevapura,","Bangalore 560048,","Karnataka, India"]},{id:"coimbatore",city:"Coimbatore",name:"Coimbatore Hub",shortLabel:"Coimbatore Hub",position:[11.0191,76.9883],address:["Mayflower Valencia,","Near Nava India Bus Stop,","Avinashi Road, Udayampalayam,","Tamil Nadu 641003"]}],S=C.find(t=>t.isHeadquarters)??C[0],Z=S.position;function E(t){return t?c.default.divIcon({className:l.default.markerIconHq,html:` + + + `,iconSize:[40,52],iconAnchor:[20,52],popupAnchor:[0,-52]}):c.default.divIcon({className:l.default.markerIcon,html:` + + `,iconSize:[30,40],iconAnchor:[15,40],popupAnchor:[0,-40]})}function k({focus:t,markerRefs:e}){let i=_().map,n=(0,u.useRef)(!1);return(0,u.useEffect)(()=>{let t=i.getContainer(),e=0,n=new ResizeObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(()=>i.invalidateSize())});return n.observe(t),()=>{cancelAnimationFrame(e),n.disconnect()}},[i]),(0,u.useEffect)(()=>{if(!t)return;let o=C.find(e=>e.id===t.id);if(!o)return;let s=()=>e.current[o.id]?.openPopup(),r=[o.position[0]+.022,o.position[1]];if(!n.current){n.current=!0,i.invalidateSize(),i.setView(r,13,{animate:!1});let t=requestAnimationFrame(s);return()=>cancelAnimationFrame(t)}return i.flyTo(r,13,{duration:1.1}),i.once("moveend",s),()=>{i.off("moveend",s)}},[i,t,e]),null}t.s(["default",0,function(){let t=(0,u.useMemo)(()=>E(!1),[]),e=(0,u.useMemo)(()=>E(!0),[]),i=(0,u.useRef)({}),[n,o]=(0,u.useState)({id:S.id,nonce:0}),s=(0,u.useCallback)(t=>{o(e=>({id:t,nonce:(e?.nonce??0)+1}))},[]),[r,a]=(0,u.useState)(null);(0,u.useEffect)(()=>{null===r&&n?.id&&i.current[n.id]?.openPopup()},[r,n]);let[c,d]=(0,u.useState)("loading"),_=(0,u.useRef)(!1),m=(0,u.useRef)(0),f=(0,u.useCallback)(()=>{_.current=!0,d("ready")},[]),g=(0,u.useCallback)(()=>{m.current+=1,!_.current&&m.current>=6&&d("error")},[]);return(0,u.useEffect)(()=>{let t=window.setTimeout(()=>{_.current||d("error")},12e3);return()=>window.clearTimeout(t)},[]),(0,h.jsxs)("div",{className:l.default.root,role:"region","aria-label":"Map of Doormile office locations",children:[(0,h.jsx)("ul",{className:l.default.srOnly,children:C.map(t=>(0,h.jsxs)("li",{children:[t.name," — latitude ",t.position[0],", longitude ",t.position[1]]},t.id))}),(0,h.jsx)("div",{className:l.default.controls,role:"group","aria-label":"Jump to an office location",children:C.map(t=>{let e=n?.id===t.id;return(0,h.jsx)("button",{type:"button",className:`${l.default.controlBtn} ${e?l.default.controlBtnActive:""} ${t.isHeadquarters?l.default.controlBtnHq:""}`,"aria-pressed":e,"aria-label":`Show ${t.name} on the map`,onClick:()=>s(t.id),children:t.city},t.id)})}),(0,h.jsxs)(p,{className:l.default.map,center:Z,zoom:13,scrollWheelZoom:!1,zoomControl:!1,attributionControl:!1,worldCopyJump:!0,children:[(0,h.jsx)(z,{position:"bottomleft"}),(0,h.jsx)(M,{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",attribution:'Imagery © Esri, Maxar, Earthstar Geographics & the GIS User Community',maxZoom:19,updateWhenIdle:!0,keepBuffer:2,eventHandlers:{load:f,tileerror:g}}),C.map(o=>{let r=n?.id===o.id;return(0,h.jsx)(P,{position:o.position,icon:o.isHeadquarters?e:t,zIndexOffset:1e3*!!o.isHeadquarters,keyboard:!0,title:o.name,alt:o.name,eventHandlers:{click:()=>s(o.id),mouseover:t=>{a(o.id),t.target.openPopup()},mouseout:t=>{a(null),n?.id!==o.id&&t.target.closePopup()}},ref:t=>{t&&(i.current[o.id]=t)},children:(0,h.jsx)(T,{className:l.default.popup,autoPan:r,autoPanPadding:[25,25],closeButton:!1,minWidth:240,maxWidth:290,children:(0,h.jsxs)("div",{className:l.default.card,children:[(0,h.jsxs)("div",{className:l.default.cardHeader,children:[(0,h.jsx)("span",{className:l.default.cardIcon,"aria-hidden":"true",children:"📍"}),(0,h.jsxs)("h4",{className:l.default.cardTitle,children:[o.city," Office"]})]}),(0,h.jsx)("div",{className:l.default.cardBody,children:o.address.map((t,e)=>(0,h.jsx)("p",{className:l.default.addressLine,children:t},e))})]})})},o.id)}),(0,h.jsx)(k,{focus:n,markerRefs:i})]}),"error"===c&&(0,h.jsxs)("div",{className:l.default.errorOverlay,role:"alert",children:[(0,h.jsx)("p",{className:l.default.errorTitle,children:"Map could not be loaded"}),(0,h.jsx)("p",{className:l.default.errorText,children:"Please check your connection. Our offices are located in:"}),(0,h.jsx)("ul",{className:l.default.errorList,children:C.map(t=>(0,h.jsx)("li",{children:t.name},t.id))})]})]})}],13958)},42391,t=>{t.n(t.i(13958))}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0iz6a6sot7a-u.js b/build/.next/static/chunks/0iz6a6sot7a-u.js new file mode 100644 index 0000000..93e4eb8 --- /dev/null +++ b/build/.next/static/chunks/0iz6a6sot7a-u.js @@ -0,0 +1,9 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12305,e=>{e.v({divider:"TheDoormileWay-module__xq3n3a__divider",eyebrow:"TheDoormileWay-module__xq3n3a__eyebrow",header:"TheDoormileWay-module__xq3n3a__header",heading:"TheDoormileWay-module__xq3n3a__heading",headingWrap:"TheDoormileWay-module__xq3n3a__headingWrap",kicker:"TheDoormileWay-module__xq3n3a__kicker"})},24911,e=>{"use strict";var t=e.i(43476),n=e.i(2018),a=e.i(12305);e.s(["default",0,function(){return(0,t.jsxs)("div",{className:"elementor-61",children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + /* Fix oversized h2 font size */ + .elementor-element-9363070 .logico-title { + font-size: clamp(32px, 4.5vw, 64px) !important; + line-height: 1.1 !important; + word-wrap: break-word !important; + overflow-wrap: break-word !important; + } + `}}),(0,t.jsx)("div",{className:"elementor-element elementor-element-88745f4 e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"88745f4","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"e-con-inner",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-343b363 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"343b363","data-element_type":"container","data-e-type":"container",children:[(0,t.jsxs)("div",{className:a.default.header,children:[(0,t.jsxs)(n.ScrollReveal,{delay:.05,duration:.7,yOffset:20,className:a.default.kicker,children:[(0,t.jsx)("p",{className:a.default.eyebrow,children:"/ Doormile Approach /"}),(0,t.jsx)("hr",{className:a.default.divider})]}),(0,t.jsx)(n.ScrollReveal,{delay:.15,duration:.85,yOffset:30,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-1cc335a elementor-widget elementor-widget-logico_heading","data-id":"1cc335a","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",style:{WebkitTextStroke:"4px #c01227",color:"#fff",fontWeight:800},children:"The Doormile Way"})})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-4c3e632 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"4c3e632","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)(n.ScrollReveal,{delay:.2,duration:.8,yOffset:25,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-5ba6bbf e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5ba6bbf","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-9363070 elementor-widget elementor-widget-logico_heading","data-id":"9363070","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("h2",{className:"logico-title",children:" Smarter, Faster, Connected Logistics"})})})})}),(0,t.jsx)(n.ScrollReveal,{delay:.3,duration:.8,yOffset:25,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-e7609a5 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"e7609a5","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-c134b96 elementor-widget elementor-widget-text-editor","data-id":"c134b96","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsxs)("div",{className:"elementor-widget-container",children:[(0,t.jsx)("p",{children:(0,t.jsxs)("strong",{children:["We connect first mile and last mile into one seamless system, reducing delays and improving efficiency. With real-time tracking and digital workflows,",(0,t.jsx)("br",{})," every delivery is faster, reliable, and fully transparent."]})}),(0,t.jsx)("p",{children:"Seamless logistics powered by real-time tracking, digital processes, and reliable delivery execution."})]})})})})]})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-5041fcc e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"5041fcc","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"e-con-inner",children:(0,t.jsxs)(n.StaggerChildren,{stagger:.12,duration:.7,yOffset:35,className:"elementor-element elementor-element-2d7c3ee e-con-full e-grid cut-corner-no sticky-container-off e-con e-child",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-d11b050 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"d11b050","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-3a6f50f elementor-view-default elementor-widget elementor-widget-icon","data-id":"3a6f50f","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-icon-wrapper",children:(0,t.jsx)("div",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-light-delivery"})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-1025248 elementor-widget elementor-widget-logico_heading","data-id":"1025248","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"End-to-End Protection"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-c7c19bd elementor-widget elementor-widget-text-editor","data-id":"c7c19bd","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"End-to-end visibility ensures every shipment stays secure and on schedule."})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-2c82e54 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"2c82e54","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-f51735e elementor-view-default elementor-widget elementor-widget-icon","data-id":"f51735e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-icon-wrapper",children:(0,t.jsx)("div",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-light-container"})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-c682633 elementor-widget elementor-widget-logico_heading","data-id":"c682633","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Proactive delay prevention"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-74d14e3 elementor-widget elementor-widget-text-editor","data-id":"74d14e3","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"Real-time monitoring helps prevent delays before they impact deliveries."})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-08b9b20 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"08b9b20","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-612c459 elementor-view-default elementor-widget elementor-widget-icon","data-id":"612c459","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-icon-wrapper",children:(0,t.jsx)("div",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-light-directions"})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-aa49275 elementor-widget elementor-widget-logico_heading","data-id":"aa49275","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Single owner, single promise"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-74cfdf7 elementor-widget elementor-widget-text-editor","data-id":"74cfdf7","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"One unified system manages the entire delivery process seamlessly."})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-04989ee e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"04989ee","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-11a657e elementor-view-default elementor-widget elementor-widget-icon","data-id":"11a657e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-icon-wrapper",children:(0,t.jsx)("div",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-light-storage"})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-b317d31 elementor-widget elementor-widget-logico_heading","data-id":"b317d31","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Dynamic AI-driven adjustments"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-8fe5662 elementor-widget elementor-widget-text-editor","data-id":"8fe5662","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"AI-powered routing adapts instantly to improve speed and efficiency."})})})]})]})})})]})}])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0nunuemu9ietr.js b/build/.next/static/chunks/0nunuemu9ietr.js new file mode 100644 index 0000000..6e758c1 --- /dev/null +++ b/build/.next/static/chunks/0nunuemu9ietr.js @@ -0,0 +1,265 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12305,e=>{e.v({divider:"TheDoormileWay-module__xq3n3a__divider",eyebrow:"TheDoormileWay-module__xq3n3a__eyebrow",header:"TheDoormileWay-module__xq3n3a__header",heading:"TheDoormileWay-module__xq3n3a__heading",headingWrap:"TheDoormileWay-module__xq3n3a__headingWrap",kicker:"TheDoormileWay-module__xq3n3a__kicker"})},24911,e=>{"use strict";var t=e.i(43476),i=e.i(2018),n=e.i(12305);e.s(["default",0,function(){return(0,t.jsxs)("div",{className:"elementor-61",children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + /* Fix oversized h2 font size */ + .elementor-element-9363070 .logico-title { + font-size: clamp(32px, 4.5vw, 64px) !important; + line-height: 1.1 !important; + word-wrap: break-word !important; + overflow-wrap: break-word !important; + } + `}}),(0,t.jsx)("div",{className:"elementor-element elementor-element-88745f4 e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"88745f4","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"e-con-inner",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-343b363 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"343b363","data-element_type":"container","data-e-type":"container",children:[(0,t.jsxs)("div",{className:n.default.header,children:[(0,t.jsxs)(i.ScrollReveal,{delay:.05,duration:.7,yOffset:20,className:n.default.kicker,children:[(0,t.jsx)("p",{className:n.default.eyebrow,children:"/ Doormile Approach /"}),(0,t.jsx)("hr",{className:n.default.divider})]}),(0,t.jsx)(i.ScrollReveal,{delay:.15,duration:.85,yOffset:30,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-1cc335a elementor-widget elementor-widget-logico_heading","data-id":"1cc335a","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",style:{WebkitTextStroke:"4px #c01227",color:"#fff",fontWeight:800},children:"The Doormile Way"})})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-4c3e632 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"4c3e632","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)(i.ScrollReveal,{delay:.2,duration:.8,yOffset:25,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-5ba6bbf e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5ba6bbf","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-9363070 elementor-widget elementor-widget-logico_heading","data-id":"9363070","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("h2",{className:"logico-title",children:" Smarter, Faster, Connected Logistics"})})})})}),(0,t.jsx)(i.ScrollReveal,{delay:.3,duration:.8,yOffset:25,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-e7609a5 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"e7609a5","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-c134b96 elementor-widget elementor-widget-text-editor","data-id":"c134b96","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsxs)("div",{className:"elementor-widget-container",children:[(0,t.jsx)("p",{children:(0,t.jsxs)("strong",{children:["We connect first mile and last mile into one seamless system, reducing delays and improving efficiency. With real-time tracking and digital workflows,",(0,t.jsx)("br",{})," every delivery is faster, reliable, and fully transparent."]})}),(0,t.jsx)("p",{children:"Seamless logistics powered by real-time tracking, digital processes, and reliable delivery execution."})]})})})})]})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-5041fcc e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent","data-id":"5041fcc","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"e-con-inner",children:(0,t.jsxs)(i.StaggerChildren,{stagger:.12,duration:.7,yOffset:35,className:"elementor-element elementor-element-2d7c3ee e-con-full e-grid cut-corner-no sticky-container-off e-con e-child",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-d11b050 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"d11b050","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-3a6f50f elementor-view-default elementor-widget elementor-widget-icon","data-id":"3a6f50f","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-icon-wrapper",children:(0,t.jsx)("div",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-light-delivery"})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-1025248 elementor-widget elementor-widget-logico_heading","data-id":"1025248","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"End-to-End Protection"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-c7c19bd elementor-widget elementor-widget-text-editor","data-id":"c7c19bd","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"End-to-end visibility ensures every shipment stays secure and on schedule."})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-2c82e54 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"2c82e54","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-f51735e elementor-view-default elementor-widget elementor-widget-icon","data-id":"f51735e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-icon-wrapper",children:(0,t.jsx)("div",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-light-container"})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-c682633 elementor-widget elementor-widget-logico_heading","data-id":"c682633","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Proactive delay prevention"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-74d14e3 elementor-widget elementor-widget-text-editor","data-id":"74d14e3","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"Real-time monitoring helps prevent delays before they impact deliveries."})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-08b9b20 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"08b9b20","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-612c459 elementor-view-default elementor-widget elementor-widget-icon","data-id":"612c459","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-icon-wrapper",children:(0,t.jsx)("div",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-light-directions"})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-aa49275 elementor-widget elementor-widget-logico_heading","data-id":"aa49275","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Single owner, single promise"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-74cfdf7 elementor-widget elementor-widget-text-editor","data-id":"74cfdf7","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"One unified system manages the entire delivery process seamlessly."})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-04989ee e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"04989ee","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-11a657e elementor-view-default elementor-widget elementor-widget-icon","data-id":"11a657e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-icon-wrapper",children:(0,t.jsx)("div",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-light-storage"})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-b317d31 elementor-widget elementor-widget-logico_heading","data-id":"b317d31","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Dynamic AI-driven adjustments"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-8fe5662 elementor-widget elementor-widget-text-editor","data-id":"8fe5662","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"AI-powered routing adapts instantly to improve speed and efficiency."})})})]})]})})})]})}])},97677,e=>{"use strict";var t=e.i(43476),i=e.i(71645),n=e.i(89970),l=e.i(2018),a=e.i(74080);e.s(["default",0,function(){(0,a.preload)("/images/home-bg-1.webp",{as:"image"});let[e,o]=(0,i.useState)(0),d=(0,i.useRef)(null);(0,i.useEffect)(()=>{let e=setInterval(()=>{o(e=>+(0===e))},7e3);return()=>clearInterval(e)},[]);let r=e=>{o(e)};return(0,i.useEffect)(()=>{if(!d.current)return;let e=d.current.querySelector(".owl-item.active");if(!e)return;let t=e.querySelector(".heading-content"),i=e.querySelector(".text-content");t&&i&&(n.default.killTweensOf([t,i]),n.default.fromTo(t,{y:55,opacity:0,scale:.95},{y:0,opacity:1,scale:1,duration:1.1,ease:"power4.out"}),n.default.fromTo(i,{y:30,opacity:0},{y:0,opacity:1,duration:.95,ease:"power3.out",delay:.25}))},[e]),(0,t.jsxs)("div",{className:"elementor-element elementor-element-741f56c e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"741f56c","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + /* Fluid responsive font size override for hero headings */ + .logico-content-slider-widget .content-slider-item-heading { + font-size: clamp(30px, 5.5vw, 80px) !important; + word-wrap: break-word !important; + overflow-wrap: break-word !important; + white-space: normal !important; + } + + /* Prevent horizontal overflow on slider and stage containers */ + .logico-content-slider-widget, + .content-slider-wrapper, + .content-slider-container, + .content-slider, + .owl-stage-outer, + .owl-stage, + .owl-item, + .slider-item, + .slide-content, + .slide-content-inner { + width: 100% !important; + max-width: 100% !important; + box-sizing: border-box !important; + } + + /* Force word wrapping and responsive spacing for heading and text */ + .logico-content-slider-widget .content-slider-item-heading, + .logico-content-slider-widget .content-slider-item-heading span, + .logico-content-slider-widget .content-slider-item-heading .heading-content { + white-space: normal !important; + word-wrap: break-word !important; + overflow-wrap: break-word !important; + max-width: 100% !important; + } + + .logico-content-slider-widget .content-slider-item-heading { + padding-left: 15px !important; + padding-right: 15px !important; + } + + .logico-content-slider-widget .text-content { + width: 100% !important; + max-width: min(780px, 100%) !important; + box-sizing: border-box !important; + padding-left: 15px !important; + padding-right: 15px !important; + } + + /* Larger, more readable hero subtitle on large/4K screens */ + .logico-content-slider-widget .content-slider-item-text p { + font-size: clamp(16px, 1.35vw, 23px) !important; + line-height: 1.65 !important; + } + + /* Responsive slider heights */ + .logico-content-slider-widget .owl-stage-outer { + height: 800px !important; + } + + @media (max-width: 840px) { + .logico-content-slider-widget .owl-stage-outer { + height: 600px !important; + } + } + + @media (max-width: 480px) { + .logico-content-slider-widget .owl-stage-outer { + height: 520px !important; + margin-top: 7px !important; + } + } + + @media (max-width: 660px) { + .logico-content-slider-widget .content-slider-item-heading { + font-size: clamp(20px, 7vw, 32px) !important; + } + } + + /* Slide counter ("01/02" + progress line): site.css pushes it ~80px in + from the right and only 9px off the bottom on mobile, so it sits in an + awkward spot. Pin it cleanly to the bottom-right with even padding. */ + @media (max-width: 767px) { + .elementor-61 .elementor-element.elementor-element-6c7cbcb .slider-footer { + text-align: right !important; + margin-bottom: 24px !important; + } + .elementor-61 .elementor-element.elementor-element-6c7cbcb .slider-footer .slider-pagination { + justify-content: flex-end !important; + margin-left: 22px !important; + margin-right: 22px !important; + } + .elementor-61 .elementor-element.elementor-element-6c7cbcb .slider-progress-wrapper { + margin-right: 0 !important; + } + /* The prev/next arrows sit in the bottom-right corner and overlap the + counter once it's pinned right. Hide them on mobile — slides + auto-rotate and the counter shows progress. */ + .elementor-61 .elementor-element.elementor-element-6c7cbcb .owl-nav { + display: none !important; + } + } + `}}),(0,t.jsx)("div",{className:"elementor-element elementor-element-6c7cbcb elementor-widget elementor-widget-logico_content_slider","data-id":"6c7cbcb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_content_slider.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-content-slider-widget",children:(0,t.jsx)("div",{className:"content-slider-wrapper",children:(0,t.jsx)("div",{className:"content-slider-container",children:(0,t.jsxs)("div",{className:"content-slider owl-carousel owl-theme nav-view-vertical nav-h-position-right nav-v-position-bottom owl-loaded owl-drag",ref:d,children:[(0,t.jsx)("div",{className:"owl-stage-outer",style:{position:"relative",overflow:"hidden"},children:(0,t.jsxs)("div",{className:"owl-stage",style:{position:"relative",width:"100%",height:"100%"},children:[(0,t.jsx)("div",{className:`owl-item ${0===e?"active":""}`,style:{position:"relative",width:"100%",opacity:+(0===e),visibility:0===e?"visible":"hidden",transition:"opacity 0.8s ease-in-out, visibility 0.8s ease-in-out",zIndex:0===e?2:1},children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-3264830 slide-style-standard",style:{backgroundImage:"url('/images/home-bg-1.webp')",backgroundPosition:"center center",backgroundRepeat:"no-repeat",backgroundSize:"cover"},children:(0,t.jsx)("div",{className:"slide-content",style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",width:"100%",height:"100%"},children:(0,t.jsxs)("div",{className:"slide-content-inner",style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",textAlign:"center",margin:"0 auto",width:"100%",maxWidth:"1000px"},children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",style:{textAlign:"center",width:"100%"},children:(0,t.jsxs)("span",{className:"heading-content block",children:["ONE CONNECTED SYSTEM.",(0,t.jsx)("br",{}),(0,t.jsx)(l.ShimmerText,{className:"font-extrabold",children:"ONE PROMISE KEPT."})]})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",style:{display:"flex",justifyContent:"center",width:"100%",marginTop:"23px"},children:(0,t.jsx)("div",{className:"text-content",style:{textAlign:"center",maxWidth:"680px",margin:"0 auto"},children:(0,t.jsx)("p",{children:"Stop managing three separate logistics services. Doormile unifies first, mid and last mile into a single intelligent delivery system powered by MileTruth™ AI."})})})]})})})}),(0,t.jsx)("div",{className:`owl-item ${1===e?"active":""}`,style:{position:"absolute",top:0,left:0,width:"100%",opacity:+(1===e),visibility:1===e?"visible":"hidden",transition:"opacity 0.8s ease-in-out, visibility 0.8s ease-in-out",zIndex:1===e?2:1},children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-6867061 slide-style-standard",style:{backgroundImage:"url('/images/home-bg-1.webp')",backgroundPosition:"center center",backgroundRepeat:"no-repeat",backgroundSize:"cover"},children:(0,t.jsx)("div",{className:"slide-content",style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",width:"100%",height:"100%"},children:(0,t.jsxs)("div",{className:"slide-content-inner",style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",textAlign:"center",margin:"0 auto",width:"100%",maxWidth:"1000px"},children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",style:{textAlign:"center",width:"100%"},children:(0,t.jsxs)("span",{className:"heading-content block",children:[(0,t.jsx)(l.ShimmerText,{className:"font-extrabold",children:"AI-POWERED"}),(0,t.jsx)("br",{}),"CONNECTED LOGISTICS"]})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",style:{display:"flex",justifyContent:"center",width:"100%",marginTop:"23px"},children:(0,t.jsx)("div",{className:"text-content",style:{textAlign:"center",maxWidth:"680px",margin:"0 auto"},children:(0,t.jsx)("p",{children:"Behind every successful business is a strong supply chain. Logistics turns plans into reality."})})})]})})})})]})}),(0,t.jsxs)("div",{className:"owl-nav",children:[(0,t.jsx)("button",{type:"button",className:"owl-next",onClick:()=>o(e=>+(0===e)),"aria-label":"Next",style:{cursor:"pointer",border:"none",outline:"none"}}),(0,t.jsx)("button",{type:"button",className:"owl-prev",onClick:()=>o(e=>+(0===e)),"aria-label":"Previous",style:{cursor:"pointer",border:"none",outline:"none"}})]}),(0,t.jsx)("div",{className:"slider-footer slider-footer-position-after slider-footer-width-full slider-footer-view-inside",children:(0,t.jsx)("div",{className:"slider-footer-content",children:(0,t.jsxs)("div",{className:"slider-pagination",style:{display:"flex",justifyContent:"flex-end",alignItems:"center"},children:[(0,t.jsxs)("div",{className:"slider-progress-wrapper",style:{marginRight:"35px",display:"flex",flexDirection:"column",alignItems:"flex-start"},children:[(0,t.jsxs)("div",{style:{fontSize:"16px",fontWeight:600,color:"#FFFFFF",marginBottom:"4px"},children:[(0,t.jsx)("span",{className:"slider-progress-current",children:0===e?"01":"02"})," / ",(0,t.jsx)("span",{className:"slider-progress-all",style:{opacity:.6},children:"02"})]}),(0,t.jsx)("div",{style:{width:"80px",height:"2px",background:"rgba(255, 255, 255, 0.2)",position:"relative",borderRadius:"1px",overflow:"hidden"},children:(0,t.jsx)("div",{style:{position:"absolute",left:0===e?"0":"50%",width:"50%",height:"100%",background:"#c01227",transition:"left 0.3s ease"}})})]}),(0,t.jsxs)("div",{className:"owl-dots owl-dots-6c7cbcb",style:{display:"none"},children:[(0,t.jsx)("button",{type:"button",className:`owl-dot ${0===e?"active":""}`,onClick:()=>r(0),children:(0,t.jsx)("span",{})}),(0,t.jsx)("button",{type:"button",className:`owl-dot ${1===e?"active":""}`,onClick:()=>r(1),children:(0,t.jsx)("span",{})})]})]})})})]})})})})})})]})}])},58140,e=>{"use strict";var t=e.i(43476),i=e.i(22016),n=e.i(2018);e.s(["default",0,function(){return(0,t.jsxs)(n.StaggerChildren,{stagger:.15,duration:.7,yOffset:30,className:"elementor-element elementor-element-9b26234 e-con-full e-grid cut-corner-no sticky-container-off e-con e-parent",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-ca6bc63 e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"ca6bc63","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',children:(0,t.jsxs)("div",{className:"e-con-inner",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-cc55905 elementor-widget-divider--view-line elementor-widget elementor-widget-divider","data-id":"cc55905","data-element_type":"widget","data-e-type":"widget","data-widget_type":"divider.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-divider",children:(0,t.jsx)("span",{className:"elementor-divider-separator"})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-3fb5639 elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"3fb5639","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"logico-title",children:[(0,t.jsx)(n.CountUp,{end:99.2,decimals:1,suffix:"%",duration:2.2})," ",(0,t.jsx)("br",{}),(0,t.jsx)("span",{style:{fontSize:"20px"},children:"On-Time Delivery"})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-94c3ff1 elementor-widget elementor-widget-logico_button","data-id":"94c3ff1","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"button-widget",children:(0,t.jsx)("div",{className:"button-container",children:(0,t.jsxs)(i.default,{href:"/solutions",className:"logico-small-button",children:["Connected Miles",(0,t.jsx)("svg",{viewBox:"0 0 13 20",children:(0,t.jsx)("polyline",{points:"0.5 19.5 3 19.5 12.5 10 3 0.5"})})]})})})})})]})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-4c0903b e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"4c0903b","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',children:(0,t.jsxs)("div",{className:"e-con-inner",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-c8adeeb elementor-widget-divider--view-line elementor-widget elementor-widget-divider","data-id":"c8adeeb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"divider.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-divider",children:(0,t.jsx)("span",{className:"elementor-divider-separator"})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-5e64d7b elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"5e64d7b","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"logico-title",children:[(0,t.jsx)(n.CountUp,{end:3,suffix:"x Faster",duration:1.8})," ",(0,t.jsx)("br",{}),(0,t.jsx)("span",{style:{fontSize:"20px"},children:"Faster Response"})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-20db156 elementor-widget elementor-widget-logico_button","data-id":"20db156","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"button-widget",children:(0,t.jsx)("div",{className:"button-container",children:(0,t.jsxs)(i.default,{href:"/miletruth",className:"logico-small-button",children:["MileTruth™ AI",(0,t.jsx)("svg",{viewBox:"0 0 13 20",children:(0,t.jsx)("polyline",{points:"0.5 19.5 3 19.5 12.5 10 3 0.5"})})]})})})})})]})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-f003242 e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"f003242","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',children:(0,t.jsxs)("div",{className:"e-con-inner",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-d58ef3c elementor-widget-divider--view-line elementor-widget elementor-widget-divider","data-id":"d58ef3c","data-element_type":"widget","data-e-type":"widget","data-widget_type":"divider.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-divider",children:(0,t.jsx)("span",{className:"elementor-divider-separator"})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-d00253e elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"d00253e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"logico-title",children:[(0,t.jsx)(n.CountUp,{end:40,suffix:"%",duration:2})," ",(0,t.jsx)("br",{}),(0,t.jsx)("span",{style:{fontSize:"20px"},children:"Cost Reduction"})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-3481e66 elementor-widget elementor-widget-logico_button","data-id":"3481e66","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"button-widget",children:(0,t.jsx)("div",{className:"button-container",children:(0,t.jsxs)(i.default,{href:"/solutions",className:"logico-small-button",children:["SLA Protection",(0,t.jsx)("svg",{viewBox:"0 0 13 20",children:(0,t.jsx)("polyline",{points:"0.5 19.5 3 19.5 12.5 10 3 0.5"})})]})})})})})]})})]})}])},36854,e=>{"use strict";var t=e.i(43476),i=e.i(2018);e.s(["default",0,function(){return(0,t.jsx)("div",{className:"elementor-element elementor-element-30fd9d1 e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent section-shrink-custom","data-id":"30fd9d1","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"e-con-inner",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-03db5d7 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"03db5d7","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)(i.ScrollReveal,{delay:.05,duration:.8,yOffset:20,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-3fe4ca3 elementor-widget elementor-widget-logico_heading","data-id":"3fe4ca3","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"/ The Problem /"})})})}),(0,t.jsx)(i.ScrollReveal,{delay:.15,duration:.85,yOffset:30,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-ffd1f7d elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"ffd1f7d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("h2",{className:"logico-title",children:"Fragmented Logistics is Broken"})})})}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-e09c20e e-grid e-con-full cut-corner-no sticky-container-off e-con e-child","data-id":"e09c20e","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)(i.ScrollReveal,{delay:.1,duration:.7,yOffset:35,className:"w-full",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-81a7690 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box","data-id":"81a7690","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon-box.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-icon-box-wrapper",children:[(0,t.jsx)("div",{className:"elementor-icon-box-icon",children:(0,t.jsx)("span",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-air-delivery"})})}),(0,t.jsx)("div",{className:"elementor-icon-box-content",children:(0,t.jsxs)("div",{className:"elementor-icon-box-title",children:[(0,t.jsx)("p",{className:"logico-title",style:{fontSize:"42px",fontWeight:800,color:"#111111",marginBottom:0,textAlign:"left",lineHeight:"1.1"},children:"73%"}),(0,t.jsx)("span",{style:{textAlign:"left",display:"block",fontSize:"16px",fontWeight:600,color:"#111111",marginTop:"8px",lineHeight:"1.4"},children:"of delays happen at handoffs"})]})})]})})})}),(0,t.jsx)(i.ScrollReveal,{delay:.2,duration:.7,yOffset:35,className:"w-full",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-0f4aa27 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box","data-id":"0f4aa27","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon-box.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-icon-box-wrapper",children:[(0,t.jsx)("div",{className:"elementor-icon-box-icon",children:(0,t.jsx)("span",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-container"})})}),(0,t.jsx)("div",{className:"elementor-icon-box-content",children:(0,t.jsxs)("div",{className:"elementor-icon-box-title",children:[(0,t.jsx)("p",{className:"logico-title",style:{fontSize:"42px",fontWeight:800,color:"#111111",marginBottom:0,textAlign:"left",lineHeight:"1.1"},children:"3x"}),(0,t.jsx)("span",{style:{textAlign:"left",display:"block",fontSize:"16px",fontWeight:600,color:"#111111",marginTop:"8px",lineHeight:"1.4"},children:"higher risk of missed SLAs"})]})})]})})})}),(0,t.jsx)(i.ScrollReveal,{delay:.3,duration:.7,yOffset:35,className:"w-full",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-6cfd203 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box","data-id":"6cfd203","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon-box.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-icon-box-wrapper",children:[(0,t.jsx)("div",{className:"elementor-icon-box-icon",children:(0,t.jsx)("span",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-trolley"})})}),(0,t.jsx)("div",{className:"elementor-icon-box-content",children:(0,t.jsxs)("div",{className:"elementor-icon-box-title",children:[(0,t.jsx)("p",{className:"logico-title",style:{fontSize:"42px",fontWeight:800,color:"#111111",marginBottom:0,textAlign:"left",lineHeight:"1.1"},children:"2.5x"}),(0,t.jsx)("span",{style:{textAlign:"left",display:"block",fontSize:"16px",fontWeight:600,color:"#111111",marginTop:"8px",lineHeight:"1.4"},children:"more time spent on coordination"})]})})]})})})}),(0,t.jsx)(i.ScrollReveal,{delay:.4,duration:.7,yOffset:35,className:"w-full",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-0d343e1 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box","data-id":"0d343e1","data-element_type":"widget","data-e-type":"widget","data-widget_type":"icon-box.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-icon-box-wrapper",children:[(0,t.jsx)("div",{className:"elementor-icon-box-icon",children:(0,t.jsx)("span",{className:"elementor-icon",children:(0,t.jsx)("i",{"aria-hidden":"true",className:"fontello icon-supply-chain"})})}),(0,t.jsx)("div",{className:"elementor-icon-box-content",children:(0,t.jsxs)("div",{className:"elementor-icon-box-title",children:[(0,t.jsx)("p",{className:"logico-title",style:{fontSize:"42px",fontWeight:800,color:"#111111",marginBottom:0,textAlign:"left",lineHeight:"1.1"},children:"28%"}),(0,t.jsx)("span",{style:{textAlign:"left",display:"block",fontSize:"16px",fontWeight:600,color:"#111111",marginTop:"8px",lineHeight:"1.4"},children:"increase in operational costs"})]})})]})})})})]})]})})})}])},32693,e=>{"use strict";var t=e.i(43476),i=e.i(22016),n=e.i(57688),l=e.i(2018);e.s(["default",0,function(){return(0,t.jsxs)("div",{className:"elementor-element elementor-element-89a0ca1 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"89a0ca1","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + /* Ensure the inner content wrapper is responsive and never overflows */ + .elementor-element-fdb2e58 { + width: 100% !important; + max-width: 650px !important; + } + + /* Make heading font size fluid and responsive */ + .elementor-element-7500280 .logico-title { + font-size: clamp(26px, 3.5vw, 54px) !important; + line-height: 1.25em !important; + word-wrap: break-word !important; + overflow-wrap: break-word !important; + } + + /* Fix text colors for the dark background */ + .elementor-element-71c3e1d .logico-title { + color: #ffffff !important; + } + .elementor-element-71c3e1d p { + color: rgba(255, 255, 255, 0.85) !important; + } + + /* Make sure paragraphs are responsive on all screen widths */ + .elementor-element-165dfa5 { + width: 100% !important; + max-width: min(619px, 100%) !important; + } + .elementor-element-3888a1e { + width: 100% !important; + max-width: min(526px, 100%) !important; + } + + /* Sizing and identical padding on all 4 sides for Connected Logistics Image container */ + .elementor-element-99768ba .elementor-widget-container { + display: flex !important; + justify-content: center !important; + align-items: center !important; + padding: 40px !important; /* Identical gap on left, right, top, and bottom */ + box-sizing: border-box !important; + } + + .elementor-element-99768ba img.wp-image-4481 { + width: 100% !important; + max-width: 100% !important; /* Allow natural responsive scaling on desktop */ + height: auto !important; + object-fit: cover !important; + border-radius: 25px !important; /* Preserve 25px border radius */ + margin: 0 auto !important; + display: block !important; + } + + /* Desktop/Laptop (min-width: 1025px) column width and flex rules */ + @media (min-width: 1025px) { + .elementor-element-9ffed33 { + display: flex !important; + flex-direction: row !important; + flex-wrap: nowrap !important; + align-items: center !important; + } + + .elementor-element-96343ba, + .elementor-element-71c3e1d { + width: 50% !important; + max-width: 50% !important; + flex: 1 1 50% !important; + box-sizing: border-box !important; + } + } + + @media (max-width: 1024px) { + /* Force columns to stack vertically on mobile/tablet */ + .elementor-element-9ffed33 { + flex-direction: column !important; + align-items: stretch !important; + } + + /* Force both children to be full width */ + .elementor-element-96343ba, + .elementor-element-71c3e1d { + width: 100% !important; + max-width: 100% !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + + /* Force ScrollReveal wrapper div to span full width */ + .elementor-element-96343ba > div { + width: 100% !important; + height: auto !important; + } + + /* Show image at the bottom or top depending on order */ + .elementor-element-96343ba { + margin-top: 0px !important; + } + + /* Reduce padding bottom of the content section on tablet */ + .elementor-element-71c3e1d { + padding-bottom: 24px !important; + } + + /* Override desktop fixed widths on mobile/tablet */ + .elementor-element-165dfa5, + .elementor-element-3888a1e { + width: 100% !important; + max-width: 100% !important; + } + + /* Allow widget container to take 100% width on mobile/tablet */ + .elementor-element-99768ba { + width: 100% !important; + max-width: 100% !important; + } + + /* Tablet overrides */ + .elementor-element-99768ba .elementor-widget-container { + padding: 10px !important; + display: block !important; /* Disable flex centering layout on mobile/tablet */ + width: 100% !important; + } + + .elementor-element.elementor-element-99768ba .elementor-widget-container img.wp-image-4481 { + width: 100% !important; + max-width: 600px !important; /* allow up to 600px on tablet */ + border-radius: 25px !important; /* Explicitly keep 25px */ + } + } + + @media (max-width: 767px) { + /* Mobile overrides: let container take 100% width and image fill it */ + .elementor-element-99768ba { + width: 100% !important; + max-width: 100% !important; + } + + /* Eliminate extra gap under the content column on mobile */ + .elementor-element-71c3e1d { + padding-bottom: 12px !important; + } + + .elementor-element-99768ba .elementor-widget-container { + padding: 0px !important; /* Eliminate padding to maximize image width/height */ + display: block !important; /* Disable flex centering layout on mobile/tablet */ + width: 100% !important; + } + + .elementor-element.elementor-element-99768ba .elementor-widget-container img.wp-image-4481 { + width: 100% !important; + max-width: 100% !important; + height: auto !important; + object-fit: cover !important; + border-radius: 25px !important; /* Explicitly keep 25px */ + } + } + `}}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-9ffed33 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"9ffed33","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-96343ba e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"96343ba","data-element_type":"container",children:(0,t.jsx)(l.ScrollReveal,{delay:.1,duration:.9,yOffset:30,className:"w-full h-full",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-99768ba elementor-widget elementor-widget-image","data-id":"99768ba","data-element_type":"widget","data-e-type":"widget","data-widget_type":"image.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)(n.default,{fetchPriority:"high",priority:!0,width:578,height:790,src:"/images/home2-pic-3.webp",className:"attachment-full size-full wp-image-4481",alt:"Connected Logistics",style:{width:"100%",height:"auto",objectFit:"cover",borderRadius:"25px"}})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-71c3e1d e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"71c3e1d","data-element_type":"container","data-e-type":"container",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-fdb2e58 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"fdb2e58","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)(l.ScrollReveal,{delay:.1,duration:.8,yOffset:20,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-0136e6e elementor-widget elementor-widget-logico_heading","data-id":"0136e6e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"/ Connected Logistics /"})})})}),(0,t.jsx)(l.ScrollReveal,{delay:.2,duration:.85,yOffset:25,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-7500280 elementor-widget elementor-widget-logico_heading","data-id":"7500280","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("h2",{className:"logico-title",children:"Smart logistics solutions we deliver for modern supply chains"})})})}),(0,t.jsxs)(l.ScrollReveal,{delay:.25,duration:.8,yOffset:25,children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-4cc07a7 elementor-widget elementor-widget-logico_heading","data-id":"4cc07a7","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Real-Time Visibility"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-165dfa5 elementor-widget__width-initial elementor-widget elementor-widget-text-editor","data-id":"165dfa5","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"See every shipment, every vehicle, every handoff—live. No blind spots."})})})]}),(0,t.jsxs)(l.ScrollReveal,{delay:.35,duration:.8,yOffset:25,children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-da9d310 elementor-widget elementor-widget-logico_heading","data-id":"da9d310","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Dynamic Route Adjustment"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-3888a1e elementor-widget__width-initial elementor-widget elementor-widget-text-editor","data-id":"3888a1e","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"AI continuously optimizes routes based on traffic, weather, and real-world conditions."})})})]}),(0,t.jsxs)(l.ScrollReveal,{delay:.45,duration:.8,yOffset:25,children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-4cc07a7 elementor-widget elementor-widget-logico_heading","data-id":"4cc07a7","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Proactive Delay Prevention"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-165dfa5 elementor-widget__width-initial elementor-widget elementor-widget-text-editor","data-id":"165dfa5","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"Detect SLA risks hours before they become problems. Act, don't react."})})})]}),(0,t.jsxs)(l.ScrollReveal,{delay:.55,duration:.8,yOffset:25,children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-4cc07a7 elementor-widget elementor-widget-logico_heading","data-id":"4cc07a7","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Execution Intelligence"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-165dfa5 elementor-widget__width-initial elementor-widget elementor-widget-text-editor","data-id":"165dfa5","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"Learn from every delivery. Get smarter with every mile traveled."})})})]}),(0,t.jsx)(l.ScrollReveal,{delay:.65,duration:.8,yOffset:20,children:(0,t.jsx)("div",{className:"elementor-element elementor-element-c0a45e4 elementor-widget elementor-widget-logico_button","data-id":"c0a45e4","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_button.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"button-widget",children:(0,t.jsx)("div",{className:"button-container",children:(0,t.jsx)(l.Magnetic,{children:(0,t.jsx)(i.default,{href:"/solutions",className:"logico-alter-button",children:"Explore more"})})})})})})})]})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-0efc59e elementor-absolute elementor-widget elementor-widget-logico_block_decoration","data-id":"0efc59e","data-element_type":"widget","data-settings":'{"_position":"absolute"}',"data-widget_type":"logico_block_decoration.default",style:{position:"absolute"},children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"block-decoration animation-enable block-decoration-style-1",children:(0,t.jsx)("div",{className:"block-decoration-item"})})})})]})]})}])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0nzz4x75f.ixz.js b/build/.next/static/chunks/0nzz4x75f.ixz.js new file mode 100644 index 0000000..a3dc7c4 --- /dev/null +++ b/build/.next/static/chunks/0nzz4x75f.ixz.js @@ -0,0 +1,1199 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,61867,e=>{"use strict";var t=e.i(43476),i=e.i(71645),a=e.i(57688),r=e.i(89970),o=e.i(83495);r.default.registerPlugin(o.ScrollTrigger);let n=[{index:1,title:"Operational Visibility",desc:"Real-time tracking and centralized control provide complete visibility across every shipment, vehicle, and delivery milestone.",icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"2",y:"7",width:"16",height:"10",rx:"2",ry:"2"}),(0,t.jsx)("line",{x1:"22",y1:"11",x2:"22",y2:"13"}),(0,t.jsx)("line",{x1:"6",y1:"11",x2:"10",y2:"11"}),(0,t.jsx)("line",{x1:"6",y1:"13",x2:"12",y2:"13"})]})},{index:2,title:"Intelligent Routing",desc:"AI-powered route optimization reduces travel time, improves delivery accuracy, and maximizes fleet utilization.",icon:(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})})},{index:3,title:"EV-First Logistics",desc:"Purpose-built workflows for electric fleets improve battery efficiency, charging management, and sustainable operations.",icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M12 2v10"}),(0,t.jsx)("path",{d:"M18 8V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v2a4 4 0 0 0 4 4h4a4 4 0 0 0 4-4Z"}),(0,t.jsx)("path",{d:"M10 22v-6"}),(0,t.jsx)("path",{d:"M14 22v-6"})]})},{index:4,title:"Scalable Network",desc:"Flexible logistics infrastructure supports growth across cities, regions, and high-volume delivery operations without disruption.",icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 3.5 2 5.5a7 7 0 0 1-7 7h-3"}),(0,t.jsx)("path",{d:"M12 22V12"})]})}];e.s(["default",0,function(){let e=(0,i.useRef)(null),o=(0,i.useRef)(null),s=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let t=e.current,i=s.current,a=o.current;if(!t||!i||!a)return;let n=r.default.to(a,{y:"-=10",duration:4.5,ease:"sine.inOut",yoyo:!0,repeat:-1});return r.default.timeline({scrollTrigger:{trigger:t,start:"top 80%",toggleActions:"play none none none"}}).to(t.querySelector(".ev-logistic-kicker-widget"),{opacity:1,y:0,duration:.8,ease:"power3.out"}).to(t.querySelector(".ev-logistic-title-widget"),{y:0,opacity:1,duration:.85,ease:"power4.out"},"-=0.45").to(t.querySelectorAll(".ev-feature-card"),{opacity:1,y:0,duration:.6,stagger:.08,ease:"power3.out"},"-=0.6").fromTo(i,{opacity:0,scale:.95},{opacity:1,scale:1,duration:1,ease:"power4.out"},"-=0.8"),()=>{n.kill()}},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + /* Custom CSS Scoped to EV Logistics Section */ + .ev-logistic-section { + box-sizing: border-box !important; + background: #ffffff !important; + font-family: 'Manrope', sans-serif !important; + position: relative !important; + } + + .ev-logistic-header { + width: 100% !important; + max-width: 100% !important; + align-self: stretch !important; + margin-bottom: 48px !important; + display: block !important; + text-align: left !important; + } + + .ev-logistic-body-grid { + display: flex !important; + flex-direction: row !important; + align-items: center !important; + justify-content: space-between !important; + width: 100% !important; + gap: 3% !important; + } + + /* Left Column - Image column takes up 45% */ + .ev-logistic-image-col { + flex: 0 0 45% !important; + max-width: 45% !important; + display: flex !important; + align-items: center !important; + justify-content: flex-start !important; + position: relative !important; + min-height: auto !important; + margin: 0 !important; + } + + /* Branded glow spotlight halo behind the vehicle */ + .ev-logistic-image-glow { + position: absolute !important; + left: 50% !important; + top: 50% !important; + width: 80% !important; + height: 70% !important; + transform: translate(-50%, -50%) !important; + background: radial-gradient(circle, rgba(192, 18, 39, 0.05) 0%, rgba(192, 18, 39, 0.01) 55%, transparent 75%) !important; + filter: blur(54px) !important; + z-index: 0 !important; + pointer-events: none !important; + } + + /* Image wrapper scaling naturally inside its column container */ + .ev-logistic-image-wrapper { + width: 100% !important; + max-width: 100% !important; + display: flex !important; + align-items: center !important; + justify-content: flex-start !important; + overflow: visible !important; + position: relative !important; + transform: scale(1.15) !important; + transform-origin: left center !important; + margin-left: -80px !important; + } + + .ev-logistic-image-wrapper img { + width: 100% !important; + height: auto !important; + object-fit: contain !important; + filter: none !important; + will-change: transform !important; + } + + /* Right column - takes up 52% for grid cards */ + .ev-logistic-content-col { + flex: 0 0 52% !important; + max-width: 52% !important; + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + margin: 0 !important; + } + + .ev-logistic-kicker-widget { + opacity: 0; + transform: translateY(-12px); + will-change: transform, opacity; + } + + .ev-logistic-title-wrapper { + margin: 0 !important; + } + + .ev-logistic-title-widget { + opacity: 0; + transform: translateY(24px); + will-change: transform, opacity; + } + + .ev-logistic-title-widget > .elementor-widget-container { + margin: 0 !important; + padding: 0 !important; + } + + .ev-logistic-title-widget .logico-title { + margin: 0 !important; + text-align: left !important; + } + + /* Card Grid Layout */ + .ev-feature-grid { + display: grid !important; + grid-template-columns: repeat(2, 1fr) !important; + gap: 24px !important; + width: 100% !important; + } + + /* Premium Theme White Card */ + .ev-feature-card { + display: flex !important; + flex-direction: column !important; + background: #ffffff !important; + border: 1px solid rgba(17, 17, 17, 0.09) !important; + border-radius: 20px !important; + padding: 30px !important; + color: #555555 !important; + height: 100% !important; + box-sizing: border-box !important; + opacity: 0; + transform: translateY(20px); + will-change: transform, opacity; + transition: border-color 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), + box-shadow 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), + transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) !important; + box-shadow: 0 4px 24px rgba(17, 17, 17, 0.02) !important; + } + + .ev-feature-card:hover { + border-color: #c01227 !important; + box-shadow: 0 20px 40px rgba(192, 18, 39, 0.08), 0 4px 12px rgba(17, 17, 17, 0.03) !important; + transform: translateY(-8px) !important; + } + + /* Red Icon Wrapper */ + .ev-feature-icon-wrapper { + margin-bottom: 24px !important; + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + width: 54px !important; + height: 54px !important; + background: rgba(192, 18, 39, 0.06) !important; + border: 1px solid rgba(192, 18, 39, 0.18) !important; + border-radius: 50% !important; + color: #c01227 !important; + transition: all 0.3s ease !important; + } + + .ev-feature-card:hover .ev-feature-icon-wrapper { + background: rgba(192, 18, 39, 0.12) !important; + border-color: #c01227 !important; + transform: scale(1.1) !important; + box-shadow: 0 0 12px rgba(192, 18, 39, 0.15) !important; + } + + .ev-feature-icon-wrapper svg { + width: 24px !important; + height: 24px !important; + stroke: currentColor !important; + } + + /* Title & Description Inside Cards */ + .ev-feature-card-title { + font-family: 'Manrope', sans-serif !important; + font-size: 20px !important; + font-weight: 700 !important; + line-height: 1.3em !important; + color: #c01227 !important; + margin: 0 0 12px 0 !important; + text-transform: none !important; + } + + .ev-feature-card-desc { + font-family: 'Manrope', sans-serif !important; + font-size: 14px !important; + font-weight: 500 !important; + line-height: 1.6 !important; + color: #555555 !important; + margin: 0 !important; + } + + /* Responsiveness constraints */ + @media (max-width: 1024px) { + .ev-logistic-body-grid { + flex-direction: column !important; + gap: 50px !important; + } + + .ev-logistic-image-col { + flex: 1 1 100% !important; + max-width: 100% !important; + min-height: auto !important; + justify-content: center !important; + } + + .ev-logistic-image-wrapper { + max-width: 580px !important; + transform: none !important; + margin: 0 auto !important; + justify-content: center !important; + } + + .ev-logistic-content-col { + flex: 1 1 100% !important; + max-width: 100% !important; + } + + } + + @media (max-width: 768px) { + .ev-logistic-section { + --padding-left: 0px !important; + --padding-right: 0px !important; + padding-left: 0px !important; + padding-right: 0px !important; + box-sizing: border-box !important; + } + + .ev-logistic-section > .e-con-inner { + width: 100% !important; + max-width: 100% !important; + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: auto !important; + margin-right: auto !important; + box-sizing: border-box !important; + } + + .ev-logistic-section .elementor-element-343b363 { + --padding-left: 20px !important; + --padding-right: 20px !important; + padding-left: 20px !important; + padding-right: 20px !important; + width: 100% !important; + max-width: 100% !important; + box-sizing: border-box !important; + } + + .ev-logistic-body-grid { + width: 100% !important; + max-width: 100% !important; + align-items: stretch !important; + } + + .ev-logistic-content-col { + width: 100% !important; + max-width: 100% !important; + align-self: center !important; + } + + .ev-feature-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + width: 100% !important; + max-width: 100% !important; + } + + .ev-feature-card { + width: 100% !important; + max-width: 100% !important; + } + } + `}}),(0,t.jsx)("div",{className:"elementor-61",children:(0,t.jsx)("div",{ref:e,className:"elementor-element elementor-element-88745f4 e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent ev-logistic-section","data-id":"88745f4","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"e-con-inner",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-343b363 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"343b363","data-element_type":"container","data-e-type":"container",children:[(0,t.jsxs)("div",{className:"ev-logistic-header",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-7afb238 elementor-widget elementor-widget-logico_heading ev-logistic-kicker-widget","data-id":"7afb238","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title ev-logistic-kicker",children:"/ Built for Electric Vehicles /"})})}),(0,t.jsx)("div",{className:"ev-logistic-title-wrapper",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-1cc335a elementor-widget elementor-widget-logico_heading ev-logistic-title-widget","data-id":"1cc335a","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",style:{WebkitTextStroke:"4px #c01227",color:"#fff",fontWeight:800},children:"Logistics Built for EV Vehicles"})})})})]}),(0,t.jsxs)("div",{className:"ev-logistic-body-grid",children:[(0,t.jsxs)("div",{className:"ev-logistic-image-col",children:[(0,t.jsx)("div",{className:"ev-logistic-image-glow"}),(0,t.jsx)("div",{ref:o,className:"ev-logistic-image-wrapper",children:(0,t.jsx)(a.default,{ref:s,src:"/images/ev.webp",alt:"EV Logistics",width:1050,height:854,priority:!0})})]}),(0,t.jsx)("div",{className:"ev-logistic-content-col",children:(0,t.jsx)("div",{className:"ev-feature-grid",children:n.map(e=>(0,t.jsxs)("div",{className:"ev-feature-card",children:[(0,t.jsx)("div",{className:"ev-feature-icon-wrapper",children:e.icon}),(0,t.jsx)("h4",{className:"ev-feature-card-title",children:e.title}),(0,t.jsx)("p",{className:"ev-feature-card-desc",children:e.desc})]},e.index))})})]})]})})})})]})}])},47580,e=>{"use strict";var t=e.i(43476),i=e.i(71645),a=e.i(89970),r=e.i(83495);a.default.registerPlugin(r.ScrollTrigger),e.s(["default",0,function(){let e=(0,i.useRef)(null),r=(0,i.useRef)(null),o=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let t=e.current,i=r.current,n=o.current;if(!t||!i||!n)return;let s=t.querySelectorAll(".table-row-hover"),l=t.querySelectorAll(".yes-badge, .advanced-badge");a.default.set([n,i],{opacity:0,y:45}),a.default.set(s,{opacity:0,y:20}),a.default.set(l,{opacity:0,scale:.8}),a.default.timeline({scrollTrigger:{trigger:t,start:"top 78%",toggleActions:"play none none none"}}).to([n,i],{opacity:1,y:0,duration:.95,stagger:.15,ease:"power4.out"}).to(s,{opacity:1,y:0,duration:.75,stagger:.05,ease:"power3.out"},"-=0.6").to(l,{opacity:1,scale:1,duration:.55,stagger:.03,ease:"back.out(1.6)"},"-=0.45")},[]),(0,t.jsxs)("section",{id:"comparison",className:"comparison-section",ref:e,children:[(0,t.jsx)("div",{className:"comparison-bg-glow"}),(0,t.jsx)("div",{className:"comparison-bg-dots"}),(0,t.jsxs)("div",{className:"container",children:[(0,t.jsxs)("div",{className:"comparison-header",ref:o,children:[(0,t.jsx)("div",{className:"advantage-eyebrow-container",children:(0,t.jsx)("span",{className:"advantage-eyebrow",children:"/ DoorMile wins/"})}),(0,t.jsx)("h2",{className:"moat-heading","data-text":"WHERE DOORMILE WINS",children:"WHERE DOORMILE WINS"}),(0,t.jsx)("p",{className:"moat-desc",children:"A side-by-side technical capabilities comparison showing how operational fleet ownership and dynamic AI planning disrupt basic aggregators."})]}),(0,t.jsx)("div",{className:"table-wrapper",ref:r,children:(0,t.jsxs)("table",{className:"comparison-table",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{children:"Capability"}),(0,t.jsx)("th",{className:"col-highlight",children:"Doormile"}),(0,t.jsx)("th",{children:"Aggregators"}),(0,t.jsx)("th",{children:"Local Couriers"}),(0,t.jsx)("th",{children:"Software Platforms"})]})}),(0,t.jsxs)("tbody",{children:[(0,t.jsxs)("tr",{className:"table-row-hover",children:[(0,t.jsxs)("td",{className:"capability-cell",children:[(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"1",y:"3",width:"15",height:"13"}),(0,t.jsx)("polygon",{points:"16 8 20 8 23 11 23 16 16 16 16 8"}),(0,t.jsx)("circle",{cx:"5.5",cy:"18.5",r:"2.5"}),(0,t.jsx)("circle",{cx:"18.5",cy:"18.5",r:"2.5"})]}),"Owned fleet control"]}),(0,t.jsx)("td",{className:"col-highlight",children:(0,t.jsx)("span",{className:"yes-badge",children:"✓ Yes"})}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"partial-text",children:"Yes"}),(0,t.jsx)("td",{className:"no-text",children:"No"})]}),(0,t.jsxs)("tr",{className:"table-row-hover",children:[(0,t.jsxs)("td",{className:"capability-cell",children:[(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),"Dynamic routing & dispatch"]}),(0,t.jsx)("td",{className:"col-highlight",children:(0,t.jsx)("span",{className:"advanced-badge",children:"✓ Advanced"})}),(0,t.jsx)("td",{className:"partial-text",children:"Basic"}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"partial-text",children:"Advanced"})]}),(0,t.jsxs)("tr",{className:"table-row-hover",children:[(0,t.jsxs)("td",{className:"capability-cell",children:[(0,t.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})}),"EV-aware planning"]}),(0,t.jsx)("td",{className:"col-highlight",children:(0,t.jsx)("span",{className:"yes-badge",children:"✓ Yes"})}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"no-text",children:"No"})]}),(0,t.jsxs)("tr",{className:"table-row-hover",children:[(0,t.jsxs)("td",{className:"capability-cell",children:[(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,t.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,t.jsx)("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),(0,t.jsx)("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),(0,t.jsx)("polyline",{points:"10 9 9 9 8 9"})]}),"Documentation & proof trail"]}),(0,t.jsx)("td",{className:"col-highlight",children:(0,t.jsx)("span",{className:"yes-badge",children:"✓ Yes"})}),(0,t.jsx)("td",{className:"partial-text",children:"Partial"}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"partial-text",children:"Yes"})]}),(0,t.jsxs)("tr",{className:"table-row-hover",children:[(0,t.jsxs)("td",{className:"capability-cell",children:[(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),"Real-time tracking"]}),(0,t.jsx)("td",{className:"col-highlight",children:(0,t.jsx)("span",{className:"yes-badge",children:"✓ Yes"})}),(0,t.jsx)("td",{className:"partial-text",children:"Yes"}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"partial-text",children:"Yes"})]}),(0,t.jsxs)("tr",{className:"table-row-hover",children:[(0,t.jsxs)("td",{className:"capability-cell",children:[(0,t.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})}),"Verified handling"]}),(0,t.jsx)("td",{className:"col-highlight",children:(0,t.jsx)("span",{className:"yes-badge",children:"✓ Yes"})}),(0,t.jsx)("td",{className:"partial-text",children:"Partial"}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"no-text",children:"No"})]}),(0,t.jsxs)("tr",{className:"table-row-hover",children:[(0,t.jsxs)("td",{className:"capability-cell",children:[(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"}),(0,t.jsx)("path",{d:"M13.73 21a2 2 0 0 1-3.46 0"})]}),"Hyperlocal learning"]}),(0,t.jsx)("td",{className:"col-highlight",children:(0,t.jsx)("span",{className:"yes-badge",children:"✓ Yes"})}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"no-text",children:"No"}),(0,t.jsx)("td",{className:"no-text",children:"No"})]}),(0,t.jsxs)("tr",{className:"table-row-hover",children:[(0,t.jsxs)("td",{className:"capability-cell",children:[(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("line",{x1:"22",y1:"12",x2:"18",y2:"12"}),(0,t.jsx)("line",{x1:"6",y1:"12",x2:"2",y2:"12"}),(0,t.jsx)("line",{x1:"12",y1:"6",x2:"12",y2:"2"}),(0,t.jsx)("line",{x1:"12",y1:"22",x2:"12",y2:"18"})]}),"SLA accountability"]}),(0,t.jsx)("td",{className:"col-highlight",children:(0,t.jsx)("span",{className:"advanced-badge",children:"✓ High"})}),(0,t.jsx)("td",{className:"no-text",children:"Low"}),(0,t.jsx)("td",{className:"partial-text",children:"Medium"}),(0,t.jsx)("td",{className:"no-text",children:"Low"})]})]})]})})]}),(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + /* --- HIGH-IMPACT PREMIUM CAPABILITIES SECTION STYLE --- */ + .comparison-section { + position: relative; + padding: 120px 0; + background-color: #fafafa; + overflow: hidden; + font-family: "Manrope", sans-serif; + } + + /* Spotlight radial background glow */ + .comparison-bg-glow { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 1000px; + height: 1000px; + background: radial-gradient(circle, rgba(200, 16, 46, 0.035) 0%, transparent 70%); + z-index: 0; + pointer-events: none; + } + + /* Subtle logistics dot grid overlay */ + .comparison-bg-dots { + position: absolute; + inset: 0; + background-image: radial-gradient(#e2e4e8 1.5px, transparent 1.5px); + background-size: 32px 32px; + opacity: 0.45; + z-index: 0; + pointer-events: none; + } + + .comparison-section .container { + position: relative; + z-index: 2; + max-width: 1400px; /* Restored/Expanded for gorgeous wide balance on large screens */ + margin: 0 auto; + padding: 0 40px; + } + + /* Section Header Layout */ + .comparison-header { + text-align: left; + margin-bottom: 60px; + position: relative; + z-index: 2; + width: 100%; + } + + .advantage-eyebrow-container { + width: 100%; + border-bottom: 2px solid rgba(0, 0, 0, 0.16); + padding-bottom: 16px; + margin-bottom: 28px; + } + + /* DoorMile Advantage Eyebrow */ + .advantage-eyebrow { + font-family: 'Manrope', sans-serif; + font-weight: 700; + font-size: 0.85rem; + letter-spacing: 0.14em; + text-transform: uppercase; + color: #060606ff; + display: inline-block; + white-space: nowrap; + } + + /* Outlined heading style with clean duplicate layering hack */ + .moat-heading { + position: relative; + font-family: var(--font-syne), 'Syne', sans-serif !important; + font-size: clamp(2.4rem, 6.8vw, 6.6rem) !important; + font-weight: 800 !important; + line-height: 1.1 !important; + color: #fafafa !important; /* solid background color to cover inner overlapping outlines */ + margin: 0 0 24px 0; + letter-spacing: -0.02em; + text-transform: uppercase; + word-wrap: break-word; + overflow-wrap: break-word; + z-index: 1; + } + + .moat-heading::after { + content: attr(data-text) !important; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; + color: transparent !important; + -webkit-text-stroke: 2.2px #c8102e; + -webkit-text-fill-color: transparent !important; + pointer-events: none; + display: block !important; /* override any old display: none */ + } + + .moat-desc { + font-family: 'Manrope', sans-serif; + font-size: 1.05rem; + line-height: 1.65; + color: #585c67; + margin: 16px 0 0 0 !important; + max-width: 820px !important; + text-align: left !important; + } + + /* Spacious table styling wrapper (100% width on Desktop) */ + .table-wrapper { + width: 100%; + background: #ffffff; + border-radius: 24px; + border: 1px solid rgba(0, 0, 0, 0.05); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.015), 0 1px 3px rgba(0, 0, 0, 0.01); + overflow: hidden; + transition: box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1); + } + + .table-wrapper:hover { + box-shadow: 0 35px 70px rgba(0, 0, 0, 0.035), 0 1px 3px rgba(0, 0, 0, 0.01); + } + + .comparison-table { + width: 100%; + border-collapse: collapse; + text-align: left; + } + + /* Enlarge row paddings and metrics size */ + .comparison-table th, + .comparison-table td { + padding: 24px 28px; + border-bottom: 1px solid #f0f0f4; + font-size: 1rem; + color: #2b2b2b; + transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); + } + + .comparison-table tr:last-child td { + border-bottom: none; + } + + .comparison-table th { + font-family: 'Manrope', sans-serif; + font-weight: 700; + text-transform: uppercase; + font-size: 0.85rem; + letter-spacing: 0.1em; + color: #8a8f9d; + background: rgba(15, 23, 42, 0.02); + } + + /* High weight column header highlights */ + th.col-highlight { + background: #c8102e !important; + color: #ffffff !important; + text-align: center; + font-weight: 800; + font-size: 0.9rem; + letter-spacing: 0.1em; + border-left: 2.5px solid #c8102e; + border-right: 2.5px solid #c8102e; + box-shadow: 0 4px 20px rgba(200, 16, 46, 0.1); + } + + /* High weight cells gradient & highlights */ + td.col-highlight { + text-align: center; + color: #c8102e !important; + font-weight: 700; + background: linear-gradient(180deg, rgba(200, 16, 46, 0.025) 0%, rgba(200, 16, 46, 0.005) 100%) !important; + border-left: 2.5px solid rgba(200, 16, 46, 0.12); + border-right: 2.5px solid rgba(200, 16, 46, 0.12); + position: relative; + will-change: transform, box-shadow, background; + animation: doormile-glow-pulse 4s infinite ease-in-out; + } + + /* Row Hover Enhancements: brighten row & trigger DoorMile glow expand */ + .table-row-hover { + transition: background-color 0.3s ease; + } + + .table-row-hover:hover td { + background-color: rgba(200, 16, 46, 0.01) !important; + } + + .table-row-hover:hover td.col-highlight { + background: linear-gradient(180deg, rgba(200, 16, 46, 0.06) 0%, rgba(200, 16, 46, 0.02) 100%) !important; + border-left-color: rgba(200, 16, 46, 0.35); + border-right-color: rgba(200, 16, 46, 0.35); + box-shadow: inset 0 0 16px rgba(200, 16, 46, 0.04); + } + + /* Soft Breathing Box Shadow Red Glow Pulse Loop */ + @keyframes doormile-glow-pulse { + 0% { + box-shadow: inset 0 0 0 0px rgba(200, 16, 46, 0); + } + 50% { + box-shadow: inset 0 0 18px 2px rgba(200, 16, 46, 0.05); + } + 100% { + box-shadow: inset 0 0 0 0px rgba(200, 16, 46, 0); + } + } + + .capability-cell { + display: flex; + align-items: center; + gap: 14px; + font-weight: 700; + color: #111111; + font-size: 1.1rem; + } + + .capability-cell svg { + color: #c8102e; + transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1); + flex-shrink: 0; + } + + .table-row-hover:hover .capability-cell svg { + transform: scale(1.18) rotate(4deg); + } + + /* Premium Badge styles */ + .yes-badge { + display: inline-flex; + align-items: center; + gap: 6px; + color: #c8102e; + font-weight: 700; + font-size: 0.95rem; + background: rgba(200, 16, 46, 0.05); + padding: 4px 12px; + border-radius: 6px; + border: 1px solid rgba(200, 16, 46, 0.1); + will-change: transform, opacity; + } + + .advanced-badge { + display: inline-flex; + align-items: center; + gap: 6px; + background: rgba(200, 16, 46, 0.075); + border: 1.5px solid #c8102e; + padding: 4px 12px; + border-radius: 8px; + font-size: 0.78rem; + text-transform: uppercase; + letter-spacing: 0.06em; + font-weight: 800; + color: #c8102e; + will-change: transform, opacity; + box-shadow: 0 4px 12px rgba(200, 16, 46, 0.06); + } + + .no-text { + color: #8e94a5; + font-weight: 500; + } + + .partial-text { + color: #4b5262; + font-weight: 500; + } + + /* --- RESPONSIVE WORKFLOWS & BREAKPOINTS --- */ + @media (max-width: 1200px) { + .comparison-section .container { + padding: 0 24px; + } + } + + @media (max-width: 768px) { + .comparison-section { + padding: 56px 0; + } + + .comparison-section .container { + padding: 0 10px; + } + + .moat-heading { + font-size: 1.8rem; + } + } + + /* On phones the 5-column table can't fit, so transform each row into a + stacked card: capability as the card title, then one "label: value" + line per competitor. Column labels are injected via nth-of-type so no + markup changes are needed (every row has the same column order). */ + @media (max-width: 600px) { + .table-wrapper { + background: transparent; + border: none; + box-shadow: none; + border-radius: 0; + overflow: visible; + } + .comparison-table { min-width: 0; width: 100%; } + .comparison-table thead { display: none; } + .comparison-table tbody, + .comparison-table tr, + .comparison-table td { display: block; width: auto; } + + .comparison-table tr { + background: #ffffff; + border: 1px solid rgba(0,0,0,0.07); + border-radius: 16px; + padding: 6px 16px 8px; + margin-bottom: 14px; + box-shadow: 0 8px 24px rgba(0,0,0,0.04); + } + + /* Capability = card title (icon + name), no label */ + .comparison-table td.capability-cell { + display: flex; + justify-content: flex-start; + gap: 12px; + font-size: 1.02rem; + padding: 12px 0 12px; + border-bottom: 1.5px solid #eef0f4; + margin-bottom: 4px; + } + + /* Value cells = "Label .... value" rows */ + .comparison-table td:not(.capability-cell) { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 10px 0; + border-bottom: 1px solid #f4f5f7; + font-size: 0.95rem; + text-align: right; + } + .comparison-table tr td:last-child { border-bottom: none; } + + .comparison-table td.col-highlight::before { content: "Doormile"; } + .comparison-table td:nth-of-type(3)::before { content: "Aggregators"; } + .comparison-table td:nth-of-type(4)::before { content: "Local Couriers"; } + .comparison-table td:nth-of-type(5)::before { content: "Software Platforms"; } + .comparison-table td:not(.capability-cell)::before { + font-weight: 700; + font-size: 0.72rem; + letter-spacing: 0.05em; + text-transform: uppercase; + color: #8a8f9d; + flex: 0 0 auto; + } + + /* Neutralise the desktop highlight column styling inside the card */ + .comparison-table td.col-highlight { + background: transparent !important; + border-left: none; + border-right: none; + animation: none !important; + color: inherit !important; + } + } + `}})]})}])},2012,e=>{"use strict";var t=e.i(43476),i=e.i(71645),a=e.i(89970),r=e.i(83495);a.default.registerPlugin(r.ScrollTrigger);let o=[{year:2026,pct:25,trackLeft:"12.5%",phase:"Pilot Phase",phaseClass:"yellow",title:"Pilot",desc:"Launch operations in Hyderabad with dedicated EV hubs and MileTruth AI v1.0.",icon:(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M4.5 16.5c-1.5 1.5-2.5 3.5-2.5 5.5C4 22 6 21 7.5 19.5"}),(0,t.jsx)("path",{d:"M12 12l9-9-9 9z"}),(0,t.jsx)("path",{d:"M12 12c-2.3 2.3-3.4 5.3-3.5 8.5l12-12c-3.2-.1-6.2-1.2-8.5-3.5z"})]}),stats:[{text:"100+ orders/day",icon:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),(0,t.jsx)("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),(0,t.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),(0,t.jsx)("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]})},{text:"1 city",icon:(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,t.jsx)("path",{d:"M3 21h18M19 21v-2a4 4 0 0 0-3-3.87M5 21v-2a4 4 0 0 1 3-3.87M9 21v-5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v5"})})},{text:"10+ women partners",icon:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),(0,t.jsx)("circle",{cx:"9",cy:"7",r:"4"})]})}]},{year:2027,pct:50,trackLeft:"37.5%",phase:"Multi-City",phaseClass:"green",title:"Scale",desc:"Expand to Bengaluru and Chennai, securing key B2B enterprise traction.",icon:(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("line",{x1:"12",y1:"8",x2:"12",y2:"16"}),(0,t.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12"})]}),stats:[{text:"500+ orders/day",icon:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),(0,t.jsx)("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),(0,t.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),(0,t.jsx)("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]})},{text:"3 cities",icon:(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,t.jsx)("path",{d:"M3 21h18M19 21v-2a4 4 0 0 0-3-3.87M5 21v-2a4 4 0 0 1 3-3.87M9 21v-5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v5"})})},{text:"50+ EVs",icon:(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,t.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})})}]},{year:2028,pct:75,trackLeft:"62.5%",phase:"Platform",phaseClass:"blue",title:"Expansion",desc:"Scale to 5+ cities. Strengthen regional operations.",icon:(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,t.jsx)("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]}),stats:[{text:"5000+ orders/day",icon:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),(0,t.jsx)("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),(0,t.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),(0,t.jsx)("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]})},{text:"5+ cities",icon:(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,t.jsx)("path",{d:"M3 21h18M19 21v-2a4 4 0 0 0-3-3.87M5 21v-2a4 4 0 0 1 3-3.87M9 21v-5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v5"})})},{text:"100+ women partners",icon:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("polyline",{points:"16 18 22 12 16 6"}),(0,t.jsx)("polyline",{points:"8 6 2 12 8 18"})]})}]},{year:2030,pct:100,trackLeft:"87.5%",phase:"Vision State",phaseClass:"white-pill",title:"AI Pulse Layer",desc:"Nationwide AI logistics grid reaching 15+ cities, empowering female micro-entrepreneurs.",icon:(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M2 4l3 12h14l3-12-6 7-4-7-4 7-6-7z"}),(0,t.jsx)("path",{d:"M3 20h18",strokeWidth:"3"})]}),stats:[{text:"50,000+ orders/day",icon:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),(0,t.jsx)("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),(0,t.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),(0,t.jsx)("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]})},{text:"50+ cities",icon:(0,t.jsx)("span",{className:"currency-symbol",style:{marginRight:"4px",fontSize:"11px",fontWeight:800},children:"Rs"})},{text:"2,000+ women partners",icon:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[(0,t.jsx)("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),(0,t.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,t.jsx)("path",{d:"M23 21v-2a4 4 0 0 0-3-3.87"}),(0,t.jsx)("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"})]})}]}];e.s(["default",0,function(){let[e,a]=(0,i.useState)(2030),r=(0,i.useRef)(null),n=(0,i.useRef)(null);(0,i.useEffect)(()=>{let e;if(!r.current)return;let t=n.current;if(!t)return;let i=t.getContext("2d");if(!i)return;let a=t.width=t.offsetWidth,o=t.height=t.offsetHeight,s=()=>{t&&(a=t.width=t.offsetWidth,o=t.height=t.offsetHeight)};window.addEventListener("resize",s);let l=[{name:"Hyderabad",x:.18,y:.55},{name:"Chennai",x:.42,y:.72},{name:"Bengaluru",x:.64,y:.42},{name:"Mumbai",x:.82,y:.62}],d=[{from:0,to:1,t:0,speed:.005},{from:1,to:2,t:.3,speed:.004},{from:2,to:3,t:.6,speed:.006}],c=()=>{i.clearRect(0,0,a,o),i.lineWidth=1.5,i.setLineDash([6,6]),i.strokeStyle="rgba(220, 38, 38, 0.12)",i.beginPath();for(let e=0;e{e.t+=e.speed,e.t>=1&&(e.t=0);let t=l[e.from],r=l[e.to],n=t.x*a,s=t.y*o,d=r.x*a,c=r.y*o,p=n+(d-n)*e.t,x=s+(c-s)*e.t;i.beginPath(),i.arc(p,x,4,0,2*Math.PI),i.fillStyle="#c01227",i.shadowColor="#c01227",i.shadowBlur=10,i.fill(),i.shadowBlur=0}),l.forEach(e=>{let t=e.x*a,r=e.y*o;i.beginPath(),i.arc(t,r,8,0,2*Math.PI),i.fillStyle="rgba(220, 38, 38, 0.08)",i.fill(),i.beginPath(),i.arc(t,r,3,0,2*Math.PI),i.fillStyle="rgba(255, 255, 255, 0.25)",i.fill(),i.fillStyle="rgba(255, 255, 255, 0.12)",i.font="bold 11px 'Manrope', sans-serif",i.textAlign="center",i.fillText(e.name,t,r-14)}),e=requestAnimationFrame(c)};return c(),()=>{window.removeEventListener("resize",s),cancelAnimationFrame(e)}},[]);let s=2026===e?25:2027===e?50:2028===e?75:100,l=2*Math.PI*30;return(0,t.jsx)("div",{ref:r,className:"elementor-element elementor-element-bbc6760 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent intelligence-grid-section","data-id":"bbc6760","data-element_type":"container","data-e-type":"container",style:{position:"relative",zIndex:1},children:(0,t.jsxs)("section",{id:"hero",className:"roadmap-hero-section",children:[(0,t.jsx)("canvas",{ref:n,className:"ce-canvas-bg","aria-hidden":"true"}),(0,t.jsx)("div",{className:"roadmap-glow-spot top-left"}),(0,t.jsx)("div",{className:"roadmap-glow-spot bottom-right"}),(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + /* Buttery-Smooth Hardware-Accelerated 3D AI Logistics Timeline Styles */ + .roadmap-hero-section { + position: relative; + background: #09090b !important; + /* Match the site-wide wide-band gutter EXACTLY. Measured against the + footer band (#b29b8fc) and the sibling "Women" band + (#women-entrepreneurship), both of which sit at a 20px left/right + gutter. The parent (#bbc6760) contributes no padding here (the + vendor padding vars resolve to 0), so the band carries the 20px + gutter itself via calc(100% - 40px) + auto margins: + at a 1910px viewport this renders left:20 right:1890 width:1870, + identical to the footer band. */ + width: calc(100% - 40px); + margin-left: auto; + margin-right: auto; + border-radius: 24px; + padding: 100px 40px; + box-sizing: border-box; + font-family: 'Manrope', sans-serif; + overflow: hidden; + display: flex; + flex-direction: column; + align-items: stretch; + } + + /* Connection Grid Canvas Overlay */ + .ce-canvas-bg { + position: absolute; + inset: 0; + z-index: 0; + width: 100%; + height: 100%; + pointer-events: none; + opacity: 0.08; + } + + /* Spotlights */ + .roadmap-glow-spot { + position: absolute; + width: 500px; + height: 500px; + border-radius: 50%; + pointer-events: none; + filter: blur(140px); + z-index: 0; + opacity: 0.05; + } + + .roadmap-glow-spot.top-left { + left: -10%; + top: -10%; + background: radial-gradient(circle, #C8102E 0%, transparent 70%); + } + + .roadmap-glow-spot.bottom-right { + right: -10%; + bottom: -10%; + background: radial-gradient(circle, #ff0033 0%, transparent 70%); + } + + .roadmap-hero-section .container { + /* Fill the wide section so the timeline + cards span most of the + available width (no narrow content cap). */ + max-width: 100%; + width: 100%; + margin: 0 auto; + position: relative; + z-index: 1; + box-sizing: border-box; + } + + /* Header Styles */ + .vision-tag-top { + font-size: 13px; + font-weight: 800; + letter-spacing: 3px; + color: #C8102E; + text-transform: uppercase; + margin-bottom: 16px; + text-align: center; + } + + .roadmap-hero-section .intelligence-grid-title { + color: #ffffff !important; + font-size: clamp(34px, 3.8vw, 54px) !important; + font-weight: 900 !important; + line-height: 1.1 !important; + text-align: center; + letter-spacing: -1.8px !important; + margin: 0 0 20px 0 !important; + text-transform: none !important; + } + + .roadmap-hero-section .intelligence-grid-title-highlight { + color: #C8102E !important; + } + + .vision-main-subtitle { + font-size: clamp(16px, 1.4vw, 20px); + font-weight: 500; + line-height: 1.5; + color: #a1a1aa !important; + text-align: center; + max-width: 720px; + margin: 0 auto 60px auto !important; + } + + /* Glowing 3D Timeline Track - Overflow Visible Guarantees No Halo Cutoffs */ + .roadmap-track-container { + display: flex; + align-items: center; + justify-content: space-between; + gap: 30px; + width: 100%; + background: rgba(255, 255, 255, 0.02); + border: 1px solid rgba(255, 255, 255, 0.04); + border-radius: 20px; + padding: 24px 34px; + box-sizing: border-box; + backdrop-filter: blur(8px); + margin-bottom: 60px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + overflow: visible !important; /* Extremely important to prevent cropping timeline child elements */ + } + + .roadmap-track-label { + font-size: 13.5px; + font-weight: 800; + letter-spacing: 2px; + color: #71717a; + white-space: nowrap; + } + + .timeline-horizontal-wrapper { + flex: 1 1 auto; + height: 6px; + background: rgba(255, 255, 255, 0.05); + border-radius: 3px; + position: relative; + display: flex; + align-items: center; + overflow: visible !important; /* Critical to let pulsing halo overlay expand outside the 6px wrapper */ + } + + .timeline-horizontal-fill { + position: absolute; + left: 0; + top: 0; + height: 100%; + background: #C8102E; + box-shadow: 0 0 12px #C8102E; + border-radius: 3px; + transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1); + will-change: width; + } + + .node-dots-row { + position: absolute; + inset: 0; + pointer-events: none; + overflow: visible !important; /* Dynamic expansion */ + } + + .node-dot-item { + position: absolute; + top: 50%; + transform: translate(-50%, -50%); + width: 14px; + height: 14px; + border-radius: 50%; + background: #18181b; + border: 2px solid rgba(255, 255, 255, 0.15); + transition: border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), + background-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), + box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1); + will-change: border-color, background-color, box-shadow; + overflow: visible !important; + } + + .node-dot-item.active { + background: #C8102E; + border-color: #ffffff; + box-shadow: 0 0 10px #C8102E; + } + + /* Pulsing crown node halo - Smoothly decays opacity to 0 to prevent visual pops/blinks */ + .node-pulse-crown { + position: absolute; + inset: -4px; + border-radius: 50%; + border: 1.5px solid #C8102E; + animation: node-breather 2s infinite ease-out; + pointer-events: none; + box-sizing: border-box; + overflow: visible !important; + } + + @keyframes node-breather { + 0% { transform: scale(0.95); opacity: 0.9; } + 80% { opacity: 0.25; } + 100% { transform: scale(1.6); opacity: 0; } + } + + /* Progress Ring */ + .roadmap-complete-pct-container { + display: flex; + align-items: center; + gap: 12px; + white-space: nowrap; + } + + .roadmap-complete-pct { + font-size: 14px; + font-weight: 800; + letter-spacing: 1px; + color: #C8102E; + text-transform: uppercase; + } + + .progress-ring-circle { + transition: stroke-dashoffset 0.6s cubic-bezier(0.16, 1, 0.3, 1); + transform: rotate(-90deg); + transform-origin: 50% 50%; + stroke: #C8102E; + filter: drop-shadow(0 0 4px #C8102E); + } + + /* 4-Column Grid container */ + .roadmap-grid-container { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 20px; + width: 100%; + box-sizing: border-box; + } + + /* GPU Hardware-Accelerated Breathtakingly Smooth 3D Floating Cards */ + .roadmap-col-card { + position: relative; + background: rgba(255, 255, 255, 0.035); + border: 1px solid rgba(255, 255, 255, 0.06); + backdrop-filter: blur(16px); + border-radius: 20px; + padding: 30px 24px; + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: stretch; + justify-content: flex-start; + transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), + border-color 0.6s cubic-bezier(0.16, 1, 0.3, 1), + background-color 0.6s cubic-bezier(0.16, 1, 0.3, 1), + box-shadow 0.6s cubic-bezier(0.16, 1, 0.3, 1); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); + cursor: pointer; + will-change: transform, box-shadow; + } + + /* Ultra-Smooth CSS scale and translation lifts on hover */ + .roadmap-col-card:hover { + transform: translateY(-8px) scale(1.03); + border-color: rgba(255, 255, 255, 0.15); + background-color: rgba(255, 255, 255, 0.055); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.45); + } + + /* Active card highlight state */ + .roadmap-col-card.active { + border-color: rgba(200, 16, 46, 0.65); + background: rgba(200, 16, 46, 0.04); + box-shadow: 0 20px 40px rgba(200, 16, 46, 0.1); + } + + .card-top-row { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + } + + .year-num { + font-size: 26px; + font-weight: 900; + color: #ffffff; + letter-spacing: -0.5px; + } + + .card-icon-badge { + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 8px; + background: rgba(255, 255, 255, 0.05); + color: rgba(255, 255, 255, 0.7); + border: 1px solid rgba(255, 255, 255, 0.08); + } + + .phase-badge-pill { + align-self: flex-start; + font-size: 11px; + font-weight: 800; + text-transform: uppercase; + padding: 5px 10px; + border-radius: 6px; + margin-bottom: 18px; + letter-spacing: 0.5px; + } + + .phase-badge-pill.yellow { + background: rgba(234, 179, 8, 0.12); + color: #eab308; + border: 1px solid rgba(234, 179, 8, 0.2); + } + + .phase-badge-pill.green { + background: rgba(34, 197, 94, 0.12); + color: #22c55e; + border: 1px solid rgba(34, 197, 94, 0.2); + } + + .phase-badge-pill.blue { + background: rgba(59, 130, 246, 0.12); + color: #3b82f6; + border: 1px solid rgba(59, 130, 246, 0.2); + } + + .phase-badge-pill.white-pill { + background: rgba(255, 255, 255, 0.12); + color: #ffffff; + border: 1px solid rgba(255, 255, 255, 0.2); + } + + .card-heading { + font-size: 18px; + font-weight: 800; + margin: 0 0 10px 0 !important; + letter-spacing: -0.3px; + } + + .card-text { + font-size: 13.5px; + line-height: 1.5; + color: #a1a1aa !important; + margin: 0 0 20px 0 !important; + } + + .card-pills-stack { + display: flex; + flex-direction: column; + gap: 8px; + margin-top: auto; + } + + .card-stat-pill-mini { + display: flex; + align-items: center; + font-size: 12.5px; + font-weight: 700; + color: #e4e4e7; + padding: 8px 12px; + border-radius: 8px; + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.05); + transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.4s ease; + will-change: transform; + } + + .roadmap-col-card:hover .card-stat-pill-mini { + background: rgba(255, 255, 255, 0.06); + transform: translateY(-2px); + } + + /* Special destination: Glowing 2030 AI Pulse Layer card */ + .glowing-vision-card { + background: linear-gradient(135deg, rgba(200, 16, 46, 0.95) 0%, rgba(120, 10, 30, 0.98) 100%) !important; + border: 1px solid rgba(255, 255, 255, 0.15) !important; + animation: red-breath 4s infinite ease-in-out; + } + + /* Hover scale override for 2030 vision card */ + .glowing-vision-card:hover { + transform: translateY(-8px) scale(1.03) !important; + box-shadow: 0 20px 50px rgba(200, 16, 46, 0.7) !important; + } + + /* Laser sweeping neon borders on 2030 vision card */ + .glowing-vision-card::after { + content: ""; + position: absolute; + inset: -1.5px; + border-radius: 20px; + background: linear-gradient(90deg, #C8102E, #ff3366, #ff0033, #C8102E); + background-size: 300% 100%; + animation: border-sweep 5s linear infinite; + z-index: -1; + opacity: 0.65; + } + + @keyframes border-sweep { + 0% { background-position: 0% 50%; } + 50% { background-position: 100% 50%; } + 100% { background-position: 0% 50%; } + } + + @keyframes red-breath { + 0%, 100% { box-shadow: 0 10px 40px rgba(200, 16, 46, 0.25), inset 0 0 15px rgba(255,255,255,0.05); } + 50% { box-shadow: 0 10px 60px rgba(200, 16, 46, 0.6), inset 0 0 25px rgba(255,255,255,0.1); } + } + + .glowing-vision-card .card-stat-pill-mini { + background: rgba(255, 255, 255, 0.08) !important; + border: 1px solid rgba(255, 255, 255, 0.1) !important; + } + + .glowing-vision-card:hover .card-stat-pill-mini { + background: rgba(255, 255, 255, 0.14) !important; + } + + .glowing-vision-card .card-text { + color: rgba(255, 255, 255, 0.8) !important; + } + + /* Floating sparks/particles inside the 2030 vision card */ + .ce-sparkle { + position: absolute; + width: 4px; + height: 4px; + background: rgba(255, 255, 255, 0.85); + border-radius: 50%; + pointer-events: none; + filter: blur(0.5px); + } + .sparkle-1 { left: 15%; bottom: 8%; animation: float-spark 3s infinite ease-in; } + .sparkle-2 { left: 52%; bottom: 18%; animation: float-spark 4s infinite ease-in; animation-delay: 1.2s; } + .sparkle-3 { left: 82%; bottom: 12%; animation: float-spark 3.5s infinite ease-in; animation-delay: 2s; } + + @keyframes float-spark { + 0% { transform: translateY(0); opacity: 0; } + 50% { opacity: 0.9; } + 100% { transform: translateY(-70px); opacity: 0; } + } + + /* Responsive Constraints */ + @media (max-width: 1024px) { + .roadmap-hero-section { + width: calc(100% - 40px); /* keep the 20px site-standard band gutter */ + padding: 80px 24px; + } + + .roadmap-grid-container { + grid-template-columns: repeat(2, 1fr); + gap: 20px; + } + + .roadmap-track-container { + padding: 20px 24px; + } + } + + @media (max-width: 767px) { + .intelligence-grid-section { + --padding-left: 0px !important; + --padding-right: 0px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + + .roadmap-hero-section { + width: calc(100% - 32px) !important; + max-width: calc(100% - 32px) !important; + padding: 52px 16px 44px; + border-radius: 22px !important; + } + .vision-main-subtitle { margin-bottom: 40px !important; } + + /* Progress header → compact, centered summary card */ + .roadmap-track-container { + flex-direction: column; + align-items: center; + text-align: center; + gap: 16px; + padding: 20px 18px; + margin-bottom: 36px; + } + .roadmap-track-label { font-size: 12px; letter-spacing: 1.5px; } + .timeline-horizontal-wrapper { width: 100%; } + .roadmap-complete-pct-container { justify-content: center; } + + /* ── Vertical timeline: the four stacked cards become a connected + journey (2026 → 2030) with a coloured rail + phase node dots. ── */ + .roadmap-grid-container { + grid-template-columns: 1fr; + gap: 18px; + position: relative; + padding-left: 32px; + } + .roadmap-grid-container::before { + content: ''; + position: absolute; + left: 6px; + top: 16px; + bottom: 16px; + width: 2px; + border-radius: 2px; + background: linear-gradient(180deg, #eab308 0%, #22c55e 34%, #3b82f6 67%, #C8102E 100%); + opacity: 0.55; + } + .roadmap-col-card { padding: 24px 22px; } + /* node dot sits on the rail, aligned with the year number */ + .roadmap-col-card::before { + content: ''; + position: absolute; + left: -32px; + top: 28px; + width: 14px; + height: 14px; + border-radius: 50%; + background: #09090b; + border: 2px solid #C8102E; + box-shadow: 0 0 0 4px #09090b, 0 0 12px rgba(200, 16, 46, 0.7); + z-index: 3; + } + .roadmap-col-card[data-card="2026"]::before { + border-color: #eab308; + box-shadow: 0 0 0 4px #09090b, 0 0 12px rgba(234, 179, 8, 0.6); + } + .roadmap-col-card[data-card="2027"]::before { + border-color: #22c55e; + box-shadow: 0 0 0 4px #09090b, 0 0 12px rgba(34, 197, 94, 0.6); + } + .roadmap-col-card[data-card="2028"]::before { + border-color: #3b82f6; + box-shadow: 0 0 0 4px #09090b, 0 0 12px rgba(59, 130, 246, 0.6); + } + .roadmap-col-card[data-card="2030"]::before { + border-color: #ffffff; + background: #C8102E; + box-shadow: 0 0 0 4px #09090b, 0 0 16px rgba(200, 16, 46, 0.9); + } + /* the 2030 card's sweeping border (::after) would sit over the rail + gutter — keep it from bleeding past the card's rounded edge */ + .glowing-vision-card::after { inset: -1px; } + } + + @media (max-width: 480px) { + .roadmap-hero-section { padding: 44px 14px 38px; } + .roadmap-hero-section .intelligence-grid-title { font-size: clamp(28px, 8.4vw, 38px) !important; letter-spacing: -1px !important; } + .roadmap-grid-container { padding-left: 28px; } + .roadmap-grid-container::before { left: 5px; } + .roadmap-col-card { padding: 22px 18px; } + .roadmap-col-card::before { left: -28px; top: 26px; } + .year-num { font-size: 23px; } + .card-heading { font-size: 16px; } + .card-text { font-size: 13px; } + } + `}}),(0,t.jsxs)("div",{className:"container",children:[(0,t.jsx)("div",{className:"vision-tag-top",children:"VISION / 2030"}),(0,t.jsx)("div",{className:"elementor-element elementor-element-54d05ac elementor-widget elementor-widget-logico_heading","data-id":"54d05ac","data-element_type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsxs)("div",{className:"elementor-widget-container",children:[(0,t.jsxs)("h3",{className:"logico-title intelligence-grid-title",children:["The ",(0,t.jsx)("span",{className:"intelligence-grid-title-highlight",children:"Intelligence Grid"})," Behind Every Urban Mile"]}),(0,t.jsx)("p",{className:"vision-main-subtitle",children:"From Hyderabad EV pilot to nationwide AI logistics intelligence by 2030"})]})}),(0,t.jsxs)("div",{className:"roadmap-track-container",children:[(0,t.jsx)("span",{className:"roadmap-track-label",children:"ROADMAP TO 2030"}),(0,t.jsxs)("div",{className:"timeline-horizontal-wrapper",children:[(0,t.jsx)("div",{className:"timeline-horizontal-line"}),(0,t.jsx)("div",{className:"timeline-horizontal-fill",style:{width:2026===e?"12.5%":2027===e?"37.5%":2028===e?"62.5%":"87.5%"}}),(0,t.jsx)("div",{className:"node-dots-row",children:o.map(i=>(0,t.jsx)("div",{className:`node-dot-item ${e>=i.year?"active":""}`,style:{left:i.trackLeft},children:e===i.year&&(0,t.jsx)("div",{className:"node-pulse-crown"})},i.year))})]}),(0,t.jsxs)("div",{className:"roadmap-complete-pct-container",children:[(0,t.jsxs)("span",{className:"roadmap-complete-pct",children:[s,"% COMPLETE →"]}),(0,t.jsxs)("svg",{width:"40",height:"40",viewBox:"0 0 80 80",children:[(0,t.jsx)("circle",{cx:"40",cy:"40",r:"30",fill:"none",stroke:"rgba(255,255,255,0.06)",strokeWidth:"6"}),(0,t.jsx)("circle",{className:"progress-ring-circle",cx:"40",cy:"40",r:"30",fill:"none",strokeWidth:"6",strokeDasharray:l,strokeDashoffset:l*(1-s/100),strokeLinecap:"round"})]})]})]}),(0,t.jsx)("div",{className:"roadmap-grid-container",children:o.map(i=>{let r=2030===i.year,o=e===i.year;return(0,t.jsxs)("div",{onMouseEnter:()=>a(i.year),onClick:()=>a(i.year),className:`roadmap-col-card ${r?"glowing-vision-card":""} ${o?"active":""}`,"data-card":i.year,children:[r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"ce-sparkle sparkle-1"}),(0,t.jsx)("span",{className:"ce-sparkle sparkle-2"}),(0,t.jsx)("span",{className:"ce-sparkle sparkle-3"})]}),(0,t.jsxs)("div",{className:"card-top-row",children:[(0,t.jsx)("span",{className:"year-num",children:i.year}),(0,t.jsx)("div",{className:`card-icon-badge ${r?"translucent-white":""}`,children:i.icon})]}),(0,t.jsx)("span",{className:`phase-badge-pill ${i.phaseClass}`,children:i.phase}),(0,t.jsx)("h5",{className:"card-heading",style:{color:"white"},children:i.title}),(0,t.jsx)("p",{className:"card-text",children:i.desc}),(0,t.jsx)("div",{className:"card-pills-stack",children:i.stats.map((e,i)=>(0,t.jsxs)("div",{className:`card-stat-pill-mini ${r?"translucent-crimson":""}`,children:[e.icon,(0,t.jsx)("span",{children:e.text})]},i))})]},i.year)})})]})]})})}])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0o27ue53hohz_.js b/build/.next/static/chunks/0o27ue53hohz_.js new file mode 100644 index 0000000..74a7d20 --- /dev/null +++ b/build/.next/static/chunks/0o27ue53hohz_.js @@ -0,0 +1,243 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55838,(e,t,n)=>{"use strict";var i=e.r(71645),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=i.useState,s=i.useEffect,o=i.useLayoutEffect,l=i.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var c="u"{"use strict";t.exports=e.r(55838)},52822,(e,t,n)=>{"use strict";var i=e.r(71645),r=e.r(2239),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=r.useSyncExternalStore,o=i.useRef,l=i.useEffect,u=i.useMemo,c=i.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,i,r){var h=o(null);if(null===h.current){var d={hasValue:!1,value:null};h.current=d}else d=h.current;var p=s(e,(h=u(function(){function e(e){if(!l){if(l=!0,s=e,e=i(e),void 0!==r&&d.hasValue){var t=d.value;if(r(t,e))return o=t}return o=e}if(t=o,a(s,e))return t;var n=i(e);return void 0!==r&&r(t,n)?(s=e,t):(s=e,o=n)}var s,o,l=!1,u=void 0===n?null:n;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]},[t,n,i,r]))[0],h[1]);return l(function(){d.hasValue=!0,d.value=p},[p]),c(p),p}},30224,(e,t,n)=>{"use strict";t.exports=e.r(52822)},66936,(e,t,n)=>{"use strict";function i(e,t){var n=e.length;for(e.push(t);0>>1,r=e[i];if(0>>1;is(l,n))us(c,l)?(e[i]=c,e[u]=n,i=u):(e[i]=l,e[o]=n,i=o);else if(us(c,n))e[i]=c,e[u]=n,i=u;else break}}return t}function s(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(n.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o,l=performance;n.unstable_now=function(){return l.now()}}else{var u=Date,c=u.now();n.unstable_now=function(){return u.now()-c}}var h=[],d=[],p=1,f=null,m=3,g=!1,v=!1,_=!1,y=!1,x="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,S="u">typeof setImmediate?setImmediate:null;function M(e){for(var t=r(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,i(h,t);else break;t=r(d)}}function T(e){if(_=!1,M(e),!v)if(null!==r(h))v=!0,w||(w=!0,o());else{var t=r(d);null!==t&&N(T,t.startTime-e)}}var w=!1,E=-1,A=5,C=-1;function R(){return!!y||!(n.unstable_now()-Ce&&R());){var s=f.callback;if("function"==typeof s){f.callback=null,m=f.priorityLevel;var l=s(f.expirationTime<=e);if(e=n.unstable_now(),"function"==typeof l){f.callback=l,M(e),t=!0;break t}f===r(h)&&a(h),M(e)}else a(h);f=r(h)}if(null!==f)t=!0;else{var u=r(d);null!==u&&N(T,u.startTime-e),t=!1}}break e}finally{f=null,m=i,g=!1}}}finally{t?o():w=!1}}}if("function"==typeof S)o=function(){S(P)};else if("u">typeof MessageChannel){var I=new MessageChannel,L=I.port2;I.port1.onmessage=P,o=function(){L.postMessage(null)}}else o=function(){x(P,0)};function N(e,t){E=x(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_forceFrameRate=function(e){0>e||125s?(e.sortIndex=a,i(d,e),null===r(h)&&e===r(d)&&(_?(b(E),E=-1):_=!0,N(T,a-s))):(e.sortIndex=l,i(h,e),v||g||(v=!0,w||(w=!0,o()))),e},n.unstable_shouldYield=R,n.unstable_wrapCallback=function(e){var t=m;return function(){var n=m;m=t;try{return e.apply(this,arguments)}finally{m=n}}}},89499,(e,t,n)=>{"use strict";t.exports=e.r(66936)},75056,90072,8560,8155,1950,25234,28600,e=>{"use strict";let t,n,i,r,a,s,o,l,u,c,h,d,p,f,m,g,v,_;var y,x,b,S,M,T,w=e.i(47167),E=e.i(71645);let A={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},C={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},R="attached",P="detached",I="srgb",L="srgb-linear",N="linear",U="srgb",D="300 es";class O{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});let n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;let n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;let n=this._listeners[e];if(void 0!==n){let e=n.indexOf(t);-1!==e&&n.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;let t=this._listeners[e.type];if(void 0!==t){e.target=this;let n=t.slice(0);for(let t=0,i=n.length;t>8&255]+F[e>>16&255]+F[e>>24&255]+"-"+F[255&t]+F[t>>8&255]+"-"+F[t>>16&15|64]+F[t>>24&255]+"-"+F[63&n|128]+F[n>>8&255]+"-"+F[n>>16&255]+F[n>>24&255]+F[255&i]+F[i>>8&255]+F[i>>16&255]+F[i>>24&255]).toLowerCase()}function V(e,t,n){return Math.max(t,Math.min(n,e))}function G(e,t){return(e%t+t)%t}function W(e,t,n){return(1-n)*e+n*t}function j(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/0xffffffff;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/0x7fffffff,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw Error("Invalid component type.")}}function X(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(0xffffffff*e);case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int32Array:return Math.round(0x7fffffff*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw Error("Invalid component type.")}}let q={DEG2RAD:B,RAD2DEG:k,generateUUID:H,clamp:V,euclideanModulo:G,mapLinear:function(e,t,n,i,r){return i+(e-t)*(r-i)/(n-t)},inverseLerp:function(e,t,n){return e!==t?(n-e)/(t-e):0},lerp:W,damp:function(e,t,n,i){return W(e,t,1-Math.exp(-n*i))},pingpong:function(e,t=1){return t-Math.abs(G(e,2*t)-t)},smoothstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)},smootherstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){void 0!==e&&(z=e);let t=z+=0x6d2b79f5;return t=Math.imul(t^t>>>15,1|t),(((t^=t+Math.imul(t^t>>>7,61|t))^t>>>14)>>>0)/0x100000000},degToRad:function(e){return e*B},radToDeg:function(e){return e*k},isPowerOfTwo:function(e){return(e&e-1)==0&&0!==e},ceilPowerOfTwo:function(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))},floorPowerOfTwo:function(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))},setQuaternionFromProperEuler:function(e,t,n,i,r){let a=Math.cos,s=Math.sin,o=a(n/2),l=s(n/2),u=a((t+i)/2),c=s((t+i)/2),h=a((t-i)/2),d=s((t-i)/2),p=a((i-t)/2),f=s((i-t)/2);switch(r){case"XYX":e.set(o*c,l*h,l*d,o*u);break;case"YZY":e.set(l*d,o*c,l*h,o*u);break;case"ZXZ":e.set(l*h,l*d,o*c,o*u);break;case"XZX":e.set(o*c,l*f,l*p,o*u);break;case"YXY":e.set(l*p,o*c,l*f,o*u);break;case"ZYZ":e.set(l*f,l*p,o*c,o*u);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:X,denormalize:j};class Y{constructor(e=0,t=0){Y.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());return 0===t?Math.PI/2:Math.acos(V(this.dot(e)/t,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),i=Math.sin(t),r=this.x-e.x,a=this.y-e.y;return this.x=r*n-a*i+e.x,this.y=r*i+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Z{constructor(e,t,n,i,r,a,s,o,l){Z.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==e&&this.set(e,t,n,i,r,a,s,o,l)}set(e,t,n,i,r,a,s,o,l){let u=this.elements;return u[0]=e,u[1]=i,u[2]=s,u[3]=t,u[4]=r,u[5]=o,u[6]=n,u[7]=a,u[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,r=this.elements,a=n[0],s=n[3],o=n[6],l=n[1],u=n[4],c=n[7],h=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],v=i[1],_=i[4],y=i[7],x=i[2],b=i[5],S=i[8];return r[0]=a*f+s*v+o*x,r[3]=a*m+s*_+o*b,r[6]=a*g+s*y+o*S,r[1]=l*f+u*v+c*x,r[4]=l*m+u*_+c*b,r[7]=l*g+u*y+c*S,r[2]=h*f+d*v+p*x,r[5]=h*m+d*_+p*b,r[8]=h*g+d*y+p*S,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8];return t*a*u-t*s*l-n*r*u+n*s*o+i*r*l-i*a*o}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=u*a-s*l,h=s*o-u*r,d=l*r-a*o,p=t*c+n*h+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);let f=1/p;return e[0]=c*f,e[1]=(i*l-u*n)*f,e[2]=(s*n-i*a)*f,e[3]=h*f,e[4]=(u*t-i*o)*f,e[5]=(i*r-s*t)*f,e[6]=d*f,e[7]=(n*o-l*t)*f,e[8]=(a*t-n*r)*f,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,r,a,s){let o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*a+l*s)+a+e,-i*l,i*o,-i*(-l*a+o*s)+s+t,0,0,1),this}scale(e,t){return this.premultiply(J.makeScale(e,t)),this}rotate(e){return this.premultiply(J.makeRotation(-e)),this}translate(e,t){return this.premultiply(J.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,n=e.elements;for(let e=0;e<9;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}}let J=new Z;function K(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}let $={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Q(e,t){return new $[e](t)}function ee(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}function et(){let e=ee("canvas");return e.style.display="block",e}let en={};function ei(e){e in en||(en[e]=!0,console.warn(e))}function er(e,t,n){return new Promise(function(i,r){setTimeout(function a(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:r();break;case e.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:i()}},n)})}function ea(e){let t=e.elements;t[2]=.5*t[2]+.5*t[3],t[6]=.5*t[6]+.5*t[7],t[10]=.5*t[10]+.5*t[11],t[14]=.5*t[14]+.5*t[15]}function es(e){let t=e.elements;-1===t[11]?(t[10]=-t[10]-1,t[14]=-t[14]):(t[10]=-t[10],t[14]=-t[14]+1)}let eo=new Z().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),el=new Z().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715),eu=(d=[.64,.33,.3,.6,.15,.06],p=[.2126,.7152,.0722],f=[.3127,.329],(h={enabled:!0,workingColorSpace:L,spaces:{},convert:function(e,t,n){return!1!==this.enabled&&t!==n&&t&&n&&(this.spaces[t].transfer===U&&(e.r=ec(e.r),e.g=ec(e.g),e.b=ec(e.b)),this.spaces[t].primaries!==this.spaces[n].primaries&&(e.applyMatrix3(this.spaces[t].toXYZ),e.applyMatrix3(this.spaces[n].fromXYZ)),this.spaces[n].transfer===U&&(e.r=eh(e.r),e.g=eh(e.g),e.b=eh(e.b))),e},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)},getPrimaries:function(e){return this.spaces[e].primaries},getTransfer:function(e){return""===e?N:this.spaces[e].transfer},getLuminanceCoefficients:function(e,t=this.workingColorSpace){return e.fromArray(this.spaces[t].luminanceCoefficients)},define:function(e){Object.assign(this.spaces,e)},_getMatrix:function(e,t,n){return e.copy(this.spaces[t].toXYZ).multiply(this.spaces[n].fromXYZ)},_getDrawingBufferColorSpace:function(e){return this.spaces[e].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(e=this.workingColorSpace){return this.spaces[e].workingColorSpaceConfig.unpackColorSpace}}).define({[L]:{primaries:d,whitePoint:f,transfer:N,toXYZ:eo,fromXYZ:el,luminanceCoefficients:p,workingColorSpaceConfig:{unpackColorSpace:I},outputColorSpaceConfig:{drawingBufferColorSpace:I}},[I]:{primaries:d,whitePoint:f,transfer:U,toXYZ:eo,fromXYZ:el,luminanceCoefficients:p,outputColorSpaceConfig:{drawingBufferColorSpace:I}}}),h);function ec(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function eh(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}class ed{static getDataURL(e){let n;if(/^data:/i.test(e.src)||"u"2048||n.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),n.toDataURL("image/jpeg",.6)):n.toDataURL("image/png")}static sRGBToLinear(e){if("u">typeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap){let t=ee("canvas");t.width=e.width,t.height=e.height;let n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);let i=n.getImageData(0,0,e.width,e.height),r=i.data;for(let e=0;etypeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap?ed.getDataURL(e):e.data?{data:Array.from(e.data),width:e.width,height:e.height,type:e.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let eg=0;class ev extends O{constructor(e=ev.DEFAULT_IMAGE,t=ev.DEFAULT_MAPPING,n=1001,i=1001,r=1006,a=1008,s=1023,o=1009,l=ev.DEFAULT_ANISOTROPY,u=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:eg++}),this.uuid=H(),this.name="",this.source=new ef(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=a,this.anisotropy=l,this.format=s,this.internalFormat=null,this.type=o,this.offset=new Y(0,0),this.repeat=new Y(1,1),this.center=new Y(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Z,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=u,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.pmremVersion=0}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){let t=void 0===e||"string"==typeof e;if(!t&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];let n={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(300!==this.mapping)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case 1e3:e.x=e.x-Math.floor(e.x);break;case 1001:e.x=e.x<0?0:1;break;case 1002:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case 1e3:e.y=e.y-Math.floor(e.y);break;case 1001:e.y=e.y<0?0:1;break;case 1002:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){!0===e&&this.pmremVersion++}}ev.DEFAULT_IMAGE=null,ev.DEFAULT_MAPPING=300,ev.DEFAULT_ANISOTROPY=1;class e_{constructor(e=0,t=0,n=0,i=1){e_.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,r=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*i+a[12]*r,this.y=a[1]*t+a[5]*n+a[9]*i+a[13]*r,this.z=a[2]*t+a[6]*n+a[10]*i+a[14]*r,this.w=a[3]*t+a[7]*n+a[11]*i+a[15]*r,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,r,a=e.elements,s=a[0],o=a[4],l=a[8],u=a[1],c=a[5],h=a[9],d=a[2],p=a[6],f=a[10];if(.01>Math.abs(o-u)&&.01>Math.abs(l-d)&&.01>Math.abs(h-p)){if(.1>Math.abs(o+u)&&.1>Math.abs(l+d)&&.1>Math.abs(h+p)&&.1>Math.abs(s+c+f-3))return this.set(1,0,0,0),this;t=Math.PI;let e=(s+1)/2,a=(c+1)/2,m=(f+1)/2,g=(o+u)/4,v=(l+d)/4,_=(h+p)/4;return e>a&&e>m?e<.01?(n=0,i=.707106781,r=.707106781):(i=g/(n=Math.sqrt(e)),r=v/n):a>m?a<.01?(n=.707106781,i=0,r=.707106781):(n=g/(i=Math.sqrt(a)),r=_/i):m<.01?(n=.707106781,i=.707106781,r=0):(n=v/(r=Math.sqrt(m)),i=_/r),this.set(n,i,r,t),this}let m=Math.sqrt((p-h)*(p-h)+(l-d)*(l-d)+(u-o)*(u-o));return .001>Math.abs(m)&&(m=1),this.x=(p-h)/m,this.y=(l-d)/m,this.z=(u-o)/m,this.w=Math.acos((s+c+f-1)/2),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this.z=V(this.z,e.z,t.z),this.w=V(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this.z=V(this.z,e,t),this.w=V(this.w,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class ey extends O{constructor(e=1,t=1,n={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new e_(0,0,e,t),this.scissorTest=!1,this.viewport=new e_(0,0,e,t);const i=new ev({width:e,height:t,depth:1},(n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:1006,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n)).mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);i.flipY=!1,i.generateMipmaps=n.generateMipmaps,i.internalFormat=n.internalFormat,this.textures=[];const r=n.count;for(let e=0;e=0?1:-1,i=1-t*t;if(i>Number.EPSILON){let r=Math.sqrt(i),a=Math.atan2(r,t*n);e=Math.sin(e*a)/r,s=Math.sin(s*a)/r}let r=s*n;if(o=o*e+h*r,l=l*e+d*r,u=u*e+p*r,c=c*e+f*r,e===1-s){let e=1/Math.sqrt(o*o+l*l+u*u+c*c);o*=e,l*=e,u*=e,c*=e}}e[t]=o,e[t+1]=l,e[t+2]=u,e[t+3]=c}static multiplyQuaternionsFlat(e,t,n,i,r,a){let s=n[i],o=n[i+1],l=n[i+2],u=n[i+3],c=r[a],h=r[a+1],d=r[a+2],p=r[a+3];return e[t]=s*p+u*c+o*d-l*h,e[t+1]=o*p+u*h+l*c-s*d,e[t+2]=l*p+u*d+s*h-o*c,e[t+3]=u*p-s*c-o*h-l*d,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){let n=e._x,i=e._y,r=e._z,a=e._order,s=Math.cos,o=Math.sin,l=s(n/2),u=s(i/2),c=s(r/2),h=o(n/2),d=o(i/2),p=o(r/2);switch(a){case"XYZ":this._x=h*u*c+l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c-h*d*p;break;case"YXZ":this._x=h*u*c+l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c+h*d*p;break;case"ZXY":this._x=h*u*c-l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c-h*d*p;break;case"ZYX":this._x=h*u*c-l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c+h*d*p;break;case"YZX":this._x=h*u*c+l*d*p,this._y=l*d*c+h*u*p,this._z=l*u*p-h*d*c,this._w=l*u*c-h*d*p;break;case"XZY":this._x=h*u*c-l*d*p,this._y=l*d*c-h*u*p,this._z=l*u*p+h*d*c,this._w=l*u*c+h*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return!0===t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],i=t[4],r=t[8],a=t[1],s=t[5],o=t[9],l=t[2],u=t[6],c=t[10],h=n+s+c;if(h>0){let e=.5/Math.sqrt(h+1);this._w=.25/e,this._x=(u-o)*e,this._y=(r-l)*e,this._z=(a-i)*e}else if(n>s&&n>c){let e=2*Math.sqrt(1+n-s-c);this._w=(u-o)/e,this._x=.25*e,this._y=(i+a)/e,this._z=(r+l)/e}else if(s>c){let e=2*Math.sqrt(1+s-n-c);this._w=(r-l)/e,this._x=(i+a)/e,this._y=.25*e,this._z=(o+u)/e}else{let e=2*Math.sqrt(1+c-n-s);this._w=(a-i)/e,this._x=(r+l)/e,this._y=(o+u)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0):(this._x=0,this._y=-e.z,this._z=e.y)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x),this._w=n,this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(V(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(0===n)return this;let i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,i=e._y,r=e._z,a=e._w,s=t._x,o=t._y,l=t._z,u=t._w;return this._x=n*u+a*s+i*l-r*o,this._y=i*u+a*o+r*s-n*l,this._z=r*u+a*l+n*o-i*s,this._w=a*u-n*s-i*o-r*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);let n=this._x,i=this._y,r=this._z,a=this._w,s=a*e._w+n*e._x+i*e._y+r*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=a,this._x=n,this._y=i,this._z=r,this;let o=1-s*s;if(o<=Number.EPSILON){let e=1-t;return this._w=e*a+t*this._w,this._x=e*n+t*this._x,this._y=e*i+t*this._y,this._z=e*r+t*this._z,this.normalize(),this}let l=Math.sqrt(o),u=Math.atan2(l,s),c=Math.sin((1-t)*u)/l,h=Math.sin(t*u)/l;return this._w=a*c+this._w*h,this._x=n*c+this._x*h,this._y=i*c+this._y*h,this._z=r*c+this._z*h,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),i=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(i*Math.sin(e),i*Math.cos(e),r*Math.sin(t),r*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class eE{constructor(e=0,t=0,n=0){eE.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return void 0===n&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(eC.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(eC.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*i,this.y=r[1]*t+r[4]*n+r[7]*i,this.z=r[2]*t+r[5]*n+r[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,r=e.elements,a=1/(r[3]*t+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*i+r[12])*a,this.y=(r[1]*t+r[5]*n+r[9]*i+r[13])*a,this.z=(r[2]*t+r[6]*n+r[10]*i+r[14])*a,this}applyQuaternion(e){let t=this.x,n=this.y,i=this.z,r=e.x,a=e.y,s=e.z,o=e.w,l=2*(a*i-s*n),u=2*(s*t-r*i),c=2*(r*n-a*t);return this.x=t+o*l+a*c-s*u,this.y=n+o*u+s*l-r*c,this.z=i+o*c+r*u-a*l,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*i,this.y=r[1]*t+r[5]*n+r[9]*i,this.z=r[2]*t+r[6]*n+r[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=V(this.x,e.x,t.x),this.y=V(this.y,e.y,t.y),this.z=V(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=V(this.x,e,t),this.y=V(this.y,e,t),this.z=V(this.z,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(V(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,i=e.y,r=e.z,a=t.x,s=t.y,o=t.z;return this.x=i*o-r*s,this.y=r*a-n*o,this.z=n*s-i*a,this}projectOnVector(e){let t=e.lengthSq();if(0===t)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return eA.copy(this).projectOnVector(e),this.sub(eA)}reflect(e){return this.sub(eA.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());return 0===t?Math.PI/2:Math.acos(V(this.dot(e)/t,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){let i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=2*Math.random()-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}let eA=new eE,eC=new ew;class eR{constructor(e=new eE(Infinity,Infinity,Infinity),t=new eE(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,eI),eI.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(eB),ek.subVectors(this.max,eB),eN.subVectors(e.a,eB),eU.subVectors(e.b,eB),eD.subVectors(e.c,eB),eO.subVectors(eU,eN),eF.subVectors(eD,eU),ez.subVectors(eN,eD);let t=[0,-eO.z,eO.y,0,-eF.z,eF.y,0,-ez.z,ez.y,eO.z,0,-eO.x,eF.z,0,-eF.x,ez.z,0,-ez.x,-eO.y,eO.x,0,-eF.y,eF.x,0,-ez.y,ez.x,0];return!!eG(t,eN,eU,eD,ek)&&!!eG(t=[1,0,0,0,1,0,0,0,1],eN,eU,eD,ek)&&(eH.crossVectors(eO,eF),eG(t=[eH.x,eH.y,eH.z],eN,eU,eD,ek))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,eI).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(eI).length()),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(eP[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),eP[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),eP[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),eP[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),eP[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),eP[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),eP[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),eP[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(eP)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}let eP=[new eE,new eE,new eE,new eE,new eE,new eE,new eE,new eE],eI=new eE,eL=new eR,eN=new eE,eU=new eE,eD=new eE,eO=new eE,eF=new eE,ez=new eE,eB=new eE,ek=new eE,eH=new eE,eV=new eE;function eG(e,t,n,i,r){for(let a=0,s=e.length-3;a<=s;a+=3){eV.fromArray(e,a);let s=r.x*Math.abs(eV.x)+r.y*Math.abs(eV.y)+r.z*Math.abs(eV.z),o=t.dot(eV),l=n.dot(eV),u=i.dot(eV);if(Math.max(-Math.max(o,l,u),Math.min(o,l,u))>s)return!1}return!0}let eW=new eR,ej=new eE,eX=new eE;class eq{constructor(e=new eE,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let n=this.center;void 0!==t?n.copy(t):eW.setFromPoints(e).getCenter(n);let i=0;for(let t=0,r=e.length;tthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?e.makeEmpty():(e.set(this.center,this.center),e.expandByScalar(this.radius)),e}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;ej.subVectors(e,this.center);let t=ej.lengthSq();if(t>this.radius*this.radius){let e=Math.sqrt(t),n=(e-this.radius)*.5;this.center.addScaledVector(ej,n/e),this.radius+=n}return this}union(e){return e.isEmpty()||(this.isEmpty()?this.copy(e):!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(eX.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(ej.copy(e.center).add(eX)),this.expandByPoint(ej.copy(e.center).sub(eX)))),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}let eY=new eE,eZ=new eE,eJ=new eE,eK=new eE,e$=new eE,eQ=new eE,e0=new eE;class e1{constructor(e=new eE,t=new eE(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,eY)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=eY.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(eY.copy(this.origin).addScaledVector(this.direction,t),eY.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){let r,a,s,o;eZ.copy(e).add(t).multiplyScalar(.5),eJ.copy(t).sub(e).normalize(),eK.copy(this.origin).sub(eZ);let l=.5*e.distanceTo(t),u=-this.direction.dot(eJ),c=eK.dot(this.direction),h=-eK.dot(eJ),d=eK.lengthSq(),p=Math.abs(1-u*u);if(p>0)if(r=u*h-c,a=u*c-h,o=l*p,r>=0)if(a>=-o)if(a<=o){let e=1/p;r*=e,a*=e,s=r*(r+u*a+2*c)+a*(u*r+a+2*h)+d}else s=-(r=Math.max(0,-(u*(a=l)+c)))*r+a*(a+2*h)+d;else s=-(r=Math.max(0,-(u*(a=-l)+c)))*r+a*(a+2*h)+d;else a<=-o?(a=(r=Math.max(0,-(-u*l+c)))>0?-l:Math.min(Math.max(-l,-h),l),s=-r*r+a*(a+2*h)+d):a<=o?(r=0,s=(a=Math.min(Math.max(-l,-h),l))*(a+2*h)+d):(a=(r=Math.max(0,-(u*l+c)))>0?l:Math.min(Math.max(-l,-h),l),s=-r*r+a*(a+2*h)+d);else a=u>0?-l:l,s=-(r=Math.max(0,-(u*a+c)))*r+a*(a+2*h)+d;return n&&n.copy(this.origin).addScaledVector(this.direction,r),i&&i.copy(eZ).addScaledVector(eJ,a),s}intersectSphere(e,t){eY.subVectors(e.center,this.origin);let n=eY.dot(this.direction),i=eY.dot(eY)-n*n,r=e.radius*e.radius;if(i>r)return null;let a=Math.sqrt(r-i),s=n-a,o=n+a;return o<0?null:s<0?this.at(o,t):this.at(s,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return null===n?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return!!(0===t||e.normal.dot(this.direction)*t<0)}intersectBox(e,t){let n,i,r,a,s,o,l=1/this.direction.x,u=1/this.direction.y,c=1/this.direction.z,h=this.origin;return(l>=0?(n=(e.min.x-h.x)*l,i=(e.max.x-h.x)*l):(n=(e.max.x-h.x)*l,i=(e.min.x-h.x)*l),u>=0?(r=(e.min.y-h.y)*u,a=(e.max.y-h.y)*u):(r=(e.max.y-h.y)*u,a=(e.min.y-h.y)*u),n>a||r>i||((r>n||isNaN(n))&&(n=r),(a=0?(s=(e.min.z-h.z)*c,o=(e.max.z-h.z)*c):(s=(e.max.z-h.z)*c,o=(e.min.z-h.z)*c),n>o||s>i||((s>n||n!=n)&&(n=s),(o=0?n:i,t)}intersectsBox(e){return null!==this.intersectBox(e,eY)}intersectTriangle(e,t,n,i,r){let a;e$.subVectors(t,e),eQ.subVectors(n,e),e0.crossVectors(e$,eQ);let s=this.direction.dot(e0);if(s>0){if(i)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}eK.subVectors(this.origin,e);let o=a*this.direction.dot(eQ.crossVectors(eK,eQ));if(o<0)return null;let l=a*this.direction.dot(e$.cross(eK));if(l<0||o+l>s)return null;let u=-a*eK.dot(e0);return u<0?null:this.at(u/s,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class e2{constructor(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m){e2.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==e&&this.set(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m)}set(e,t,n,i,r,a,s,o,l,u,c,h,d,p,f,m){let g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=i,g[1]=r,g[5]=a,g[9]=s,g[13]=o,g[2]=l,g[6]=u,g[10]=c,g[14]=h,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new e2().fromArray(this.elements)}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){let t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,n=e.elements,i=1/e3.setFromMatrixColumn(e,0).length(),r=1/e3.setFromMatrixColumn(e,1).length(),a=1/e3.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*r,t[5]=n[5]*r,t[6]=n[6]*r,t[7]=0,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,n=e.x,i=e.y,r=e.z,a=Math.cos(n),s=Math.sin(n),o=Math.cos(i),l=Math.sin(i),u=Math.cos(r),c=Math.sin(r);if("XYZ"===e.order){let e=a*u,n=a*c,i=s*u,r=s*c;t[0]=o*u,t[4]=-o*c,t[8]=l,t[1]=n+i*l,t[5]=e-r*l,t[9]=-s*o,t[2]=r-e*l,t[6]=i+n*l,t[10]=a*o}else if("YXZ"===e.order){let e=o*u,n=o*c,i=l*u,r=l*c;t[0]=e+r*s,t[4]=i*s-n,t[8]=a*l,t[1]=a*c,t[5]=a*u,t[9]=-s,t[2]=n*s-i,t[6]=r+e*s,t[10]=a*o}else if("ZXY"===e.order){let e=o*u,n=o*c,i=l*u,r=l*c;t[0]=e-r*s,t[4]=-a*c,t[8]=i+n*s,t[1]=n+i*s,t[5]=a*u,t[9]=r-e*s,t[2]=-a*l,t[6]=s,t[10]=a*o}else if("ZYX"===e.order){let e=a*u,n=a*c,i=s*u,r=s*c;t[0]=o*u,t[4]=i*l-n,t[8]=e*l+r,t[1]=o*c,t[5]=r*l+e,t[9]=n*l-i,t[2]=-l,t[6]=s*o,t[10]=a*o}else if("YZX"===e.order){let e=a*o,n=a*l,i=s*o,r=s*l;t[0]=o*u,t[4]=r-e*c,t[8]=i*c+n,t[1]=c,t[5]=a*u,t[9]=-s*u,t[2]=-l*u,t[6]=n*c+i,t[10]=e-r*c}else if("XZY"===e.order){let e=a*o,n=a*l,i=s*o,r=s*l;t[0]=o*u,t[4]=-c,t[8]=l*u,t[1]=e*c+r,t[5]=a*u,t[9]=n*c-i,t[2]=i*c-n,t[6]=s*u,t[10]=r*c+e}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(e5,e,e6)}lookAt(e,t,n){let i=this.elements;return e7.subVectors(e,t),0===e7.lengthSq()&&(e7.z=1),e7.normalize(),e8.crossVectors(n,e7),0===e8.lengthSq()&&(1===Math.abs(n.z)?e7.x+=1e-4:e7.z+=1e-4,e7.normalize(),e8.crossVectors(n,e7)),e8.normalize(),e9.crossVectors(e7,e8),i[0]=e8.x,i[4]=e9.x,i[8]=e7.x,i[1]=e8.y,i[5]=e9.y,i[9]=e7.y,i[2]=e8.z,i[6]=e9.z,i[10]=e7.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,r=this.elements,a=n[0],s=n[4],o=n[8],l=n[12],u=n[1],c=n[5],h=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],v=n[3],_=n[7],y=n[11],x=n[15],b=i[0],S=i[4],M=i[8],T=i[12],w=i[1],E=i[5],A=i[9],C=i[13],R=i[2],P=i[6],I=i[10],L=i[14],N=i[3],U=i[7],D=i[11],O=i[15];return r[0]=a*b+s*w+o*R+l*N,r[4]=a*S+s*E+o*P+l*U,r[8]=a*M+s*A+o*I+l*D,r[12]=a*T+s*C+o*L+l*O,r[1]=u*b+c*w+h*R+d*N,r[5]=u*S+c*E+h*P+d*U,r[9]=u*M+c*A+h*I+d*D,r[13]=u*T+c*C+h*L+d*O,r[2]=p*b+f*w+m*R+g*N,r[6]=p*S+f*E+m*P+g*U,r[10]=p*M+f*A+m*I+g*D,r[14]=p*T+f*C+m*L+g*O,r[3]=v*b+_*w+y*R+x*N,r[7]=v*S+_*E+y*P+x*U,r[11]=v*M+_*A+y*I+x*D,r[15]=v*T+_*C+y*L+x*O,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[4],i=e[8],r=e[12],a=e[1],s=e[5],o=e[9],l=e[13],u=e[2],c=e[6],h=e[10],d=e[14];return e[3]*(r*o*c-i*l*c-r*s*h+n*l*h+i*s*d-n*o*d)+e[7]*(t*o*d-t*l*h+r*a*h-i*a*d+i*l*u-r*o*u)+e[11]*(t*l*c-t*s*d-r*a*c+n*a*d+r*s*u-n*l*u)+e[15]*(-i*s*u-t*o*c+t*s*h+i*a*c-n*a*h+n*o*u)}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(e,t,n){let i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],v=c*m*l-f*h*l+f*o*d-s*m*d-c*o*g+s*h*g,_=p*h*l-u*m*l-p*o*d+a*m*d+u*o*g-a*h*g,y=u*f*l-p*c*l+p*s*d-a*f*d-u*s*g+a*c*g,x=p*c*o-u*f*o-p*s*h+a*f*h+u*s*m-a*c*m,b=t*v+n*_+i*y+r*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let S=1/b;return e[0]=v*S,e[1]=(f*h*r-c*m*r-f*i*d+n*m*d+c*i*g-n*h*g)*S,e[2]=(s*m*r-f*o*r+f*i*l-n*m*l-s*i*g+n*o*g)*S,e[3]=(c*o*r-s*h*r-c*i*l+n*h*l+s*i*d-n*o*d)*S,e[4]=_*S,e[5]=(u*m*r-p*h*r+p*i*d-t*m*d-u*i*g+t*h*g)*S,e[6]=(p*o*r-a*m*r-p*i*l+t*m*l+a*i*g-t*o*g)*S,e[7]=(a*h*r-u*o*r+u*i*l-t*h*l-a*i*d+t*o*d)*S,e[8]=y*S,e[9]=(p*c*r-u*f*r-p*n*d+t*f*d+u*n*g-t*c*g)*S,e[10]=(a*f*r-p*s*r+p*n*l-t*f*l-a*n*g+t*s*g)*S,e[11]=(u*s*r-a*c*r-u*n*l+t*c*l+a*n*d-t*s*d)*S,e[12]=x*S,e[13]=(u*f*i-p*c*i+p*n*h-t*f*h-u*n*m+t*c*m)*S,e[14]=(p*s*i-a*f*i-p*n*o+t*f*o+a*n*m-t*s*m)*S,e[15]=(a*c*i-u*s*i+u*n*o-t*c*o-a*n*h+t*s*h)*S,this}scale(e){let t=this.elements,n=e.x,i=e.y,r=e.z;return t[0]*=n,t[4]*=i,t[8]*=r,t[1]*=n,t[5]*=i,t[9]*=r,t[2]*=n,t[6]*=i,t[10]*=r,t[3]*=n,t[7]*=i,t[11]*=r,this}getMaxScaleOnAxis(){let e=this.elements;return Math.sqrt(Math.max(e[0]*e[0]+e[1]*e[1]+e[2]*e[2],e[4]*e[4]+e[5]*e[5]+e[6]*e[6],e[8]*e[8]+e[9]*e[9]+e[10]*e[10]))}makeTranslation(e,t,n){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let n=Math.cos(t),i=Math.sin(t),r=1-n,a=e.x,s=e.y,o=e.z,l=r*a,u=r*s;return this.set(l*a+n,l*s-i*o,l*o+i*s,0,l*s+i*o,u*s+n,u*o-i*a,0,l*o-i*s,u*o+i*a,r*o*o+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,r,a){return this.set(1,n,r,0,e,1,a,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){let i=this.elements,r=t._x,a=t._y,s=t._z,o=t._w,l=r+r,u=a+a,c=s+s,h=r*l,d=r*u,p=r*c,f=a*u,m=a*c,g=s*c,v=o*l,_=o*u,y=o*c,x=n.x,b=n.y,S=n.z;return i[0]=(1-(f+g))*x,i[1]=(d+y)*x,i[2]=(p-_)*x,i[3]=0,i[4]=(d-y)*b,i[5]=(1-(h+g))*b,i[6]=(m+v)*b,i[7]=0,i[8]=(p+_)*S,i[9]=(m-v)*S,i[10]=(1-(h+f))*S,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){let i=this.elements,r=e3.set(i[0],i[1],i[2]).length(),a=e3.set(i[4],i[5],i[6]).length(),s=e3.set(i[8],i[9],i[10]).length();0>this.determinant()&&(r=-r),e.x=i[12],e.y=i[13],e.z=i[14],e4.copy(this);let o=1/r,l=1/a,u=1/s;return e4.elements[0]*=o,e4.elements[1]*=o,e4.elements[2]*=o,e4.elements[4]*=l,e4.elements[5]*=l,e4.elements[6]*=l,e4.elements[8]*=u,e4.elements[9]*=u,e4.elements[10]*=u,t.setFromRotationMatrix(e4),n.x=r,n.y=a,n.z=s,this}makePerspective(e,t,n,i,r,a,s=2e3){let o,l,u=this.elements;if(2e3===s)o=-(a+r)/(a-r),l=-2*a*r/(a-r);else if(2001===s)o=-a/(a-r),l=-a*r/(a-r);else throw Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+s);return u[0]=2*r/(t-e),u[4]=0,u[8]=(t+e)/(t-e),u[12]=0,u[1]=0,u[5]=2*r/(n-i),u[9]=(n+i)/(n-i),u[13]=0,u[2]=0,u[6]=0,u[10]=o,u[14]=l,u[3]=0,u[7]=0,u[11]=-1,u[15]=0,this}makeOrthographic(e,t,n,i,r,a,s=2e3){let o,l,u=this.elements,c=1/(t-e),h=1/(n-i),d=1/(a-r);if(2e3===s)o=(a+r)*d,l=-2*d;else if(2001===s)o=r*d,l=-1*d;else throw Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+s);return u[0]=2*c,u[4]=0,u[8]=0,u[12]=-((t+e)*c),u[1]=0,u[5]=2*h,u[9]=0,u[13]=-((n+i)*h),u[2]=0,u[6]=0,u[10]=l,u[14]=-o,u[3]=0,u[7]=0,u[11]=0,u[15]=1,this}equals(e){let t=this.elements,n=e.elements;for(let e=0;e<16;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}let e3=new eE,e4=new e2,e5=new eE(0,0,0),e6=new eE(1,1,1),e8=new eE,e9=new eE,e7=new eE,te=new e2,tt=new ew;class tn{constructor(e=0,t=0,n=0,i=tn.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){let i=e.elements,r=i[0],a=i[4],s=i[8],o=i[1],l=i[5],u=i[9],c=i[2],h=i[6],d=i[10];switch(t){case"XYZ":this._y=Math.asin(V(s,-1,1)),.9999999>Math.abs(s)?(this._x=Math.atan2(-u,d),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(h,l),this._z=0);break;case"YXZ":this._x=Math.asin(-V(u,-1,1)),.9999999>Math.abs(u)?(this._y=Math.atan2(s,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-c,r),this._z=0);break;case"ZXY":this._x=Math.asin(V(h,-1,1)),.9999999>Math.abs(h)?(this._y=Math.atan2(-c,d),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-V(c,-1,1)),.9999999>Math.abs(c)?(this._x=Math.atan2(h,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(V(o,-1,1)),.9999999>Math.abs(o)?(this._x=Math.atan2(-u,l),this._y=Math.atan2(-c,r)):(this._x=0,this._y=Math.atan2(s,d));break;case"XZY":this._z=Math.asin(-V(a,-1,1)),.9999999>Math.abs(a)?(this._x=Math.atan2(h,l),this._y=Math.atan2(s,r)):(this._x=Math.atan2(-u,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===n&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return te.makeRotationFromQuaternion(e),this.setFromRotationMatrix(te,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return tt.setFromEuler(this),this.setFromQuaternion(tt,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}tn.DEFAULT_ORDER="XYZ";class ti{constructor(){this.mask=1}set(e){this.mask=1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map(e=>({boxInitialized:e.boxInitialized,boxMin:e.box.min.toArray(),boxMax:e.box.max.toArray(),sphereInitialized:e.sphereInitialized,sphereRadius:e.sphere.radius,sphereCenter:e.sphere.center.toArray()})),i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(e),null!==this._colorsTexture&&(i.colorsTexture=this._colorsTexture.toJSON(e)),null!==this.boundingSphere&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),null!==this.boundingBox&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(e.geometries,this.geometry);let t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){let n=t.shapes;if(Array.isArray(n))for(let t=0,i=n.length;t0){i.children=[];for(let t=0;t0){i.animations=[];for(let t=0;t0&&(n.geometries=t),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),s.length>0&&(n.images=s),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),u.length>0&&(n.animations=u),c.length>0&&(n.nodes=c)}return n.object=i,n;function a(e){let t=[];for(let n in e){let i=e[n];delete i.metadata,t.push(i)}return t}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let t=0;t0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(e,t,n,i,r){tx.subVectors(i,t),tb.subVectors(n,t),tS.subVectors(e,t);let a=tx.dot(tx),s=tx.dot(tb),o=tx.dot(tS),l=tb.dot(tb),u=tb.dot(tS),c=a*l-s*s;if(0===c)return r.set(0,0,0),null;let h=1/c,d=(l*o-s*u)*h,p=(a*u-s*o)*h;return r.set(1-d-p,p,d)}static containsPoint(e,t,n,i){return null!==this.getBarycoord(e,t,n,i,tM)&&tM.x>=0&&tM.y>=0&&tM.x+tM.y<=1}static getInterpolation(e,t,n,i,r,a,s,o){return null===this.getBarycoord(e,t,n,i,tM)?(o.x=0,o.y=0,"z"in o&&(o.z=0),"w"in o&&(o.w=0),null):(o.setScalar(0),o.addScaledVector(r,tM.x),o.addScaledVector(a,tM.y),o.addScaledVector(s,tM.z),o)}static getInterpolatedAttribute(e,t,n,i,r,a){return tP.setScalar(0),tI.setScalar(0),tL.setScalar(0),tP.fromBufferAttribute(e,t),tI.fromBufferAttribute(e,n),tL.fromBufferAttribute(e,i),a.setScalar(0),a.addScaledVector(tP,r.x),a.addScaledVector(tI,r.y),a.addScaledVector(tL,r.z),a}static isFrontFacing(e,t,n,i){return tx.subVectors(n,t),tb.subVectors(e,t),0>tx.cross(tb).dot(i)}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return tx.subVectors(this.c,this.b),tb.subVectors(this.a,this.b),.5*tx.cross(tb).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return tN.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return tN.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,n,i,r){return tN.getInterpolation(e,this.a,this.b,this.c,t,n,i,r)}containsPoint(e){return tN.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return tN.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n,i,r=this.a,a=this.b,s=this.c;tT.subVectors(a,r),tw.subVectors(s,r),tA.subVectors(e,r);let o=tT.dot(tA),l=tw.dot(tA);if(o<=0&&l<=0)return t.copy(r);tC.subVectors(e,a);let u=tT.dot(tC),c=tw.dot(tC);if(u>=0&&c<=u)return t.copy(a);let h=o*c-u*l;if(h<=0&&o>=0&&u<=0)return n=o/(o-u),t.copy(r).addScaledVector(tT,n);tR.subVectors(e,s);let d=tT.dot(tR),p=tw.dot(tR);if(p>=0&&d<=p)return t.copy(s);let f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return i=l/(l-p),t.copy(r).addScaledVector(tw,i);let m=u*p-d*c;if(m<=0&&c-u>=0&&d-p>=0)return tE.subVectors(s,a),i=(c-u)/(c-u+(d-p)),t.copy(a).addScaledVector(tE,i);let g=1/(m+f+h);return n=f*g,i=h*g,t.copy(r).addScaledVector(tT,n).addScaledVector(tw,i)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let tU={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32},tD={h:0,s:0,l:0},tO={h:0,s:0,l:0};function tF(e,t,n){return(n<0&&(n+=1),n>1&&(n-=1),n<1/6)?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*6*(2/3-n):e}class tz{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){return void 0===t&&void 0===n?e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e):this.setRGB(e,t,n),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=I){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,eu.toWorkingColorSpace(this,t),this}setRGB(e,t,n,i=eu.workingColorSpace){return this.r=e,this.g=t,this.b=n,eu.toWorkingColorSpace(this,i),this}setHSL(e,t,n,i=eu.workingColorSpace){if(e=G(e,1),t=V(t,0,1),n=V(n,0,1),0===t)this.r=this.g=this.b=n;else{let i=n<=.5?n*(1+t):n+t-n*t,r=2*n-i;this.r=tF(r,i,e+1/3),this.g=tF(r,i,e),this.b=tF(r,i,e-1/3)}return eu.toWorkingColorSpace(this,i),this}setStyle(e,t=I){let n;function i(t){void 0!==t&&1>parseFloat(t)&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}if(n=/^(\w+)\(([^\)]*)\)/.exec(e)){let r,a=n[1],s=n[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return i(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){let i=n[1],r=i.length;if(3===r)return this.setRGB(parseInt(i.charAt(0),16)/15,parseInt(i.charAt(1),16)/15,parseInt(i.charAt(2),16)/15,t);if(6===r)return this.setHex(parseInt(i,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=I){let n=tU[e.toLowerCase()];return void 0!==n?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=ec(e.r),this.g=ec(e.g),this.b=ec(e.b),this}copyLinearToSRGB(e){return this.r=eh(e.r),this.g=eh(e.g),this.b=eh(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=I){return eu.fromWorkingColorSpace(tB.copy(this),e),65536*Math.round(V(255*tB.r,0,255))+256*Math.round(V(255*tB.g,0,255))+Math.round(V(255*tB.b,0,255))}getHexString(e=I){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=eu.workingColorSpace){let n,i;eu.fromWorkingColorSpace(tB.copy(this),t);let r=tB.r,a=tB.g,s=tB.b,o=Math.max(r,a,s),l=Math.min(r,a,s),u=(l+o)/2;if(l===o)n=0,i=0;else{let e=o-l;switch(i=u<=.5?e/(o+l):e/(2-o-l),o){case r:n=(a-s)/e+6*(a0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(let t in e){let n=e[t];if(void 0===n){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}let i=this[t];if(void 0===i){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){let t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});let n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(e){let t=[];for(let n in e){let i=e[n];delete i.metadata,t.push(i)}return t}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.dispersion&&(n.dispersion=this.dispersion),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapRotation&&(n.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),!0===this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=!0),204!==this.blendSrc&&(n.blendSrc=this.blendSrc),205!==this.blendDst&&(n.blendDst=this.blendDst),100!==this.blendEquation&&(n.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(n.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(n.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(n.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(n.depthFunc=this.depthFunc),!1===this.depthTest&&(n.depthTest=this.depthTest),!1===this.depthWrite&&(n.depthWrite=this.depthWrite),!1===this.colorWrite&&(n.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(n.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(n.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(n.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(n.stencilFuncMask=this.stencilFuncMask),7680!==this.stencilFail&&(n.stencilFail=this.stencilFail),7680!==this.stencilZFail&&(n.stencilZFail=this.stencilZFail),7680!==this.stencilZPass&&(n.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(n.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaHash&&(n.alphaHash=!0),!0===this.alphaToCoverage&&(n.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=!0),!0===this.forceSinglePass&&(n.forceSinglePass=!0),!0===this.wireframe&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),t){let t=i(e.textures),r=i(e.images);t.length>0&&(n.textures=t),r.length>0&&(n.images=r)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,n=null;if(null!==t){let e=t.length;n=Array(e);for(let i=0;i!==e;++i)n[i]=t[i].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class tV extends tH{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new tz(0xffffff),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}let tG=function(){let e=new ArrayBuffer(4),t=new Float32Array(e),n=new Uint32Array(e),i=new Uint32Array(512),r=new Uint32Array(512);for(let e=0;e<256;++e){let t=e-127;t<-27?(i[e]=0,i[256|e]=32768,r[e]=24,r[256|e]=24):t<-14?(i[e]=1024>>-t-14,i[256|e]=1024>>-t-14|32768,r[e]=-t-1,r[256|e]=-t-1):t<=15?(i[e]=t+15<<10,i[256|e]=t+15<<10|32768,r[e]=13,r[256|e]=13):t<128?(i[e]=31744,i[256|e]=64512,r[e]=24,r[256|e]=24):(i[e]=31744,i[256|e]=64512,r[e]=13,r[256|e]=13)}let a=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let e=1;e<1024;++e){let t=e<<13,n=0;for(;(8388608&t)==0;)t<<=1,n-=8388608;t&=-8388609,n+=0x38800000,a[e]=t|n}for(let e=1024;e<2048;++e)a[e]=0x38000000+(e-1024<<13);for(let e=1;e<31;++e)s[e]=e<<23;s[31]=0x47800000,s[32]=0x80000000;for(let e=33;e<63;++e)s[e]=0x80000000+(e-32<<23);s[63]=0xc7800000;for(let e=1;e<64;++e)32!==e&&(o[e]=1024);return{floatView:t,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:a,exponentTable:s,offsetTable:o}}();function tW(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=V(e,-65504,65504),tG.floatView[0]=e;let t=tG.uint32View[0],n=t>>23&511;return tG.baseTable[n]+((8388607&t)>>tG.shiftTable[n])}function tj(e){let t=e>>10;return tG.uint32View[0]=tG.mantissaTable[tG.offsetTable[t]+(1023&e)]+tG.exponentTable[t],tG.floatView[0]}let tX={toHalfFloat:tW,fromHalfFloat:tj},tq=new eE,tY=new Y;class tZ{constructor(e,t,n=!1){if(Array.isArray(e))throw TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=n,this.usage=35044,this.updateRanges=[],this.gpuType=1015,this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,r=this.itemSize;it.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new eR);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new eE(-1/0,-1/0,-1/0),new eE(Infinity,Infinity,Infinity));return}if(void 0!==e){if(this.boundingBox.setFromBufferAttribute(e),t)for(let e=0,n=t.length;e0&&(e.userData=this.userData),void 0!==this.parameters){let t=this.parameters;for(let n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};let t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let t in n){let i=n[t];e.data.attributes[t]=i.toJSON(e.data)}let i={},r=!1;for(let t in this.morphAttributes){let n=this.morphAttributes[t],a=[];for(let t=0,i=n.length;t0&&(i[t]=a,r=!0)}r&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));let s=this.boundingSphere;return null!==s&&(e.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;null!==n&&this.setIndex(n.clone(t));let i=e.attributes;for(let e in i){let n=i[e];this.setAttribute(e,n.clone(t))}let r=e.morphAttributes;for(let e in r){let n=[],i=r[e];for(let e=0,r=i.length;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e(e.far-e.near)**2)||(ni.copy(r).invert(),nr.copy(e.ray).applyMatrix4(ni),(null===n.boundingBox||!1!==nr.intersectsBox(n.boundingBox))&&this._computeIntersections(e,t,nr)))}_computeIntersections(e,t,n){let i,r=this.geometry,a=this.material,s=r.index,o=r.attributes.position,l=r.attributes.uv,u=r.attributes.uv1,c=r.attributes.normal,h=r.groups,d=r.drawRange;if(null!==s)if(Array.isArray(a))for(let r=0,o=h.length;rn.far?null:{distance:l,point:np.clone(),object:e}}(e,t,n,i,no,nl,nu,nd);if(c){let e=new eE;tN.getBarycoord(nd,no,nl,nu,e),r&&(c.uv=tN.getInterpolatedAttribute(r,o,l,u,e,new Y)),a&&(c.uv1=tN.getInterpolatedAttribute(a,o,l,u,e,new Y)),s&&(c.normal=tN.getInterpolatedAttribute(s,o,l,u,e,new eE),c.normal.dot(i.direction)>0&&c.normal.multiplyScalar(-1));let t={a:o,b:l,c:u,normal:new eE,materialIndex:0};tN.getNormal(no,nl,nu,t.normal),c.face=t,c.barycoord=e}return c}class ng extends nn{constructor(e=1,t=1,n=1,i=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:i,heightSegments:r,depthSegments:a};const s=this;i=Math.floor(i),r=Math.floor(r);const o=[],l=[],u=[],c=[];let h=0,d=0;function p(e,t,n,i,r,a,p,f,m,g,v){let _=a/m,y=p/g,x=a/2,b=p/2,S=f/2,M=m+1,T=g+1,w=0,E=0,A=new eE;for(let a=0;a0?1:-1,u.push(A.x,A.y,A.z),c.push(o/m),c.push(1-a/g),w+=1}}for(let e=0;e0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let n={};for(let e in this.extensions)!0===this.extensions[e]&&(n[e]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}class nS extends ty{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new e2,this.projectionMatrix=new e2,this.projectionMatrixInverse=new e2,this.coordinateSystem=2e3}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}let nM=new eE,nT=new Y,nw=new Y;class nE extends nS{constructor(e=50,t=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=2*k*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(.5*B*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*k*Math.atan(Math.tan(.5*B*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,n){nM.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(nM.x,nM.y).multiplyScalar(-e/nM.z),nM.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(nM.x,nM.y).multiplyScalar(-e/nM.z)}getViewSize(e,t){return this.getViewBounds(e,nT,nw),t.subVectors(nw,nT)}setViewOffset(e,t,n,i,r,a){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(.5*B*this.fov)/this.zoom,n=2*t,i=this.aspect*n,r=-.5*i,a=this.view;if(null!==this.view&&this.view.enabled){let e=a.fullWidth,s=a.fullHeight;r+=a.offsetX*i/e,t-=a.offsetY*n/s,i*=a.width/e,n*=a.height/s}let s=this.filmOffset;0!==s&&(r+=e*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,t,t-n,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}class nA extends ty{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new nE(-90,1,e,t);i.layers=this.layers,this.add(i);const r=new nE(-90,1,e,t);r.layers=this.layers,this.add(r);const a=new nE(-90,1,e,t);a.layers=this.layers,this.add(a);const s=new nE(-90,1,e,t);s.layers=this.layers,this.add(s);const o=new nE(-90,1,e,t);o.layers=this.layers,this.add(o);const l=new nE(-90,1,e,t);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[n,i,r,a,s,o]=t;for(let e of t)this.remove(e);if(2e3===e)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),s.up.set(0,1,0),s.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else if(2001===e)n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),s.up.set(0,-1,0),s.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1);else throw Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(let e of t)this.add(e),e.updateMatrixWorld()}update(e,t){null===this.parent&&this.updateMatrixWorld();let{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[r,a,s,o,l,u]=this.children,c=e.getRenderTarget(),h=e.getActiveCubeFace(),d=e.getActiveMipmapLevel(),p=e.xr.enabled;e.xr.enabled=!1;let f=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0,i),e.render(t,r),e.setRenderTarget(n,1,i),e.render(t,a),e.setRenderTarget(n,2,i),e.render(t,s),e.setRenderTarget(n,3,i),e.render(t,o),e.setRenderTarget(n,4,i),e.render(t,l),n.texture.generateMipmaps=f,e.setRenderTarget(n,5,i),e.render(t,u),e.setRenderTarget(c,h,d),e.xr.enabled=p,n.texture.needsPMREMUpdate=!0}}class nC extends ev{constructor(e,t,n,i,r,a,s,o,l,u){super(e=void 0!==e?e:[],t=void 0!==t?t:301,n,i,r,a,s,o,l,u),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class nR extends ex{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1};this.texture=new nC([n,n,n,n,n,n],t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:1006}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},i=new ng(5,5,5),r=new nb({name:"CubemapFromEquirect",uniforms:nv(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=t;let a=new nf(i,r),s=t.minFilter;return 1008===t.minFilter&&(t.minFilter=1006),new nA(1,10,this).update(e,a),t.minFilter=s,a.geometry.dispose(),a.material.dispose(),this}clear(e,t,n,i){let r=e.getRenderTarget();for(let r=0;r<6;r++)e.setRenderTarget(this,r),e.clear(t,n,i);e.setRenderTarget(r)}}class nP{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new tz(e),this.density=t}clone(){return new nP(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class nI{constructor(e,t=1,n=1e3){this.isFog=!0,this.name="",this.color=new tz(e),this.near=t,this.far=n}clone(){return new nI(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class nL extends ty{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new tn,this.environmentIntensity=1,this.environmentRotation=new tn,this.overrideMaterial=null,"u">typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}}class nN{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=35044,this.updateRanges=[],this.version=0,this.uuid=H()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,r=this.stride;ie.far||t.push({distance:o,point:nF.clone(),uv:tN.getInterpolation(nF,nG,nW,nj,nX,nq,nY,new Y),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function nJ(e,t,n,i,r,a){nk.subVectors(e,n).addScalar(.5).multiply(i),void 0!==r?(nH.x=a*nk.x-r*nk.y,nH.y=r*nk.x+a*nk.y):nH.copy(nk),e.copy(t),e.x+=nH.x,e.y+=nH.y,e.applyMatrix4(nV)}let nK=new eE,n$=new eE;class nQ extends ty{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let e=0,n=t.length;e0){let n,i;for(n=1,i=t.length;n0){nK.setFromMatrixPosition(this.matrixWorld);let n=e.ray.origin.distanceTo(nK);this.getObjectForDistance(n).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){let n,i;nK.setFromMatrixPosition(e.matrixWorld),n$.setFromMatrixPosition(this.matrixWorld);let r=nK.distanceTo(n$)/e.zoom;for(n=1,t[0].object.visible=!0,i=t.length;n=e)t[n-1].object.visible=!1,t[n].object.visible=!0;else break}for(this._currentLevel=n-1;n1?null:t.copy(e.start).addScaledVector(n,r)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let n=t||i_.getNormalMatrix(e),i=this.coplanarPoint(ig).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}let ix=new eq,ib=new eE;class iS{constructor(e=new iy,t=new iy,n=new iy,i=new iy,r=new iy,a=new iy){this.planes=[e,t,n,i,r,a]}set(e,t,n,i,r,a){let s=this.planes;return s[0].copy(e),s[1].copy(t),s[2].copy(n),s[3].copy(i),s[4].copy(r),s[5].copy(a),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=2e3){let n=this.planes,i=e.elements,r=i[0],a=i[1],s=i[2],o=i[3],l=i[4],u=i[5],c=i[6],h=i[7],d=i[8],p=i[9],f=i[10],m=i[11],g=i[12],v=i[13],_=i[14],y=i[15];if(n[0].setComponents(o-r,h-l,m-d,y-g).normalize(),n[1].setComponents(o+r,h+l,m+d,y+g).normalize(),n[2].setComponents(o+a,h+u,m+p,y+v).normalize(),n[3].setComponents(o-a,h-u,m-p,y-v).normalize(),n[4].setComponents(o-s,h-c,m-f,y-_).normalize(),2e3===t)n[5].setComponents(o+s,h+c,m+f,y+_).normalize();else if(2001===t)n[5].setComponents(s,c,f,_).normalize();else throw Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),ix.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),ix.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(ix)}intersectsSprite(e){return ix.center.set(0,0,0),ix.radius=.7071067811865476,ix.applyMatrix4(e.matrixWorld),this.intersectsSphere(ix)}intersectsSphere(e){let t=this.planes,n=e.center,i=-e.radius;for(let e=0;e<6;e++)if(t[e].distanceToPoint(n)0?e.max.x:e.min.x,ib.y=i.normal.y>0?e.max.y:e.min.y,ib.z=i.normal.z>0?e.max.z:e.min.z,0>i.distanceToPoint(ib))return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(0>t[n].distanceToPoint(e))return!1;return!0}clone(){return new this.constructor().copy(this)}}function iM(e,t){return e-t}function iT(e,t){return e.z-t.z}function iw(e,t){return t.z-e.z}let iE=new e2,iA=new tz(1,1,1),iC=new iS,iR=new eR,iP=new eq,iI=new eE,iL=new eE,iN=new eE,iU=new class{constructor(){this.index=0,this.pool=[],this.list=[]}push(e,t,n,i){let r=this.pool,a=this.list;this.index>=r.length&&r.push({start:-1,count:-1,z:-1,index:-1});let s=r[this.index];a.push(s),this.index++,s.start=e,s.count=t,s.z=n,s.index=i}reset(){this.list.length=0,this.index=0}},iD=new nf,iO=[];function iF(e,t){if(e.constructor!==t.constructor){let n=Math.min(e.length,t.length);for(let i=0;i65535?new Uint32Array(i):new Uint16Array(i);t.setIndex(new tZ(e,1))}this._geometryInitialized=!0}}_validateGeometry(e){let t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(let n in t.attributes){if(!e.hasAttribute(n))throw Error(`THREE.BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);let i=e.getAttribute(n),r=t.getAttribute(n);if(i.itemSize!==r.itemSize||i.normalized!==r.normalized)throw Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){let t=this._instanceInfo;if(e<0||e>=t.length||!1===t[e].active)throw Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){let t=this._geometryInfo;if(e<0||e>=t.length||!1===t[e].active)throw Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new eR);let e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let n=0,i=t.length;n=this.maxInstanceCount&&0===this._availableInstanceIds.length)throw Error("THREE.BatchedMesh: Maximum item count reached.");let t={visible:!0,active:!0,geometryIndex:e},n=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(iM),n=this._availableInstanceIds.shift(),this._instanceInfo[n]=t):(n=this._instanceInfo.length,this._instanceInfo.push(t));let i=this._matricesTexture;iE.identity().toArray(i.image.data,16*n),i.needsUpdate=!0;let r=this._colorsTexture;return r&&(iA.toArray(r.image.data,4*n),r.needsUpdate=!0),this._visibilityChanged=!0,n}addGeometry(e,t=-1,n=-1){let i;this._initializeGeometry(e),this._validateGeometry(e);let r={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},a=this._geometryInfo;r.vertexStart=this._nextVertexStart,r.reservedVertexCount=-1===t?e.getAttribute("position").count:t;let s=e.getIndex();if(null!==s&&(r.indexStart=this._nextIndexStart,r.reservedIndexCount=-1===n?s.count:n),-1!==r.indexStart&&r.indexStart+r.reservedIndexCount>this._maxIndexCount||r.vertexStart+r.reservedVertexCount>this._maxVertexCount)throw Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(iM),a[i=this._availableGeometryIds.shift()]=r):(i=this._geometryCount,this._geometryCount++,a.push(r)),this.setGeometryAt(i,e),this._nextIndexStart=r.indexStart+r.reservedIndexCount,this._nextVertexStart=r.vertexStart+r.reservedVertexCount,i}setGeometryAt(e,t){if(e>=this._geometryCount)throw Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);let n=this.geometry,i=null!==n.getIndex(),r=n.getIndex(),a=t.getIndex(),s=this._geometryInfo[e];if(i&&a.count>s.reservedIndexCount||t.attributes.position.count>s.reservedVertexCount)throw Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");let o=s.vertexStart,l=s.reservedVertexCount;for(let e in s.vertexCount=t.getAttribute("position").count,n.attributes){let i=t.getAttribute(e),r=n.getAttribute(e);!function(e,t,n=0){let i=t.itemSize;if(e.isInterleavedBufferAttribute||e.array.constructor!==t.array.constructor){let r=e.count;for(let a=0;a=t.length||!1===t[e].active)return this;let n=this._instanceInfo;for(let t=0,i=n.length;tt).sort((e,t)=>n[e].vertexStart-n[t].vertexStart),r=this.geometry;for(let a=0,s=n.length;a=this._geometryCount)return null;let n=this.geometry,i=this._geometryInfo[e];if(null===i.boundingBox){let e=new eR,t=n.index,r=n.attributes.position;for(let n=i.start,a=i.start+i.count;n=this._geometryCount)return null;let n=this.geometry,i=this._geometryInfo[e];if(null===i.boundingSphere){let t=new eq;this.getBoundingBoxAt(e,iR),iR.getCenter(t.center);let r=n.index,a=n.attributes.position,s=0;for(let e=i.start,n=i.start+i.count;ee.active);if(Math.max(...n.map(e=>e.vertexStart+e.reservedVertexCount))>e)throw Error(`BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...n.map(e=>e.indexStart+e.reservedIndexCount))>t)throw Error(`BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);let i=this.geometry;i.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new nn,this._initializeGeometry(i));let r=this.geometry;for(let e in i.index&&iF(i.index.array,r.index.array),i.attributes)iF(i.attributes[e].array,r.attributes[e].array)}raycast(e,t){let n=this._instanceInfo,i=this._geometryInfo,r=this.matrixWorld,a=this.geometry;iD.material=this.material,iD.geometry.index=a.index,iD.geometry.attributes=a.attributes,null===iD.geometry.boundingBox&&(iD.geometry.boundingBox=new eR),null===iD.geometry.boundingSphere&&(iD.geometry.boundingSphere=new eq);for(let a=0,s=n.length;a({...e,boundingBox:null!==e.boundingBox?e.boundingBox.clone():null,boundingSphere:null!==e.boundingSphere?e.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(e=>({...e})),this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),null!==this._colorsTexture&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,null!==this._colorsTexture&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(e,t,n,i,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;let a=i.getIndex(),s=null===a?1:a.array.BYTES_PER_ELEMENT,o=this._instanceInfo,l=this._multiDrawStarts,u=this._multiDrawCounts,c=this._geometryInfo,h=this.perObjectFrustumCulled,d=this._indirectTexture,p=d.image.data;h&&(iE.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),iC.setFromProjectionMatrix(iE,e.coordinateSystem));let f=0;if(this.sortObjects){iE.copy(this.matrixWorld).invert(),iI.setFromMatrixPosition(n.matrixWorld).applyMatrix4(iE),iL.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(iE);for(let e=0,t=o.length;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;ei)return;ij.applyMatrix4(e.matrixWorld);let o=t.ray.origin.distanceTo(ij);if(!(ot.far))return{distance:o,point:iX.clone().applyMatrix4(e.matrixWorld),index:r,face:null,faceIndex:null,barycoord:null,object:e}}let iZ=new eE,iJ=new eE;class iK extends iq{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){let e=this.geometry;if(null===e.index){let t=e.attributes.position,n=[];for(let e=0,i=t.count;e0){let n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;er.far)return;a.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:t,face:null,faceIndex:null,barycoord:null,object:s})}}class i6 extends ty{constructor(){super(),this.isGroup=!0,this.type="Group"}}class i8 extends ev{constructor(e,t,n,i,r,a,s,o,l){super(e,t,n,i,r,a,s,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==a?a:1006,this.magFilter=void 0!==r?r:1006,this.generateMipmaps=!1;const u=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(function t(){u.needsUpdate=!0,e.requestVideoFrameCallback(t)})}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;!1=="requestVideoFrameCallback"in e&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class i9 extends ev{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=1003,this.minFilter=1003,this.generateMipmaps=!1,this.needsUpdate=!0}}class i7 extends ev{constructor(e,t,n,i,r,a,s,o,l,u,c,h){super(null,a,s,o,l,u,i,r,c,h),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class re extends i7{constructor(e,t,n,i,r,a){super(e,t,n,r,a),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=1001,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class rt extends i7{constructor(e,t,n){super(void 0,e[0].width,e[0].height,t,n,301),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class rn extends ev{constructor(e,t,n,i,r,a,s,o,l){super(e,t,n,i,r,a,s,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class ri extends ev{constructor(e,t,n,i,r,a,s,o,l,u=1026){if(1026!==u&&1027!==u)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&1026===u&&(n=1014),void 0===n&&1027===u&&(n=1020),super(null,i,r,a,s,o,u,n,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==s?s:1003,this.minFilter=void 0!==o?o:1003,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return null!==this.compareFunction&&(t.compareFunction=this.compareFunction),t}}class rr{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t=[],n,i=this.getPoint(0),r=0;t.push(0);for(let a=1;a<=e;a++)t.push(r+=(n=this.getPoint(a/e)).distanceTo(i)),i=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let n,i=this.getLengths(),r=0,a=i.length;n=t||e*i[a-1];let s=0,o=a-1,l;for(;s<=o;)if((l=i[r=Math.floor(s+(o-s)/2)]-n)<0)s=r+1;else if(l>0)o=r-1;else{o=r;break}if(i[r=o]===n)return r/(a-1);let u=i[r],c=i[r+1];return(r+(n-u)/(c-u))/(a-1)}getTangent(e,t){let n=e-1e-4,i=e+1e-4;n<0&&(n=0),i>1&&(i=1);let r=this.getPoint(n),a=this.getPoint(i),s=t||(r.isVector2?new Y:new eE);return s.copy(a).sub(r).normalize(),s}getTangentAt(e,t){let n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){let n=new eE,i=[],r=[],a=[],s=new eE,o=new e2;for(let t=0;t<=e;t++){let n=t/e;i[t]=this.getTangentAt(n,new eE)}r[0]=new eE,a[0]=new eE;let l=Number.MAX_VALUE,u=Math.abs(i[0].x),c=Math.abs(i[0].y),h=Math.abs(i[0].z);u<=l&&(l=u,n.set(1,0,0)),c<=l&&(l=c,n.set(0,1,0)),h<=l&&n.set(0,0,1),s.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],s),a[0].crossVectors(i[0],r[0]);for(let t=1;t<=e;t++){if(r[t]=r[t-1].clone(),a[t]=a[t-1].clone(),s.crossVectors(i[t-1],i[t]),s.length()>Number.EPSILON){s.normalize();let e=Math.acos(V(i[t-1].dot(i[t]),-1,1));r[t].applyMatrix4(o.makeRotationAxis(s,e))}a[t].crossVectors(i[t],r[t])}if(!0===t){let t=Math.acos(V(r[0].dot(r[e]),-1,1));t/=e,i[0].dot(s.crossVectors(r[0],r[e]))>0&&(t=-t);for(let n=1;n<=e;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],t*n)),a[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:a}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class ra extends rr{constructor(e=0,t=0,n=1,i=1,r=0,a=2*Math.PI,s=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=a,this.aClockwise=s,this.aRotation=o}getPoint(e,t=new Y){let n=2*Math.PI,i=this.aEndAngle-this.aStartAngle,r=Math.abs(i)n;)i-=n;i0?0:(Math.floor(Math.abs(o)/a)+1)*a:0===l&&o===a-1&&(o=a-2,l=1),this.closed||o>0?n=r[(o-1)%a]:(rl.subVectors(r[0],r[1]).add(r[0]),n=rl);let u=r[o%a],c=r[(o+1)%a];if(this.closed||o+2n.length-2?n.length-1:r+1],u=n[r>n.length-3?n.length-1:r+2];return t.set(rp(a,s.x,o.x,l.x,u.x),rp(a,s.y,o.y,l.y,u.y)),t}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){let e=i[r]-n,a=this.curves[r],s=a.getLength(),o=0===s?0:1-e/s;return a.getPointAt(o,t)}r++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let n=0,i=this.curves.length;n1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){let e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);let u=l.getPoint(1);return this.currentPoint.copy(u),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class rE extends nn{constructor(e=[new Y(0,-.5),new Y(.5,0),new Y(0,.5)],t=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:i},t=Math.floor(t),i=V(i,0,2*Math.PI);const r=[],a=[],s=[],o=[],l=[],u=1/t,c=new eE,h=new Y,d=new eE,p=new eE,f=new eE;let m=0,g=0;for(let t=0;t<=e.length-1;t++)switch(t){case 0:m=e[t+1].x-e[t].x,d.x=+(g=e[t+1].y-e[t].y),d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[t+1].x-e[t].x,d.x=+(g=e[t+1].y-e[t].y),d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let r=0;r<=t;r++){const d=n+r*u*i,p=Math.sin(d),f=Math.cos(d);for(let n=0;n<=e.length-1;n++){c.x=e[n].x*p,c.y=e[n].y,c.z=e[n].x*f,a.push(c.x,c.y,c.z),h.x=r/t,h.y=n/(e.length-1),s.push(h.x,h.y);const i=o[3*n+0]*p,u=o[3*n+1],d=o[3*n+0]*f;l.push(i,u,d)}}for(let n=0;n0||0!==i)&&(u.push(a,s,l),_+=3),(t>0||i!==r-1)&&(u.push(s,o,l),_+=3)}l.addGroup(g,_,0),g+=_})(),!1===a&&(e>0&&v(!0),t>0&&v(!1)),this.setIndex(u),this.setAttribute("position",new t4(c,3)),this.setAttribute("normal",new t4(h,3)),this.setAttribute("uv",new t4(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new rR(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class rP extends rR{constructor(e=1,t=1,n=32,i=1,r=!1,a=0,s=2*Math.PI){super(0,e,t,n,i,r,a,s),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:a,thetaLength:s}}static fromJSON(e){return new rP(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class rI extends nn{constructor(e=[],t=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:i};const r=[],a=[];function s(e){r.push(e.x,e.y,e.z)}function o(t,n){let i=3*t;n.x=e[i+0],n.y=e[i+1],n.z=e[i+2]}function l(e,t,n,i){i<0&&1===e.x&&(a[t]=e.x-1),0===n.x&&0===n.z&&(a[t]=i/2/Math.PI+.5)}function u(e){return Math.atan2(e.z,-e.x)}(function(e){let n=new eE,i=new eE,r=new eE;for(let a=0;a.9&&s<.1&&(t<.2&&(a[e+0]+=1),n<.2&&(a[e+2]+=1),i<.2&&(a[e+4]+=1))}}()}(),this.setAttribute("position",new t4(r,3)),this.setAttribute("normal",new t4(r.slice(),3)),this.setAttribute("uv",new t4(a,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new rI(e.vertices,e.indices,e.radius,e.details)}}class rL extends rI{constructor(e=1,t=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new rL(e.radius,e.detail)}}let rN=new eE,rU=new eE,rD=new eE,rO=new tN;class rF extends nn{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const n=Math.cos(B*t),i=e.getIndex(),r=e.getAttribute("position"),a=i?i.count:r.count,s=[0,0,0],o=["a","b","c"],l=[,,,],u={},c=[];for(let e=0;e=n.next.y&&n.next.y!==n.y){let e=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=a&&e>i&&(i=e,r=n.x=n.x&&n.x>=l&&a!==n.x&&rW(sr.x||n.x===r.x&&(d=r,p=n,0>rj(d.prev,d,p.prev)&&0>rj(p.next,d,d.next))))&&(r=n,c=h)),n=n.next}while(n!==o)return r}(e,t);if(!n)return t;let i=rK(n,e);return rH(i,i.next),rH(n,n.next)}(u[r],n);return n}(e,t,d,n)),e.length>80*n){i=a=e[0],r=s=e[1];for(let t=n;ta&&(a=o),l>s&&(s=l);u=0!==(u=Math.max(a-i,s-r))?32767/u:0}return function e(t,n,i,r,a,s,o){if(!t)return;!o&&s&&function(e,t,n,i){let r=e;do 0===r.z&&(r.z=rG(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==e)r.prevZ.nextZ=null,r.prevZ=null,function(e){let t,n,i,r,a,s,o,l,u=1;do{for(n=e,e=null,a=null,s=0;n;){for(s++,i=n,o=0,t=0;t0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),a?a.nextZ=r:e=r,r.prevZ=a,a=r;n=i}a.nextZ=null,u*=2}while(s>1)}(r)}(t,r,a,s);let l=t,u,c;for(;t.prev!==t.next;){if(u=t.prev,c=t.next,s?function(e,t,n,i){let r=e.prev,a=e.next;if(rj(r,e,a)>=0)return!1;let s=r.x,o=e.x,l=a.x,u=r.y,c=e.y,h=a.y,d=so?s>l?s:l:o>l?o:l,m=u>c?u>h?u:h:c>h?c:h,g=rG(d,p,t,n,i),v=rG(f,m,t,n,i),_=e.prevZ,y=e.nextZ;for(;_&&_.z>=g&&y&&y.z<=v;){if(_.x>=d&&_.x<=f&&_.y>=p&&_.y<=m&&_!==r&&_!==a&&rW(s,u,o,c,l,h,_.x,_.y)&&rj(_.prev,_,_.next)>=0||(_=_.prevZ,y.x>=d&&y.x<=f&&y.y>=p&&y.y<=m&&y!==r&&y!==a&&rW(s,u,o,c,l,h,y.x,y.y)&&rj(y.prev,y,y.next)>=0))return!1;y=y.nextZ}for(;_&&_.z>=g;){if(_.x>=d&&_.x<=f&&_.y>=p&&_.y<=m&&_!==r&&_!==a&&rW(s,u,o,c,l,h,_.x,_.y)&&rj(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;y&&y.z<=v;){if(y.x>=d&&y.x<=f&&y.y>=p&&y.y<=m&&y!==r&&y!==a&&rW(s,u,o,c,l,h,y.x,y.y)&&rj(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}(t,r,a,s):function(e){let t=e.prev,n=e.next;if(rj(t,e,n)>=0)return!1;let i=t.x,r=e.x,a=n.x,s=t.y,o=e.y,l=n.y,u=ir?i>a?i:a:r>a?r:a,d=s>o?s>l?s:l:o>l?o:l,p=n.next;for(;p!==t;){if(p.x>=u&&p.x<=h&&p.y>=c&&p.y<=d&&rW(i,s,r,o,a,l,p.x,p.y)&&rj(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}(t)){n.push(u.i/i|0),n.push(t.i/i|0),n.push(c.i/i|0),rQ(t),t=c.next,l=c.next;continue}if((t=c)===l){o?1===o?e(t=function(e,t,n){let i=e;do{let r=i.prev,a=i.next.next;!rX(r,a)&&rq(r,i,i.next,a)&&rJ(r,a)&&rJ(a,r)&&(t.push(r.i/n|0),t.push(i.i/n|0),t.push(a.i/n|0),rQ(i),rQ(i.next),i=e=a),i=i.next}while(i!==e)return rH(i)}(rH(t),n,i),n,i,r,a,s,2):2===o&&function(t,n,i,r,a,s){let o=t;do{let t=o.next.next;for(;t!==o.prev;){var l,u;if(o.i!==t.i&&(l=o,u=t,l.next.i!==u.i&&l.prev.i!==u.i&&!function(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&rq(n,n.next,e,t))return!0;n=n.next}while(n!==e)return!1}(l,u)&&(rJ(l,u)&&rJ(u,l)&&function(e,t){let n=e,i=!1,r=(e.x+t.x)/2,a=(e.y+t.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&r<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e)return i}(l,u)&&(rj(l.prev,l,u.prev)||rj(l,u.prev,u))||rX(l,u)&&rj(l.prev,l,l.next)>0&&rj(u.prev,u,u.next)>0))){let l=rK(o,t);o=rH(o,o.next),l=rH(l,l.next),e(o,n,i,r,a,s,0),e(l,n,i,r,a,s,0);return}t=t.next}o=o.next}while(o!==t)}(t,n,i,r,a,s):e(rH(t),n,i,r,a,s,1);break}}}(d,p,n,i,r,u,0),p};function rk(e,t,n,i,r){let a,s;if(r===function(e,t,n,i){let r=0;for(let a=t,s=n-i;a0)for(a=t;a=t;a-=i)s=r$(a,e[a],e[a+1],s);return s&&rX(s,s.next)&&(rQ(s),s=s.next),s}function rH(e,t){if(!e)return e;t||(t=e);let n=e,i;do if(i=!1,!n.steiner&&(rX(n,n.next)||0===rj(n.prev,n,n.next))){if(rQ(n),(n=t=n.prev)===n.next)break;i=!0}else n=n.next;while(i||n!==t)return t}function rV(e,t){return e.x-t.x}function rG(e,t,n,i,r){return(e=((e=((e=((e=((e=(e-n)*r|0)|e<<8)&0xff00ff)|e<<4)&0xf0f0f0f)|e<<2)&0x33333333)|e<<1)&0x55555555)|(t=((t=((t=((t=((t=(t-i)*r|0)|t<<8)&0xff00ff)|t<<4)&0xf0f0f0f)|t<<2)&0x33333333)|t<<1)&0x55555555)<<1}function rW(e,t,n,i,r,a,s,o){return(r-s)*(t-o)>=(e-s)*(a-o)&&(e-s)*(i-o)>=(n-s)*(t-o)&&(n-s)*(a-o)>=(r-s)*(i-o)}function rj(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function rX(e,t){return e.x===t.x&&e.y===t.y}function rq(e,t,n,i){let r=rZ(rj(e,t,n)),a=rZ(rj(e,t,i)),s=rZ(rj(n,i,e)),o=rZ(rj(n,i,t));return!!(r!==a&&s!==o||0===r&&rY(e,n,t)||0===a&&rY(e,i,t)||0===s&&rY(n,e,i)||0===o&&rY(n,t,i))}function rY(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function rZ(e){return e>0?1:e<0?-1:0}function rJ(e,t){return 0>rj(e.prev,e,e.next)?rj(e,t,e.next)>=0&&rj(e,e.prev,t)>=0:0>rj(e,t,e.prev)||0>rj(e,e.next,t)}function rK(e,t){let n=new r0(e.i,e.x,e.y),i=new r0(t.i,t.x,t.y),r=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,a.next=i,i.prev=a,i}function r$(e,t,n,i){let r=new r0(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function rQ(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function r0(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class r1{static area(e){let t=e.length,n=0;for(let i=t-1,r=0;rr1.area(e)}static triangulateShape(e,t){let n=[],i=[],r=[];r2(e),r3(n,e);let a=e.length;t.forEach(r2);for(let e=0;e2&&e[t-1].equals(e[0])&&e.pop()}function r3(e,t){for(let n=0;nNumber.EPSILON){let h=Math.sqrt(c),d=Math.sqrt(l*l+u*u),p=t.x-o/h,f=t.y+s/h,m=((n.x-u/d-p)*u-(n.y+l/d-f)*l)/(s*u-o*l),g=(i=p+s*m-e.x)*i+(r=f+o*m-e.y)*r;if(g<=2)return new Y(i,r);a=Math.sqrt(g/2)}else{let e=!1;s>Number.EPSILON?l>Number.EPSILON&&(e=!0):s<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(u)&&(e=!0),e?(i=-o,r=s,a=Math.sqrt(c)):(i=s,r=o,a=Math.sqrt(c/2))}return new Y(i/a,r/a)}let I=[];for(let e=0,t=E.length,n=t-1,i=e+1;e=0;e--){let t=e/v,n=f*Math.cos(t*Math.PI/2),i=m*Math.sin(t*Math.PI/2)+g;for(let e=0,t=E.length;e=0;){let a=r,s=r-1;s<0&&(s=e.length-1);for(let e=0,r=h+2*v;e0)&&d.push(t,r,l),(e!==n-1||o0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class ap extends tH{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new tz(0xffffff),this.specular=new tz(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class af extends tH{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new tz(0xffffff),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class am extends tH{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class ag extends tH{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new tz(0xffffff),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new tz(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new tn,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class av extends tH{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class a_ extends tH{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}class ay extends tH{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new tz(0xffffff),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Y(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ax extends iB{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function ab(e,t,n){return e&&(n||e.constructor!==t)?"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e):e}function aS(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function aM(e){let t=e.length,n=Array(t);for(let e=0;e!==t;++e)n[e]=e;return n.sort(function(t,n){return e[t]-e[n]}),n}function aT(e,t,n){let i=e.length,r=new e.constructor(i);for(let a=0,s=0;s!==i;++a){let i=n[a]*t;for(let n=0;n!==t;++n)r[s++]=e[i+n]}return r}function aw(e,t,n,i){let r=1,a=e[0];for(;void 0!==a&&void 0===a[i];)a=e[r++];if(void 0===a)return;let s=a[i];if(void 0!==s)if(Array.isArray(s))do void 0!==(s=a[i])&&(t.push(a.time),n.push.apply(n,s)),a=e[r++];while(void 0!==a)else if(void 0!==s.toArray)do void 0!==(s=a[i])&&(t.push(a.time),s.toArray(n,n.length)),a=e[r++];while(void 0!==a)else do void 0!==(s=a[i])&&(t.push(a.time),n.push(s)),a=e[r++];while(void 0!==a)}let aE={convertArray:ab,isTypedArray:aS,getKeyframeOrder:aM,sortedArray:aT,flattenJSON:aw,subclip:function(e,t,n,i,r=30){let a=e.clone();a.name=t;let s=[];for(let e=0;e=i)){l.push(t.times[e]);for(let n=0;na.tracks[e].times[0]&&(o=a.tracks[e].times[0]);for(let e=0;e=r.times[d]){let e=d*u+l,t=e+u-l;i=r.values.slice(e,t)}else{let e=r.createInterpolant(),t=l,n=u-l;e.evaluate(a),i=e.resultBuffer.slice(t,n)}"quaternion"===s&&new ew().fromArray(i).normalize().conjugate().toArray(i);let p=o.times.length;for(let e=0;e=r)){let s=t[1];e=(r=t[--n-1]))break i}a=n,n=0;break r}break n}for(;n>>1;et;)--a;if(++a,0!==r||a!==i){r>=a&&(r=(a=Math.max(a,1))-1);let e=this.getValueSize();this.times=n.slice(r,a),this.values=this.values.slice(r*e,a*e)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let t=0;t!==r;t++){let i=n[t];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,t,i),e=!1;break}if(null!==a&&a>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,t,i,a),e=!1;break}a=i}if(void 0!==i&&aS(i))for(let t=0,n=i.length;t!==n;++t){let n=i[t];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,t,n),e=!1;break}}return e}optimize(){let e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),i=2302===this.getInterpolation(),r=e.length-1,a=1;for(let s=1;s0){e[a]=e[r];for(let e=r*n,i=a*n,s=0;s!==n;++s)t[i+s]=t[e+s];++a}return a!==e.length?(this.times=e.slice(0,a),this.values=t.slice(0,a*n)):(this.times=e,this.values=t),this}clone(){let e=this.times.slice(),t=this.values.slice(),n=new this.constructor(this.name,e,t);return n.createInterpolant=this.createInterpolant,n}}aI.prototype.TimeBufferType=Float32Array,aI.prototype.ValueBufferType=Float32Array,aI.prototype.DefaultInterpolation=2301;class aL extends aI{constructor(e,t,n){super(e,t,n)}}aL.prototype.ValueTypeName="bool",aL.prototype.ValueBufferType=Array,aL.prototype.DefaultInterpolation=2300,aL.prototype.InterpolantFactoryMethodLinear=void 0,aL.prototype.InterpolantFactoryMethodSmooth=void 0;class aN extends aI{}aN.prototype.ValueTypeName="color";class aU extends aI{}aU.prototype.ValueTypeName="number";class aD extends aA{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){let r=this.resultBuffer,a=this.sampleValues,s=this.valueSize,o=(n-t)/(i-t),l=e*s;for(let e=l+s;l!==e;l+=4)ew.slerpFlat(r,0,a,l-s,a,l,o);return r}}class aO extends aI{InterpolantFactoryMethodLinear(e){return new aD(this.times,this.values,this.getValueSize(),e)}}aO.prototype.ValueTypeName="quaternion",aO.prototype.InterpolantFactoryMethodSmooth=void 0;class aF extends aI{constructor(e,t,n){super(e,t,n)}}aF.prototype.ValueTypeName="string",aF.prototype.ValueBufferType=Array,aF.prototype.DefaultInterpolation=2300,aF.prototype.InterpolantFactoryMethodLinear=void 0,aF.prototype.InterpolantFactoryMethodSmooth=void 0;class az extends aI{}az.prototype.ValueTypeName="vector";class aB{constructor(e="",t=-1,n=[],i=2500){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=H(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],n=e.tracks,i=1/(e.fps||1);for(let e=0,r=n.length;e!==r;++e)t.push((function(e){if(void 0===e.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");let t=function(e){switch(e.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return aU;case"vector":case"vector2":case"vector3":case"vector4":return az;case"color":return aN;case"quaternion":return aO;case"bool":case"boolean":return aL;case"string":return aF}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+e)}(e.type);if(void 0===e.times){let t=[],n=[];aw(e.keys,t,n,"value"),e.times=t,e.values=n}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)})(n[e]).scale(i));let r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){let t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let e=0,i=n.length;e!==i;++e)t.push(aI.toJSON(n[e]));return i}static CreateFromMorphTargetSequence(e,t,n,i){let r=t.length,a=[];for(let e=0;e1){let e=a[1],t=i[e];t||(i[e]=t=[]),t.push(n)}}let a=[];for(let e in i)a.push(this.CreateFromMorphTargetSequence(e,i[e],t,n));return a}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let n=function(e,t,n,i,r){if(0!==n.length){let a=[],s=[];aw(n,a,s,i),0!==a.length&&r.push(new e(t,a,s))}},i=[],r=e.name||"default",a=e.fps||30,s=e.blendMode,o=e.length||-1,l=e.hierarchy||[];for(let e=0;e{t&&t(r),this.manager.itemEnd(e)},0),r;if(void 0!==aW[e])return void aW[e].push({onLoad:t,onProgress:n,onError:i});aW[e]=[],aW[e].push({onLoad:t,onProgress:n,onError:i});let a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),s=this.mimeType,o=this.responseType;fetch(a).then(t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"u"{if(i)e.close();else{let i=new ProgressEvent("progress",{lengthComputable:s,loaded:o+=r.byteLength,total:a});for(let e=0,t=n.length;e{e.error(t)})}()}}))}throw new aj(`fetch for "${t.url}" responded with ${t.status}: ${t.statusText}`,t)}).then(e=>{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then(e=>new DOMParser().parseFromString(e,s));case"json":return e.json();default:if(void 0===s)return e.text();{let t=/charset="?([^;"\s]*)"?/i.exec(s),n=new TextDecoder(t&&t[1]?t[1].toLowerCase():void 0);return e.arrayBuffer().then(e=>n.decode(e))}}}).then(t=>{ak.add(e,t);let n=aW[e];delete aW[e];for(let e=0,i=n.length;e{let n=aW[e];if(void 0===n)throw this.manager.itemError(e),t;delete aW[e];for(let e=0,i=n.length;e{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class aq extends aG{constructor(e){super(e)}load(e,t,n,i){let r=this,a=new aX(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(n){try{t(r.parse(JSON.parse(n)))}catch(t){i?i(t):console.error(t),r.manager.itemError(e)}},n,i)}parse(e){let t=[];for(let n=0;n0:i.vertexColors=e.vertexColors),void 0!==e.uniforms)for(let t in e.uniforms){let r=e.uniforms[t];switch(i.uniforms[t]={},r.type){case"t":i.uniforms[t].value=n(r.value);break;case"c":i.uniforms[t].value=new tz().setHex(r.value);break;case"v2":i.uniforms[t].value=new Y().fromArray(r.value);break;case"v3":i.uniforms[t].value=new eE().fromArray(r.value);break;case"v4":i.uniforms[t].value=new e_().fromArray(r.value);break;case"m3":i.uniforms[t].value=new Z().fromArray(r.value);break;case"m4":i.uniforms[t].value=new e2().fromArray(r.value);break;default:i.uniforms[t].value=r.value}}if(void 0!==e.defines&&(i.defines=e.defines),void 0!==e.vertexShader&&(i.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(i.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(i.glslVersion=e.glslVersion),void 0!==e.extensions)for(let t in e.extensions)i.extensions[t]=e.extensions[t];if(void 0!==e.lights&&(i.lights=e.lights),void 0!==e.clipping&&(i.clipping=e.clipping),void 0!==e.size&&(i.size=e.size),void 0!==e.sizeAttenuation&&(i.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(i.map=n(e.map)),void 0!==e.matcap&&(i.matcap=n(e.matcap)),void 0!==e.alphaMap&&(i.alphaMap=n(e.alphaMap)),void 0!==e.bumpMap&&(i.bumpMap=n(e.bumpMap)),void 0!==e.bumpScale&&(i.bumpScale=e.bumpScale),void 0!==e.normalMap&&(i.normalMap=n(e.normalMap)),void 0!==e.normalMapType&&(i.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),i.normalScale=new Y().fromArray(t)}return void 0!==e.displacementMap&&(i.displacementMap=n(e.displacementMap)),void 0!==e.displacementScale&&(i.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(i.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(i.roughnessMap=n(e.roughnessMap)),void 0!==e.metalnessMap&&(i.metalnessMap=n(e.metalnessMap)),void 0!==e.emissiveMap&&(i.emissiveMap=n(e.emissiveMap)),void 0!==e.emissiveIntensity&&(i.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(i.specularMap=n(e.specularMap)),void 0!==e.specularIntensityMap&&(i.specularIntensityMap=n(e.specularIntensityMap)),void 0!==e.specularColorMap&&(i.specularColorMap=n(e.specularColorMap)),void 0!==e.envMap&&(i.envMap=n(e.envMap)),void 0!==e.envMapRotation&&i.envMapRotation.fromArray(e.envMapRotation),void 0!==e.envMapIntensity&&(i.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(i.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(i.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(i.lightMap=n(e.lightMap)),void 0!==e.lightMapIntensity&&(i.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(i.aoMap=n(e.aoMap)),void 0!==e.aoMapIntensity&&(i.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(i.gradientMap=n(e.gradientMap)),void 0!==e.clearcoatMap&&(i.clearcoatMap=n(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(i.clearcoatNormalMap=n(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(i.clearcoatNormalScale=new Y().fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(i.iridescenceMap=n(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(i.transmissionMap=n(e.transmissionMap)),void 0!==e.thicknessMap&&(i.thicknessMap=n(e.thicknessMap)),void 0!==e.anisotropyMap&&(i.anisotropyMap=n(e.anisotropyMap)),void 0!==e.sheenColorMap&&(i.sheenColorMap=n(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(i.sheenRoughnessMap=n(e.sheenRoughnessMap)),i}setTextures(e){return this.textures=e,this}createMaterialFromType(e){return su.createMaterialFromType(e)}static createMaterialFromType(e){return new({ShadowMaterial:au,SpriteMaterial:nO,RawShaderMaterial:ac,ShaderMaterial:nb,PointsMaterial:iQ,MeshPhysicalMaterial:ad,MeshStandardMaterial:ah,MeshPhongMaterial:ap,MeshToonMaterial:af,MeshNormalMaterial:am,MeshLambertMaterial:ag,MeshDepthMaterial:av,MeshDistanceMaterial:a_,MeshBasicMaterial:tV,MeshMatcapMaterial:ay,LineDashedMaterial:ax,LineBasicMaterial:iB,Material:tH})[e]}}class sc{static decodeText(e){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),"u">typeof TextDecoder)return new TextDecoder().decode(e);let t="";for(let n=0,i=e.length;n0){(n=new aZ(new aH(t))).setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t0){(t=new aZ(this.manager)).setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t{let t=new eR;t.min.fromArray(e.boxMin),t.max.fromArray(e.boxMax);let n=new eq;return n.radius=e.sphereRadius,n.center.fromArray(e.sphereCenter),{boxInitialized:e.boxInitialized,box:t,sphereInitialized:e.sphereInitialized,sphere:n}}),a._maxInstanceCount=e.maxInstanceCount,a._maxVertexCount=e.maxVertexCount,a._maxIndexCount=e.maxIndexCount,a._geometryInitialized=e.geometryInitialized,a._geometryCount=e.geometryCount,a._matricesTexture=c(e.matricesTexture.uuid),void 0!==e.colorsTexture&&(a._colorsTexture=c(e.colorsTexture.uuid));break;case"LOD":a=new nQ;break;case"Line":a=new iq(l(e.geometry),u(e.material));break;case"LineLoop":a=new i$(l(e.geometry),u(e.material));break;case"LineSegments":a=new iK(l(e.geometry),u(e.material));break;case"PointCloud":case"Points":a=new i4(l(e.geometry),u(e.material));break;case"Sprite":a=new nZ(u(e.material));break;case"Group":a=new i6;break;case"Bone":a=new ie;break;default:a=new ty}if(a.uuid=e.uuid,void 0!==e.name&&(a.name=e.name),void 0!==e.matrix?(a.matrix.fromArray(e.matrix),void 0!==e.matrixAutoUpdate&&(a.matrixAutoUpdate=e.matrixAutoUpdate),a.matrixAutoUpdate&&a.matrix.decompose(a.position,a.quaternion,a.scale)):(void 0!==e.position&&a.position.fromArray(e.position),void 0!==e.rotation&&a.rotation.fromArray(e.rotation),void 0!==e.quaternion&&a.quaternion.fromArray(e.quaternion),void 0!==e.scale&&a.scale.fromArray(e.scale)),void 0!==e.up&&a.up.fromArray(e.up),void 0!==e.castShadow&&(a.castShadow=e.castShadow),void 0!==e.receiveShadow&&(a.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.intensity&&(a.shadow.intensity=e.shadow.intensity),void 0!==e.shadow.bias&&(a.shadow.bias=e.shadow.bias),void 0!==e.shadow.normalBias&&(a.shadow.normalBias=e.shadow.normalBias),void 0!==e.shadow.radius&&(a.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&a.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(a.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(a.visible=e.visible),void 0!==e.frustumCulled&&(a.frustumCulled=e.frustumCulled),void 0!==e.renderOrder&&(a.renderOrder=e.renderOrder),void 0!==e.userData&&(a.userData=e.userData),void 0!==e.layers&&(a.layers.mask=e.layers),void 0!==e.children){let s=e.children;for(let e=0;e{t&&t(n),r.manager.itemEnd(e)}).catch(e=>{i&&i(e)}):(setTimeout(function(){t&&t(a),r.manager.itemEnd(e)},0),a);let s={};s.credentials="anonymous"===this.crossOrigin?"same-origin":"include",s.headers=this.requestHeader;let o=fetch(e,s).then(function(e){return e.blob()}).then(function(e){return createImageBitmap(e,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(n){return ak.add(e,n),t&&t(n),r.manager.itemEnd(e),n}).catch(function(t){i&&i(t),ak.remove(e),r.manager.itemError(e),r.manager.itemEnd(e)});ak.add(e,o),r.manager.itemStart(e)}}class s_{static getContext(){return void 0===i&&(i=new(window.AudioContext||window.webkitAudioContext)),i}static setContext(e){i=e}}class sy extends aG{constructor(e){super(e)}load(e,t,n,i){let r=this,a=new aX(this.manager);function s(t){i?i(t):console.error(t),r.manager.itemError(e)}a.setResponseType("arraybuffer"),a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(e){try{let n=e.slice(0);s_.getContext().decodeAudioData(n,function(e){t(e)}).catch(s)}catch(e){s(e)}},n,i)}}let sx=new e2,sb=new e2,sS=new e2;class sM{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new nE,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new nE,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){let t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){let n,i;t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,sS.copy(e.projectionMatrix);let r=t.eyeSep/2,a=r*t.near/t.focus,s=t.near*Math.tan(B*t.fov*.5)/t.zoom;sb.elements[12]=-r,sx.elements[12]=r,n=-s*t.aspect+a,i=s*t.aspect+a,sS.elements[0]=2*t.near/(i-n),sS.elements[8]=(i+n)/(i-n),this.cameraL.projectionMatrix.copy(sS),n=-s*t.aspect-a,i=s*t.aspect-a,sS.elements[0]=2*t.near/(i-n),sS.elements[8]=(i+n)/(i-n),this.cameraR.projectionMatrix.copy(sS)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(sb),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(sx)}}class sT extends nE{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class sw{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=sE(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){let t=sE();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function sE(){return performance.now()}let sA=new eE,sC=new ew,sR=new eE,sP=new eE;class sI extends ty{constructor(){super(),this.type="AudioListener",this.context=s_.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new sw}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);let t=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(sA,sC,sR),sP.set(0,0,-1).applyQuaternion(sC),t.positionX){let e=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(sA.x,e),t.positionY.linearRampToValueAtTime(sA.y,e),t.positionZ.linearRampToValueAtTime(sA.z,e),t.forwardX.linearRampToValueAtTime(sP.x,e),t.forwardY.linearRampToValueAtTime(sP.y,e),t.forwardZ.linearRampToValueAtTime(sP.z,e),t.upX.linearRampToValueAtTime(n.x,e),t.upY.linearRampToValueAtTime(n.y,e),t.upZ.linearRampToValueAtTime(n.z,e)}else t.setPosition(sA.x,sA.y,sA.z),t.setOrientation(sP.x,sP.y,sP.z,n.x,n.y,n.z)}}class sL extends ty{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+e;let t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){return!1===this.hasPlaybackControl?void console.warn("THREE.Audio: this Audio has no playback control."):(!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this)}stop(e=0){return!1===this.hasPlaybackControl?void console.warn("THREE.Audio: this Audio has no playback control."):(this._progress=0,null!==this.source&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this)}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let e=t,r=t+t;e!==r;++e)if(n[e]!==n[e+t]){s.setValue(n,i);break}}saveOriginalState(){let e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let e=n;e!==i;++e)t[e]=t[i+e%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let i=0;i!==r;++i)e[t+i]=e[n+i]}_slerp(e,t,n,i){ew.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,r){let a=this._workIndex*r;ew.multiplyQuaternionsFlat(e,a,e,t,e,n),ew.slerpFlat(e,t,e,t,e,a,i)}_lerp(e,t,n,i,r){let a=1-i;for(let s=0;s!==r;++s){let r=t+s;e[r]=e[r]*a+e[n+s]*i}}_lerpAdditive(e,t,n,i,r){for(let a=0;a!==r;++a){let r=t+a;e[r]=e[r]+e[n+a]*i}}}let sk="\\[\\]\\.:\\/",sH=RegExp("["+sk+"]","g"),sV="[^"+sk+"]",sG="[^"+sk.replace("\\.","")+"]",sW=RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",sV)+/(WCOD+)?/.source.replace("WCOD",sG)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",sV)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",sV)+"$"),sj=["material","materials","bones","map"];class sX{constructor(e,t,n){this.path=t,this.parsedPath=n||sX.parseTrackName(t),this.node=sX.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new sX.Composite(e,t,n):new sX(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(sH,"")}static parseTrackName(e){let t=sW.exec(e);if(null===t)throw Error("PropertyBinding: Cannot parse trackName: "+e);let n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){let e=n.nodeName.substring(i+1);-1!==sj.indexOf(e)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=e)}if(null===n.propertyName||0===n.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){let n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){let n=function(e){for(let i=0;i=r){let a=r++,u=e[a];t[u.uuid]=l,e[l]=u,t[o]=a,e[a]=s;for(let e=0;e!==i;++e){let t=n[e],i=t[a],r=t[l];t[l]=i,t[a]=r}}}this.nCachedObjects_=r}uncache(){let e=this._objects,t=this._indicesByUUID,n=this._bindings,i=n.length,r=this.nCachedObjects_,a=e.length;for(let s=0,o=arguments.length;s!==o;++s){let o=arguments[s],l=o.uuid,u=t[l];if(void 0!==u)if(delete t[l],u0&&(t[s.uuid]=u),e[u]=s,e.pop();for(let e=0;e!==i;++e){let t=n[e];t[u]=t[r],t.pop()}}}this.nCachedObjects_=r}subscribe_(e,t){let n=this._bindingsIndicesByPath,i=n[e],r=this._bindings;if(void 0!==i)return r[i];let a=this._paths,s=this._parsedPaths,o=this._objects,l=o.length,u=this.nCachedObjects_,c=Array(l);i=r.length,n[e]=i,a.push(e),s.push(t),r.push(c);for(let n=u,i=o.length;n!==i;++n){let i=o[n];c[n]=new sX(i,e,t)}return c}unsubscribe_(e){let t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){let i=this._paths,r=this._parsedPaths,a=this._bindings,s=a.length-1,o=a[s];t[e[s]]=n,a[n]=o,a.pop(),r[n]=r[s],r.pop(),i[n]=i[s],i.pop()}}}class sY{constructor(e,t,n=null,i=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=i;const r=t.tracks,a=r.length,s=Array(a),o={endingStart:2400,endingEnd:2400};for(let e=0;e!==a;++e){const t=r[e].createInterpolant(null);s[e]=t,t.settings=o}this._interpolantSettings=o,this._interpolants=s,this._propertyBindings=Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){let n=this._clip.duration,i=e._clip.duration;e.warp(1,i/n,t),this.warp(n/i,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){let e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){let i=this._mixer,r=i.time,a=this.timeScale,s=this._timeScaleInterpolant;null===s&&(s=i._lendControlInterpolant(),this._timeScaleInterpolant=s);let o=s.parameterPositions,l=s.sampleValues;return o[0]=r,o[1]=r+n,l[0]=e/a,l[1]=t/a,this}stopWarping(){let e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,i){if(!this.enabled)return void this._updateWeight(e);let r=this._startTime;if(null!==r){let i=(e-r)*n;i<0||0===n?t=0:(this._startTime=null,t=n*i)}t*=this._updateTimeScale(e);let a=this._updateTime(t),s=this._updateWeight(e);if(s>0){let e=this._interpolants,t=this._propertyBindings;if(2501===this.blendMode)for(let n=0,i=e.length;n!==i;++n)e[n].evaluate(a),t[n].accumulateAdditive(s);else for(let n=0,r=e.length;n!==r;++n)e[n].evaluate(a),t[n].accumulate(i,s)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let n=this._weightInterpolant;if(null!==n){let i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let n=this._timeScaleInterpolant;null!==n&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,n=this.loop,i=this.time+e,r=this._loopCount,a=2202===n;if(0===e)return -1===r?i:a&&(1&r)==1?t-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));s:{if(i>=t)i=t;else if(i<0)i=0;else{this.time=i;break s}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===r&&(e>=0?(r=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),i>=t||i<0){let n=Math.floor(i/t);i-=t*n,r+=Math.abs(n);let s=this.repetitions-r;if(s<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===s){let t=e<0;this._setEndings(t,!t,a)}else this._setEndings(!1,!1,a);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(a&&(1&r)==1)return t-i}return i}_setEndings(e,t,n){let i=this._interpolantSettings;n?(i.endingStart=2401,i.endingEnd=2401):(e?i.endingStart=this.zeroSlopeAtStart?2401:2400:i.endingStart=2402,t?i.endingEnd=this.zeroSlopeAtEnd?2401:2400:i.endingEnd=2402)}_scheduleFading(e,t,n){let i=this._mixer,r=i.time,a=this._weightInterpolant;null===a&&(a=i._lendControlInterpolant(),this._weightInterpolant=a);let s=a.parameterPositions,o=a.sampleValues;return s[0]=r,o[0]=t,s[1]=r+e,o[1]=n,this}}let sZ=new Float32Array(1);class sJ extends O{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){let n=e._localRoot||this._root,i=e._clip.tracks,r=i.length,a=e._propertyBindings,s=e._interpolants,o=n.uuid,l=this._bindingsByRootAndName,u=l[o];void 0===u&&(u={},l[o]=u);for(let e=0;e!==r;++e){let r=i[e],l=r.name,c=u[l];if(void 0!==c)++c.referenceCount,a[e]=c;else{if(void 0!==(c=a[e])){null===c._cacheIndex&&(++c.referenceCount,this._addInactiveBinding(c,o,l));continue}let i=t&&t._propertyBindings[e].binding.parsedPath;c=new sB(sX.create(n,l,i),r.ValueTypeName,r.getValueSize()),++c.referenceCount,this._addInactiveBinding(c,o,l),a[e]=c}s[e].resultBuffer=c.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){let t=(e._localRoot||this._root).uuid,n=e._clip.uuid,i=this._actionsByClip[n];this._bindAction(e,i&&i.knownActions[0]),this._addInactiveAction(e,n,t)}let t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){let n=t[e];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){let n=t[e];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return null!==t&&t=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;let t=this._actions,n=this._nActiveActions,i=this.time+=e,r=Math.sign(e),a=this._accuIndex^=1;for(let s=0;s!==n;++s)t[s]._update(i,e,r,a);let s=this._bindings,o=this._nActiveBindings;for(let e=0;e!==o;++e)s[e].apply(a);return this}setTime(e){this.time=0;for(let e=0;e=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,s7).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}let ot=new eE,on=new eE;class oi{constructor(e=new eE,t=new eE){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){ot.subVectors(e,this.start),on.subVectors(this.end,this.start);let n=on.dot(on),i=on.dot(ot)/n;return t&&(i=V(i,0,1)),i}closestPointToPoint(e,t,n){let i=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}let or=new eE;class oa extends ty{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const n=new nn,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let e=0,t=1;e<32;e++,t++){const n=e/32*Math.PI*2,r=t/32*Math.PI*2;i.push(Math.cos(n),Math.sin(n),1,Math.cos(r),Math.sin(r),1)}n.setAttribute("position",new t4(i,3));const r=new iB({fog:!1,toneMapped:!1});this.cone=new iK(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),this.parent?(this.parent.updateWorldMatrix(!0),this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)):this.matrix.copy(this.light.matrixWorld),this.matrixWorld.copy(this.light.matrixWorld);let e=this.light.distance?this.light.distance:1e3,t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e),or.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(or),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}let os=new eE,oo=new e2,ol=new e2;class ou extends iK{constructor(e){const t=function e(t){let n=[];!0===t.isBone&&n.push(t);for(let i=0;i1)for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{oR.set(e.z,0,-e.x).normalize();let t=Math.acos(e.y);this.quaternion.setFromAxisAngle(oR,t)}}setLength(e,t=.2*e,n=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class oI extends iK{constructor(e=1){const t=new nn;t.setAttribute("position",new t4([0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],3)),t.setAttribute("color",new t4([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(t,new iB({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,n){let i=new tz,r=this.geometry.attributes.color.array;return i.set(e),i.toArray(r,0),i.toArray(r,3),i.set(t),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class oL{constructor(){this.type="ShapePath",this.color=new tz,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new rw,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,i){return this.currentPath.quadraticCurveTo(e,t,n,i),this}bezierCurveTo(e,t,n,i,r,a){return this.currentPath.bezierCurveTo(e,t,n,i,r,a),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){let t,n,i,r,a,s=r1.isClockWise,o=this.subPaths;if(0===o.length)return[];let l=[];if(1===o.length)return n=o[0],(i=new rz).curves=n.curves,l.push(i),l;let u=!s(o[0].getPoints());u=e?!u:u;let c=[],h=[],d=[],p=0;h[0]=void 0,d[p]=[];for(let i=0,a=o.length;i1){let e=!1,t=0;for(let e=0,t=h.length;eNumber.EPSILON){if(l<0&&(n=t[a],o=-o,s=t[r],l=-l),e.ys.y)continue;if(e.y===n.y){if(e.x===n.x)return!0}else{let t=l*(e.x-n.x)-o*(e.y-n.y);if(0===t)return!0;if(t<0)continue;i=!i}}else{if(e.y!==n.y)continue;if(s.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=s.x)return!0}}return i})(a.p,h[i].p)&&(n!==i&&t++,s?(s=!1,c[i].push(a)):e=!0);s&&c[n].push(a)}}t>0&&!1===e&&(d=c)}for(let e=0,t=h.length;et?(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2):(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0),e},cover:function(e,t){let n=e.image&&e.image.width?e.image.width/e.image.height:1;return n>t?(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0):(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2),e},fill:function(e){return e.repeat.x=1,e.repeat.y=1,e.offset.x=0,e.offset.y=0,e},getByteLength:oU};class oO extends ex{constructor(e=1,t=1,n=1,i={}){console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the "count" parameter to enable MRT.'),super(e,t,{...i,count:n}),this.isWebGLMultipleRenderTargets=!0}get texture(){return this.textures}}function oF(){let e=null,t=!1,n=null,i=null;function r(t,a){n(t,a),i=e.requestAnimationFrame(r)}return{start:function(){!0===t||null!==n&&(i=e.requestAnimationFrame(r),t=!0)},stop:function(){e.cancelAnimationFrame(i),t=!1},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function oz(e){let t=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),t.get(e)},remove:function(n){n.isInterleavedBufferAttribute&&(n=n.data);let i=t.get(n);i&&(e.deleteBuffer(i.buffer),t.delete(n))},update:function(n,i){if(n.isInterleavedBufferAttribute&&(n=n.data),n.isGLBufferAttribute){let e=t.get(n);(!e||e.versione.start-t.start);let t=0;for(let e=1;etypeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"171"}})),"u">typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="171"),e.s(["ACESFilmicToneMapping",0,4,"AddEquation",0,100,"AddOperation",0,2,"AdditiveAnimationBlendMode",0,2501,"AdditiveBlending",0,2,"AgXToneMapping",0,6,"AlphaFormat",0,1021,"AlwaysCompare",0,519,"AlwaysDepth",0,1,"AlwaysStencilFunc",0,519,"AmbientLight",0,sa,"AnimationAction",0,sY,"AnimationClip",0,aB,"AnimationLoader",0,aq,"AnimationMixer",0,sJ,"AnimationObjectGroup",0,sq,"AnimationUtils",0,aE,"ArcCurve",0,rs,"ArrayCamera",0,sT,"ArrowHelper",0,oP,"AttachedBindMode",0,R,"Audio",0,sL,"AudioAnalyser",0,sz,"AudioContext",0,s_,"AudioListener",0,sI,"AudioLoader",0,sy,"AxesHelper",0,oI,"BackSide",0,1,"BasicDepthPacking",0,3200,"BasicShadowMap",0,0,"BatchedMesh",0,iz,"Bone",0,ie,"BooleanKeyframeTrack",0,aL,"Box2",0,oe,"Box3",0,eR,"Box3Helper",0,oA,"BoxGeometry",0,ng,"BoxHelper",0,oE,"BufferAttribute",0,tZ,"BufferGeometry",0,nn,"BufferGeometryLoader",0,sd,"ByteType",0,1010,"Cache",0,ak,"Camera",0,nS,"CameraHelper",0,oM,"CanvasTexture",0,rn,"CapsuleGeometry",0,rA,"CatmullRomCurve3",0,rd,"CineonToneMapping",0,3,"CircleGeometry",0,rC,"ClampToEdgeWrapping",0,1001,"Clock",0,sw,"Color",0,tz,"ColorKeyframeTrack",0,aN,"ColorManagement",0,eu,"CompressedArrayTexture",0,re,"CompressedCubeTexture",0,rt,"CompressedTexture",0,i7,"CompressedTextureLoader",0,aY,"ConeGeometry",0,rP,"ConstantAlphaFactor",0,213,"ConstantColorFactor",0,211,"Controls",0,oN,"CubeCamera",0,nA,"CubeReflectionMapping",0,301,"CubeRefractionMapping",0,302,"CubeTexture",0,nC,"CubeTextureLoader",0,aJ,"CubeUVReflectionMapping",0,306,"CubicBezierCurve",0,rg,"CubicBezierCurve3",0,rv,"CubicInterpolant",0,aC,"CullFaceBack",0,1,"CullFaceFront",0,2,"CullFaceFrontBack",0,3,"CullFaceNone",0,0,"Curve",0,rr,"CurvePath",0,rT,"CustomBlending",0,5,"CustomToneMapping",0,5,"CylinderGeometry",0,rR,"Cylindrical",0,s8,"Data3DTexture",0,eM,"DataArrayTexture",0,eb,"DataTexture",0,it,"DataTextureLoader",0,aK,"DataUtils",0,tX,"DecrementStencilOp",0,7683,"DecrementWrapStencilOp",0,34056,"DefaultLoadingManager",0,aV,"DepthFormat",0,1026,"DepthStencilFormat",0,1027,"DepthTexture",0,ri,"DetachedBindMode",0,P,"DirectionalLight",0,sr,"DirectionalLightHelper",0,ox,"DiscreteInterpolant",0,aP,"DodecahedronGeometry",0,rL,"DoubleSide",0,2,"DstAlphaFactor",0,206,"DstColorFactor",0,208,"DynamicCopyUsage",0,35050,"DynamicDrawUsage",0,35048,"DynamicReadUsage",0,35049,"EdgesGeometry",0,rF,"EllipseCurve",0,ra,"EqualCompare",0,514,"EqualDepth",0,4,"EqualStencilFunc",0,514,"EquirectangularReflectionMapping",0,303,"EquirectangularRefractionMapping",0,304,"Euler",0,tn,"EventDispatcher",0,O,"ExtrudeGeometry",0,r4,"FileLoader",0,aX,"Float16BufferAttribute",0,t3,"Float32BufferAttribute",0,t4,"FloatType",0,1015,"Fog",0,nI,"FogExp2",0,nP,"FramebufferTexture",0,i9,"FrontSide",0,0,"Frustum",0,iS,"GLBufferAttribute",0,s1,"GLSL1",0,"100","GLSL3",0,D,"GreaterCompare",0,516,"GreaterDepth",0,6,"GreaterEqualCompare",0,518,"GreaterEqualDepth",0,5,"GreaterEqualStencilFunc",0,518,"GreaterStencilFunc",0,516,"GridHelper",0,om,"Group",0,i6,"HalfFloatType",0,1016,"HemisphereLight",0,a0,"HemisphereLightHelper",0,of,"IcosahedronGeometry",0,r6,"ImageBitmapLoader",0,sv,"ImageLoader",0,aZ,"ImageUtils",0,ed,"IncrementStencilOp",0,7682,"IncrementWrapStencilOp",0,34055,"InstancedBufferAttribute",0,is,"InstancedBufferGeometry",0,sh,"InstancedInterleavedBuffer",0,s0,"InstancedMesh",0,im,"Int16BufferAttribute",0,tQ,"Int32BufferAttribute",0,t1,"Int8BufferAttribute",0,tJ,"IntType",0,1013,"InterleavedBuffer",0,nN,"InterleavedBufferAttribute",0,nD,"Interpolant",0,aA,"InterpolateDiscrete",0,2300,"InterpolateLinear",0,2301,"InterpolateSmooth",0,2302,"InvertStencilOp",0,5386,"KeepStencilOp",0,7680,"KeyframeTrack",0,aI,"LOD",0,nQ,"LatheGeometry",0,rE,"Layers",0,ti,"LessCompare",0,513,"LessDepth",0,2,"LessEqualCompare",0,515,"LessEqualDepth",0,3,"LessEqualStencilFunc",0,515,"LessStencilFunc",0,513,"Light",0,aQ,"LightProbe",0,sl,"Line",0,iq,"Line3",0,oi,"LineBasicMaterial",0,iB,"LineCurve",0,r_,"LineCurve3",0,ry,"LineDashedMaterial",0,ax,"LineLoop",0,i$,"LineSegments",0,iK,"LinearFilter",0,1006,"LinearInterpolant",0,aR,"LinearMipMapLinearFilter",0,1008,"LinearMipMapNearestFilter",0,1007,"LinearMipmapLinearFilter",0,1008,"LinearMipmapNearestFilter",0,1007,"LinearSRGBColorSpace",0,L,"LinearToneMapping",0,1,"LinearTransfer",0,N,"Loader",0,aG,"LoaderUtils",0,sc,"LoadingManager",0,aH,"LoopOnce",0,2200,"LoopPingPong",0,2202,"LoopRepeat",0,2201,"LuminanceAlphaFormat",0,1025,"LuminanceFormat",0,1024,"MOUSE",0,A,"Material",0,tH,"MaterialLoader",0,su,"MathUtils",0,q,"Matrix2",0,s9,"Matrix3",0,Z,"Matrix4",0,e2,"MaxEquation",0,104,"Mesh",0,nf,"MeshBasicMaterial",0,tV,"MeshDepthMaterial",0,av,"MeshDistanceMaterial",0,a_,"MeshLambertMaterial",0,ag,"MeshMatcapMaterial",0,ay,"MeshNormalMaterial",0,am,"MeshPhongMaterial",0,ap,"MeshPhysicalMaterial",0,ad,"MeshStandardMaterial",0,ah,"MeshToonMaterial",0,af,"MinEquation",0,103,"MirroredRepeatWrapping",0,1002,"MixOperation",0,1,"MultiplyBlending",0,4,"MultiplyOperation",0,0,"NearestFilter",0,1003,"NearestMipMapLinearFilter",0,1005,"NearestMipMapNearestFilter",0,1004,"NearestMipmapLinearFilter",0,1005,"NearestMipmapNearestFilter",0,1004,"NeutralToneMapping",0,7,"NeverCompare",0,512,"NeverDepth",0,0,"NeverStencilFunc",0,512,"NoBlending",0,0,"NoColorSpace",0,"","NoToneMapping",0,0,"NormalAnimationBlendMode",0,2500,"NormalBlending",0,1,"NotEqualCompare",0,517,"NotEqualDepth",0,7,"NotEqualStencilFunc",0,517,"NumberKeyframeTrack",0,aU,"Object3D",0,ty,"ObjectLoader",0,sp,"ObjectSpaceNormalMap",0,1,"OctahedronGeometry",0,r8,"OneFactor",0,201,"OneMinusConstantAlphaFactor",0,214,"OneMinusConstantColorFactor",0,212,"OneMinusDstAlphaFactor",0,207,"OneMinusDstColorFactor",0,209,"OneMinusSrcAlphaFactor",0,205,"OneMinusSrcColorFactor",0,203,"OrthographicCamera",0,sn,"PCFShadowMap",0,1,"PCFSoftShadowMap",0,2,"Path",0,rw,"PerspectiveCamera",0,nE,"Plane",0,iy,"PlaneGeometry",0,r9,"PlaneHelper",0,oC,"PointLight",0,st,"PointLightHelper",0,oc,"Points",0,i4,"PointsMaterial",0,iQ,"PolarGridHelper",0,og,"PolyhedronGeometry",0,rI,"PositionalAudio",0,sF,"PropertyBinding",0,sX,"PropertyMixer",0,sB,"QuadraticBezierCurve",0,rx,"QuadraticBezierCurve3",0,rb,"Quaternion",0,ew,"QuaternionKeyframeTrack",0,aO,"QuaternionLinearInterpolant",0,aD,"RAD2DEG",0,k,"RED_GREEN_RGTC2_Format",0,36285,"RED_RGTC1_Format",0,36283,"REVISION",0,"171","RGBADepthPacking",0,3201,"RGBAFormat",0,1023,"RGBAIntegerFormat",0,1033,"RGBA_ASTC_10x10_Format",0,37819,"RGBA_ASTC_10x5_Format",0,37816,"RGBA_ASTC_10x6_Format",0,37817,"RGBA_ASTC_10x8_Format",0,37818,"RGBA_ASTC_12x10_Format",0,37820,"RGBA_ASTC_12x12_Format",0,37821,"RGBA_ASTC_4x4_Format",0,37808,"RGBA_ASTC_5x4_Format",0,37809,"RGBA_ASTC_5x5_Format",0,37810,"RGBA_ASTC_6x5_Format",0,37811,"RGBA_ASTC_6x6_Format",0,37812,"RGBA_ASTC_8x5_Format",0,37813,"RGBA_ASTC_8x6_Format",0,37814,"RGBA_ASTC_8x8_Format",0,37815,"RGBA_BPTC_Format",0,36492,"RGBA_ETC2_EAC_Format",0,37496,"RGBA_PVRTC_2BPPV1_Format",0,35843,"RGBA_PVRTC_4BPPV1_Format",0,35842,"RGBA_S3TC_DXT1_Format",0,33777,"RGBA_S3TC_DXT3_Format",0,33778,"RGBA_S3TC_DXT5_Format",0,33779,"RGBDepthPacking",0,3202,"RGBFormat",0,1022,"RGBIntegerFormat",0,1032,"RGB_BPTC_SIGNED_Format",0,36494,"RGB_BPTC_UNSIGNED_Format",0,36495,"RGB_ETC1_Format",0,36196,"RGB_ETC2_Format",0,37492,"RGB_PVRTC_2BPPV1_Format",0,35841,"RGB_PVRTC_4BPPV1_Format",0,35840,"RGB_S3TC_DXT1_Format",0,33776,"RGDepthPacking",0,3203,"RGFormat",0,1030,"RGIntegerFormat",0,1031,"RawShaderMaterial",0,ac,"Ray",0,e1,"Raycaster",0,s3,"RectAreaLight",0,ss,"RedFormat",0,1028,"RedIntegerFormat",0,1029,"ReinhardToneMapping",0,2,"RenderTarget",0,ey,"RepeatWrapping",0,1e3,"ReplaceStencilOp",0,7681,"ReverseSubtractEquation",0,102,"RingGeometry",0,r7,"SIGNED_RED_GREEN_RGTC2_Format",0,36286,"SIGNED_RED_RGTC1_Format",0,36284,"SRGBColorSpace",0,I,"SRGBTransfer",0,U,"Scene",0,nL,"ShaderMaterial",0,nb,"ShadowMaterial",0,au,"Shape",0,rz,"ShapeGeometry",0,ae,"ShapePath",0,oL,"ShapeUtils",0,r1,"ShortType",0,1011,"Skeleton",0,ia,"SkeletonHelper",0,ou,"SkinnedMesh",0,n7,"Source",0,ef,"Sphere",0,eq,"SphereGeometry",0,at,"Spherical",0,s6,"SphericalHarmonics3",0,so,"SplineCurve",0,rS,"SpotLight",0,a6,"SpotLightHelper",0,oa,"Sprite",0,nZ,"SpriteMaterial",0,nO,"SrcAlphaFactor",0,204,"SrcAlphaSaturateFactor",0,210,"SrcColorFactor",0,202,"StaticCopyUsage",0,35046,"StaticDrawUsage",0,35044,"StaticReadUsage",0,35045,"StereoCamera",0,sM,"StreamCopyUsage",0,35042,"StreamDrawUsage",0,35040,"StreamReadUsage",0,35041,"StringKeyframeTrack",0,aF,"SubtractEquation",0,101,"SubtractiveBlending",0,3,"TOUCH",0,C,"TangentSpaceNormalMap",0,0,"TetrahedronGeometry",0,an,"Texture",0,ev,"TextureLoader",0,a$,"TextureUtils",0,oD,"TorusGeometry",0,ai,"TorusKnotGeometry",0,ar,"Triangle",0,tN,"TriangleFanDrawMode",0,2,"TriangleStripDrawMode",0,1,"TrianglesDrawMode",0,0,"TubeGeometry",0,aa,"UVMapping",0,300,"Uint16BufferAttribute",0,t0,"Uint32BufferAttribute",0,t2,"Uint8BufferAttribute",0,tK,"Uint8ClampedBufferAttribute",0,t$,"Uniform",0,sK,"UniformsGroup",0,sQ,"UniformsUtils",0,nx,"UnsignedByteType",0,1009,"UnsignedInt248Type",0,1020,"UnsignedInt5999Type",0,35902,"UnsignedIntType",0,1014,"UnsignedShort4444Type",0,1017,"UnsignedShort5551Type",0,1018,"UnsignedShortType",0,1012,"VSMShadowMap",0,3,"Vector2",0,Y,"Vector3",0,eE,"Vector4",0,e_,"VectorKeyframeTrack",0,az,"VideoTexture",0,i8,"WebGL3DRenderTarget",0,eT,"WebGLArrayRenderTarget",0,eS,"WebGLCoordinateSystem",0,2e3,"WebGLCubeRenderTarget",0,nR,"WebGLMultipleRenderTargets",0,oO,"WebGLRenderTarget",0,ex,"WebGPUCoordinateSystem",0,2001,"WireframeGeometry",0,as,"WrapAroundEnding",0,2402,"ZeroCurvatureEnding",0,2400,"ZeroFactor",0,200,"ZeroSlopeEnding",0,2401,"ZeroStencilOp",0,0,"arrayNeedsUint32",0,K,"cloneUniforms",0,nv,"createCanvasElement",0,et,"createElementNS",0,ee,"getByteLength",0,oU,"getUnlitUniformColorSpace",0,ny,"mergeUniforms",0,n_,"probeAsync",0,er,"toNormalizedProjectionMatrix",0,ea,"toReversedProjectionMatrix",0,es,"warnOnce",0,ei],90072);let oB={alphahash_fragment:"#ifdef USE_ALPHAHASH\n if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif",alphahash_pars_fragment:"#ifdef USE_ALPHAHASH\n const float ALPHA_HASH_SCALE = 0.05;\n float hash2D( vec2 value ) {\n return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n }\n float hash3D( vec3 value ) {\n return hash2D( vec2( hash2D( value.xy ), value.z ) );\n }\n float getAlphaHashThreshold( vec3 position ) {\n float maxDeriv = max(\n length( dFdx( position.xyz ) ),\n length( dFdy( position.xyz ) )\n );\n float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n vec2 pixScales = vec2(\n exp2( floor( log2( pixScale ) ) ),\n exp2( ceil( log2( pixScale ) ) )\n );\n vec2 alpha = vec2(\n hash3D( floor( pixScales.x * position.xyz ) ),\n hash3D( floor( pixScales.y * position.xyz ) )\n );\n float lerpFactor = fract( log2( pixScale ) );\n float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n float a = min( lerpFactor, 1.0 - lerpFactor );\n vec3 cases = vec3(\n x * x / ( 2.0 * a * ( 1.0 - a ) ),\n ( x - 0.5 * a ) / ( 1.0 - a ),\n 1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n );\n float threshold = ( x < ( 1.0 - a ) )\n ? ( ( x < a ) ? cases.x : cases.y )\n : cases.z;\n return clamp( threshold , 1.0e-6, 1.0 );\n }\n#endif",alphamap_fragment:"#ifdef USE_ALPHAMAP\n diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n uniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef USE_ALPHATEST\n #ifdef ALPHA_TO_COVERAGE\n diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n if ( diffuseColor.a == 0.0 ) discard;\n #else\n if ( diffuseColor.a < alphaTest ) discard;\n #endif\n#endif",alphatest_pars_fragment:"#ifdef USE_ALPHATEST\n uniform float alphaTest;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n reflectedLight.indirectDiffuse *= ambientOcclusion;\n #if defined( USE_CLEARCOAT ) \n clearcoatSpecularIndirect *= ambientOcclusion;\n #endif\n #if defined( USE_SHEEN ) \n sheenSpecularIndirect *= ambientOcclusion;\n #endif\n #if defined( USE_ENVMAP ) && defined( STANDARD )\n float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n #endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n uniform sampler2D aoMap;\n uniform float aoMapIntensity;\n#endif",batching_pars_vertex:"#ifdef USE_BATCHING\n #if ! defined( GL_ANGLE_multi_draw )\n #define gl_DrawID _gl_DrawID\n uniform int _gl_DrawID;\n #endif\n uniform highp sampler2D batchingTexture;\n uniform highp usampler2D batchingIdTexture;\n mat4 getBatchingMatrix( const in float i ) {\n int size = textureSize( batchingTexture, 0 ).x;\n int j = int( i ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n float getIndirectIndex( const in int i ) {\n int size = textureSize( batchingIdTexture, 0 ).x;\n int x = i % size;\n int y = i / size;\n return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\n }\n#endif\n#ifdef USE_BATCHING_COLOR\n uniform sampler2D batchingColorTexture;\n vec3 getBatchingColor( const in float i ) {\n int size = textureSize( batchingColorTexture, 0 ).x;\n int j = int( i );\n int x = j % size;\n int y = j / size;\n return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\n }\n#endif",batching_vertex:"#ifdef USE_BATCHING\n mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\n#endif",begin_vertex:"vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n vPosition = vec3( position );\n#endif",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n vec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"float G_BlinnPhong_Implicit( ) {\n return 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( specularColor, 1.0, dotVH );\n float G = G_BlinnPhong_Implicit( );\n float D = D_BlinnPhong( shininess, dotNH );\n return F * ( G * D );\n} // validated",iridescence_fragment:"#ifdef USE_IRIDESCENCE\n const mat3 XYZ_TO_REC709 = mat3(\n 3.2404542, -0.9692660, 0.0556434,\n -1.5371385, 1.8760108, -0.2040259,\n -0.4985314, 0.0415560, 1.0572252\n );\n vec3 Fresnel0ToIor( vec3 fresnel0 ) {\n vec3 sqrtF0 = sqrt( fresnel0 );\n return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n }\n vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n }\n float IorToFresnel0( float transmittedIor, float incidentIor ) {\n return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n }\n vec3 evalSensitivity( float OPD, vec3 shift ) {\n float phase = 2.0 * PI * OPD * 1.0e-9;\n vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n xyz /= 1.0685e-7;\n vec3 rgb = XYZ_TO_REC709 * xyz;\n return rgb;\n }\n vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n vec3 I;\n float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n float cosTheta2Sq = 1.0 - sinTheta2Sq;\n if ( cosTheta2Sq < 0.0 ) {\n return vec3( 1.0 );\n }\n float cosTheta2 = sqrt( cosTheta2Sq );\n float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n float R12 = F_Schlick( R0, 1.0, cosTheta1 );\n float T121 = 1.0 - R12;\n float phi12 = 0.0;\n if ( iridescenceIOR < outsideIOR ) phi12 = PI;\n float phi21 = PI - phi12;\n vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n vec3 phi23 = vec3( 0.0 );\n if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n vec3 phi = vec3( phi21 ) + phi23;\n vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n vec3 r123 = sqrt( R123 );\n vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n vec3 C0 = R12 + Rs;\n I = C0;\n vec3 Cm = Rs - T121;\n for ( int m = 1; m <= 2; ++ m ) {\n Cm *= r123;\n vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n I += Cm * Sm;\n }\n return max( I, vec3( 0.0 ) );\n }\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n uniform sampler2D bumpMap;\n uniform float bumpScale;\n vec2 dHdxy_fwd() {\n vec2 dSTdx = dFdx( vBumpMapUv );\n vec2 dSTdy = dFdy( vBumpMapUv );\n float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n return vec2( dBx, dBy );\n }\n vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n vec3 vN = surf_norm;\n vec3 R1 = cross( vSigmaY, vN );\n vec3 R2 = cross( vN, vSigmaX );\n float fDet = dot( vSigmaX, R1 ) * faceDirection;\n vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n return normalize( abs( fDet ) * surf_norm - vGrad );\n }\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n vec4 plane;\n #ifdef ALPHA_TO_COVERAGE\n float distanceToPlane, distanceGradient;\n float clipOpacity = 1.0;\n #pragma unroll_loop_start\n for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n distanceGradient = fwidth( distanceToPlane ) / 2.0;\n clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n if ( clipOpacity == 0.0 ) discard;\n }\n #pragma unroll_loop_end\n #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n float unionClipOpacity = 1.0;\n #pragma unroll_loop_start\n for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n distanceGradient = fwidth( distanceToPlane ) / 2.0;\n unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n }\n #pragma unroll_loop_end\n clipOpacity *= 1.0 - unionClipOpacity;\n #endif\n diffuseColor.a *= clipOpacity;\n if ( diffuseColor.a == 0.0 ) discard;\n #else\n #pragma unroll_loop_start\n for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n }\n #pragma unroll_loop_end\n #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n bool clipped = true;\n #pragma unroll_loop_start\n for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n }\n #pragma unroll_loop_end\n if ( clipped ) discard;\n #endif\n #endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n varying vec3 vClipPosition;\n uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n varying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n vClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n diffuseColor *= vColor;\n#elif defined( USE_COLOR )\n diffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n varying vec4 vColor;\n#elif defined( USE_COLOR )\n varying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n varying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n varying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n vColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n vColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n vColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n vColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n vColor.xyz *= batchingColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n float precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n float precisionSafeLength( vec3 v ) {\n float maxComponent = max3( abs( v ) );\n return length( v / maxComponent ) * maxComponent;\n }\n#endif\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n bool visible;\n};\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n varying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n mat3 tmp;\n tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n return tmp;\n}\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n return vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n return RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n #define cubeUV_minMipLevel 4.0\n #define cubeUV_minTileSize 16.0\n float getFace( vec3 direction ) {\n vec3 absDirection = abs( direction );\n float face = - 1.0;\n if ( absDirection.x > absDirection.z ) {\n if ( absDirection.x > absDirection.y )\n face = direction.x > 0.0 ? 0.0 : 3.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n } else {\n if ( absDirection.z > absDirection.y )\n face = direction.z > 0.0 ? 2.0 : 5.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n }\n return face;\n }\n vec2 getUV( vec3 direction, float face ) {\n vec2 uv;\n if ( face == 0.0 ) {\n uv = vec2( direction.z, direction.y ) / abs( direction.x );\n } else if ( face == 1.0 ) {\n uv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n } else if ( face == 2.0 ) {\n uv = vec2( - direction.x, direction.y ) / abs( direction.z );\n } else if ( face == 3.0 ) {\n uv = vec2( - direction.z, direction.y ) / abs( direction.x );\n } else if ( face == 4.0 ) {\n uv = vec2( - direction.x, direction.z ) / abs( direction.y );\n } else {\n uv = vec2( direction.x, direction.y ) / abs( direction.z );\n }\n return 0.5 * ( uv + 1.0 );\n }\n vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n float face = getFace( direction );\n float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n mipInt = max( mipInt, cubeUV_minMipLevel );\n float faceSize = exp2( mipInt );\n highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n if ( face > 2.0 ) {\n uv.y += faceSize;\n face -= 3.0;\n }\n uv.x += face * faceSize;\n uv.x += filterInt * 3.0 * cubeUV_minTileSize;\n uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n uv.x *= CUBEUV_TEXEL_WIDTH;\n uv.y *= CUBEUV_TEXEL_HEIGHT;\n #ifdef texture2DGradEXT\n return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n #else\n return texture2D( envMap, uv ).rgb;\n #endif\n }\n #define cubeUV_r0 1.0\n #define cubeUV_m0 - 2.0\n #define cubeUV_r1 0.8\n #define cubeUV_m1 - 1.0\n #define cubeUV_r4 0.4\n #define cubeUV_m4 2.0\n #define cubeUV_r5 0.305\n #define cubeUV_m5 3.0\n #define cubeUV_r6 0.21\n #define cubeUV_m6 4.0\n float roughnessToMip( float roughness ) {\n float mip = 0.0;\n if ( roughness >= cubeUV_r1 ) {\n mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n } else if ( roughness >= cubeUV_r4 ) {\n mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n } else if ( roughness >= cubeUV_r5 ) {\n mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n } else if ( roughness >= cubeUV_r6 ) {\n mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n } else {\n mip = - 2.0 * log2( 1.16 * roughness ); }\n return mip;\n }\n vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n float mipF = fract( mip );\n float mipInt = floor( mip );\n vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n if ( mipF == 0.0 ) {\n return vec4( color0, 1.0 );\n } else {\n vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n return vec4( mix( color0, color1, mipF ), 1.0 );\n }\n }\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n vec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n mat3 bm = mat3( batchingMatrix );\n transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n transformedNormal = bm * transformedNormal;\n #ifdef USE_TANGENT\n transformedTangent = bm * transformedTangent;\n #endif\n#endif\n#ifdef USE_INSTANCING\n mat3 im = mat3( instanceMatrix );\n transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n transformedNormal = im * transformedNormal;\n #ifdef USE_TANGENT\n transformedTangent = im * transformedTangent;\n #endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n transformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n #ifdef FLIP_SIDED\n transformedTangent = - transformedTangent;\n #endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n uniform sampler2D displacementMap;\n uniform float displacementScale;\n uniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\n emissiveColor = sRGBTransferEOTF( emissiveColor );\n #endif\n totalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n uniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"vec4 LinearTransferOETF( in vec4 value ) {\n return value;\n}\nvec4 sRGBTransferEOTF( in vec4 value ) {\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n #ifdef ENV_WORLDPOS\n vec3 cameraToFrag;\n if ( isOrthographic ) {\n cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n } else {\n cameraToFrag = normalize( vWorldPosition - cameraPosition );\n }\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n #ifdef ENVMAP_MODE_REFLECTION\n vec3 reflectVec = reflect( cameraToFrag, worldNormal );\n #else\n vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n #endif\n #else\n vec3 reflectVec = vReflect;\n #endif\n #ifdef ENVMAP_TYPE_CUBE\n vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n #else\n vec4 envColor = vec4( 0.0 );\n #endif\n #ifdef ENVMAP_BLENDING_MULTIPLY\n outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n #elif defined( ENVMAP_BLENDING_MIX )\n outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n #elif defined( ENVMAP_BLENDING_ADD )\n outgoingLight += envColor.xyz * specularStrength * reflectivity;\n #endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n uniform float envMapIntensity;\n uniform float flipEnvMap;\n uniform mat3 envMapRotation;\n #ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n #else\n uniform sampler2D envMap;\n #endif\n \n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n uniform float reflectivity;\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n #define ENV_WORLDPOS\n #endif\n #ifdef ENV_WORLDPOS\n varying vec3 vWorldPosition;\n uniform float refractionRatio;\n #else\n varying vec3 vReflect;\n #endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n #define ENV_WORLDPOS\n #endif\n #ifdef ENV_WORLDPOS\n \n varying vec3 vWorldPosition;\n #else\n varying vec3 vReflect;\n uniform float refractionRatio;\n #endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n vec3 getIBLIrradiance( const in vec3 normal ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n return PI * envMapColor.rgb * envMapIntensity;\n #else\n return vec3( 0.0 );\n #endif\n }\n vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 reflectVec = reflect( - viewDir, normal );\n reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n reflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n return envMapColor.rgb * envMapIntensity;\n #else\n return vec3( 0.0 );\n #endif\n }\n #ifdef USE_ANISOTROPY\n vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 bentNormal = cross( bitangent, viewDir );\n bentNormal = normalize( cross( bentNormal, bitangent ) );\n bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n return getIBLRadiance( viewDir, bentNormal, roughness );\n #else\n return vec3( 0.0 );\n #endif\n }\n #endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n #ifdef ENV_WORLDPOS\n vWorldPosition = worldPosition.xyz;\n #else\n vec3 cameraToVertex;\n if ( isOrthographic ) {\n cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n } else {\n cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n }\n vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n #ifdef ENVMAP_MODE_REFLECTION\n vReflect = reflect( cameraToVertex, worldNormal );\n #else\n vReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n #endif\n #endif\n#endif",fog_vertex:"#ifdef USE_FOG\n vFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n varying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n #ifdef FOG_EXP2\n float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n #else\n float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n #endif\n gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n uniform vec3 fogColor;\n varying float vFogDepth;\n #ifdef FOG_EXP2\n uniform float fogDensity;\n #else\n uniform float fogNear;\n uniform float fogFar;\n #endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n uniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n float dotNL = dot( normal, lightDirection );\n vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n #ifdef USE_GRADIENTMAP\n return vec3( texture2D( gradientMap, coord ).r );\n #else\n vec2 fw = fwidth( coord ) * 0.5;\n return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n #endif\n}",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n uniform sampler2D lightMap;\n uniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n vec3 diffuseColor;\n float specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_Lambert\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n uniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n float x = normal.x, y = normal.y, z = normal.z;\n vec3 result = shCoefficients[ 0 ] * 0.886227;\n result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n return result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n return irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n vec3 irradiance = ambientLightColor;\n return irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n if ( cutoffDistance > 0.0 ) {\n distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n }\n return distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n return smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n struct DirectionalLight {\n vec3 direction;\n vec3 color;\n };\n uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n light.color = directionalLight.color;\n light.direction = directionalLight.direction;\n light.visible = true;\n }\n#endif\n#if NUM_POINT_LIGHTS > 0\n struct PointLight {\n vec3 position;\n vec3 color;\n float distance;\n float decay;\n };\n uniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n vec3 lVector = pointLight.position - geometryPosition;\n light.direction = normalize( lVector );\n float lightDistance = length( lVector );\n light.color = pointLight.color;\n light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n light.visible = ( light.color != vec3( 0.0 ) );\n }\n#endif\n#if NUM_SPOT_LIGHTS > 0\n struct SpotLight {\n vec3 position;\n vec3 direction;\n vec3 color;\n float distance;\n float decay;\n float coneCos;\n float penumbraCos;\n };\n uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n vec3 lVector = spotLight.position - geometryPosition;\n light.direction = normalize( lVector );\n float angleCos = dot( light.direction, spotLight.direction );\n float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n if ( spotAttenuation > 0.0 ) {\n float lightDistance = length( lVector );\n light.color = spotLight.color * spotAttenuation;\n light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n light.visible = ( light.color != vec3( 0.0 ) );\n } else {\n light.color = vec3( 0.0 );\n light.visible = false;\n }\n }\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n struct RectAreaLight {\n vec3 color;\n vec3 position;\n vec3 halfWidth;\n vec3 halfHeight;\n };\n uniform sampler2D ltc_1; uniform sampler2D ltc_2;\n uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n struct HemisphereLight {\n vec3 direction;\n vec3 skyColor;\n vec3 groundColor;\n };\n uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n float dotNL = dot( normal, hemiLight.direction );\n float hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n return irradiance;\n }\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n vec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_Toon\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n vec3 diffuseColor;\n vec3 specularColor;\n float specularShininess;\n float specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_BlinnPhong\n#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n material.ior = ior;\n #ifdef USE_SPECULAR\n float specularIntensityFactor = specularIntensity;\n vec3 specularColorFactor = specularColor;\n #ifdef USE_SPECULAR_COLORMAP\n specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n #endif\n #ifdef USE_SPECULAR_INTENSITYMAP\n specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n #endif\n material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n #else\n float specularIntensityFactor = 1.0;\n vec3 specularColorFactor = vec3( 1.0 );\n material.specularF90 = 1.0;\n #endif\n material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n material.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n material.clearcoat = clearcoat;\n material.clearcoatRoughness = clearcoatRoughness;\n material.clearcoatF0 = vec3( 0.04 );\n material.clearcoatF90 = 1.0;\n #ifdef USE_CLEARCOATMAP\n material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n #endif\n #ifdef USE_CLEARCOAT_ROUGHNESSMAP\n material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n #endif\n material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n material.clearcoatRoughness += geometryRoughness;\n material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n material.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n material.iridescence = iridescence;\n material.iridescenceIOR = iridescenceIOR;\n #ifdef USE_IRIDESCENCEMAP\n material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n #endif\n #ifdef USE_IRIDESCENCE_THICKNESSMAP\n material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n #else\n material.iridescenceThickness = iridescenceThicknessMaximum;\n #endif\n#endif\n#ifdef USE_SHEEN\n material.sheenColor = sheenColor;\n #ifdef USE_SHEEN_COLORMAP\n material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n #endif\n material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n #ifdef USE_SHEEN_ROUGHNESSMAP\n material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n #endif\n#endif\n#ifdef USE_ANISOTROPY\n #ifdef USE_ANISOTROPYMAP\n mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n #else\n vec2 anisotropyV = anisotropyVector;\n #endif\n material.anisotropy = length( anisotropyV );\n if( material.anisotropy == 0.0 ) {\n anisotropyV = vec2( 1.0, 0.0 );\n } else {\n anisotropyV /= material.anisotropy;\n material.anisotropy = saturate( material.anisotropy );\n }\n material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n vec3 diffuseColor;\n float roughness;\n vec3 specularColor;\n float specularF90;\n float dispersion;\n #ifdef USE_CLEARCOAT\n float clearcoat;\n float clearcoatRoughness;\n vec3 clearcoatF0;\n float clearcoatF90;\n #endif\n #ifdef USE_IRIDESCENCE\n float iridescence;\n float iridescenceIOR;\n float iridescenceThickness;\n vec3 iridescenceFresnel;\n vec3 iridescenceF0;\n #endif\n #ifdef USE_SHEEN\n vec3 sheenColor;\n float sheenRoughness;\n #endif\n #ifdef IOR\n float ior;\n #endif\n #ifdef USE_TRANSMISSION\n float transmission;\n float transmissionAlpha;\n float thickness;\n float attenuationDistance;\n vec3 attenuationColor;\n #endif\n #ifdef USE_ANISOTROPY\n float anisotropy;\n float alphaT;\n vec3 anisotropyT;\n vec3 anisotropyB;\n #endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n float a2 = pow2( alpha );\n float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n return 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n float a2 = pow2( alpha );\n float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n return RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n float v = 0.5 / ( gv + gl );\n return saturate(v);\n }\n float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n float a2 = alphaT * alphaB;\n highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n highp float v2 = dot( v, v );\n float w2 = a2 / v2;\n return RECIPROCAL_PI * a2 * pow2 ( w2 );\n }\n#endif\n#ifdef USE_CLEARCOAT\n vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n vec3 f0 = material.clearcoatF0;\n float f90 = material.clearcoatF90;\n float roughness = material.clearcoatRoughness;\n float alpha = pow2( roughness );\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( f0, f90, dotVH );\n float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n float D = D_GGX( alpha, dotNH );\n return F * ( V * D );\n }\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n vec3 f0 = material.specularColor;\n float f90 = material.specularF90;\n float roughness = material.roughness;\n float alpha = pow2( roughness );\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( f0, f90, dotVH );\n #ifdef USE_IRIDESCENCE\n F = mix( F, material.iridescenceFresnel, material.iridescence );\n #endif\n #ifdef USE_ANISOTROPY\n float dotTL = dot( material.anisotropyT, lightDir );\n float dotTV = dot( material.anisotropyT, viewDir );\n float dotTH = dot( material.anisotropyT, halfDir );\n float dotBL = dot( material.anisotropyB, lightDir );\n float dotBV = dot( material.anisotropyB, viewDir );\n float dotBH = dot( material.anisotropyB, halfDir );\n float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n #else\n float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n float D = D_GGX( alpha, dotNH );\n #endif\n return F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n const float LUT_SIZE = 64.0;\n const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n const float LUT_BIAS = 0.5 / LUT_SIZE;\n float dotNV = saturate( dot( N, V ) );\n vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n uv = uv * LUT_SCALE + LUT_BIAS;\n return uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n float l = length( f );\n return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n float x = dot( v1, v2 );\n float y = abs( x );\n float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n float b = 3.4175940 + ( 4.1616724 + y ) * y;\n float v = a / b;\n float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n return cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n vec3 lightNormal = cross( v1, v2 );\n if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n vec3 T1, T2;\n T1 = normalize( V - N * dot( V, N ) );\n T2 = - cross( N, T1 );\n mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n vec3 coords[ 4 ];\n coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n coords[ 0 ] = normalize( coords[ 0 ] );\n coords[ 1 ] = normalize( coords[ 1 ] );\n coords[ 2 ] = normalize( coords[ 2 ] );\n coords[ 3 ] = normalize( coords[ 3 ] );\n vec3 vectorFormFactor = vec3( 0.0 );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n float result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n return vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n float alpha = pow2( roughness );\n float invAlpha = 1.0 / alpha;\n float cos2h = dotNH * dotNH;\n float sin2h = max( 1.0 - cos2h, 0.0078125 );\n return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float D = D_Charlie( sheenRoughness, dotNH );\n float V = V_Neubelt( dotNV, dotNL );\n return sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n float dotNV = saturate( dot( normal, viewDir ) );\n float r2 = roughness * roughness;\n float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n return saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n float dotNV = saturate( dot( normal, viewDir ) );\n const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n vec4 r = roughness * c0 + c1;\n float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n return fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n vec2 fab = DFGApprox( normal, viewDir, roughness );\n return specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n vec2 fab = DFGApprox( normal, viewDir, roughness );\n #ifdef USE_IRIDESCENCE\n vec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n #else\n vec3 Fr = specularColor;\n #endif\n vec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n float Ess = fab.x + fab.y;\n float Ems = 1.0 - Ess;\n vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n singleScatter += FssEss;\n multiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 normal = geometryNormal;\n vec3 viewDir = geometryViewDir;\n vec3 position = geometryPosition;\n vec3 lightPos = rectAreaLight.position;\n vec3 halfWidth = rectAreaLight.halfWidth;\n vec3 halfHeight = rectAreaLight.halfHeight;\n vec3 lightColor = rectAreaLight.color;\n float roughness = material.roughness;\n vec3 rectCoords[ 4 ];\n rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n vec2 uv = LTC_Uv( normal, viewDir, roughness );\n vec4 t1 = texture2D( ltc_1, uv );\n vec4 t2 = texture2D( ltc_2, uv );\n mat3 mInv = mat3(\n vec3( t1.x, 0, t1.y ),\n vec3( 0, 1, 0 ),\n vec3( t1.z, 0, t1.w )\n );\n vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n }\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n #ifdef USE_CLEARCOAT\n float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n vec3 ccIrradiance = dotNLcc * directLight.color;\n clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n #endif\n #ifdef USE_SHEEN\n sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n #endif\n reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n #ifdef USE_CLEARCOAT\n clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n #endif\n #ifdef USE_SHEEN\n sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n #endif\n vec3 singleScattering = vec3( 0.0 );\n vec3 multiScattering = vec3( 0.0 );\n vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n #ifdef USE_IRIDESCENCE\n computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n #else\n computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n #endif\n vec3 totalScattering = singleScattering + multiScattering;\n vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n reflectedLight.indirectSpecular += radiance * singleScattering;\n reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct RE_Direct_Physical\n#define RE_Direct_RectArea RE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular RE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n geometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n float dotNVi = saturate( dot( normal, geometryViewDir ) );\n if ( material.iridescenceThickness == 0.0 ) {\n material.iridescence = 0.0;\n } else {\n material.iridescence = saturate( material.iridescence );\n }\n if ( material.iridescence > 0.0 ) {\n material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n }\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n PointLight pointLight;\n #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n pointLight = pointLights[ i ];\n getPointLightInfo( pointLight, geometryPosition, directLight );\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n pointLightShadow = pointLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n SpotLight spotLight;\n vec4 spotColor;\n vec3 spotLightCoord;\n bool inSpotLightMap;\n #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n spotLight = spotLights[ i ];\n getSpotLightInfo( spotLight, geometryPosition, directLight );\n #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n #else\n #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #endif\n #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n #endif\n #undef SPOT_LIGHT_MAP_INDEX\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n spotLightShadow = spotLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n DirectionalLight directionalLight;\n #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n directionalLight = directionalLights[ i ];\n getDirectionalLightInfo( directionalLight, directLight );\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n directionalLightShadow = directionalLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n RectAreaLight rectAreaLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n rectAreaLight = rectAreaLights[ i ];\n RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n vec3 iblIrradiance = vec3( 0.0 );\n vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n #if defined( USE_LIGHT_PROBES )\n irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n #endif\n #if ( NUM_HEMI_LIGHTS > 0 )\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n }\n #pragma unroll_loop_end\n #endif\n#endif\n#if defined( RE_IndirectSpecular )\n vec3 radiance = vec3( 0.0 );\n vec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n #ifdef USE_LIGHTMAP\n vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n irradiance += lightMapIrradiance;\n #endif\n #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n iblIrradiance += getIBLIrradiance( geometryNormal );\n #endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n #ifdef USE_ANISOTROPY\n radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n #else\n radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n #endif\n #ifdef USE_CLEARCOAT\n clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n #endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF )\n gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF )\n uniform float logDepthBufFC;\n varying float vFragDepth;\n varying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n varying float vFragDepth;\n varying float vIsPerspective;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n vFragDepth = 1.0 + gl_Position.w;\n vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif",map_fragment:"#ifdef USE_MAP\n vec4 sampledDiffuseColor = texture2D( map, vMapUv );\n #ifdef DECODE_VIDEO_TEXTURE\n sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\n #endif\n diffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n uniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n #if defined( USE_POINTS_UV )\n vec2 uv = vUv;\n #else\n vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n #endif\n#endif\n#ifdef USE_MAP\n diffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n diffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n varying vec2 vUv;\n#else\n #if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n uniform mat3 uvTransform;\n #endif\n#endif\n#ifdef USE_MAP\n uniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n uniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n metalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n uniform sampler2D metalnessMap;\n#endif",morphinstance_vertex:"#ifdef USE_INSTANCING_MORPH\n float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n }\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS )\n vColor *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n #if defined( USE_COLOR_ALPHA )\n if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n #elif defined( USE_COLOR )\n if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n #endif\n }\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n objectNormal *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n }\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n #ifndef USE_INSTANCING_MORPH\n uniform float morphTargetBaseInfluence;\n uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n #endif\n uniform sampler2DArray morphTargetsTexture;\n uniform ivec2 morphTargetsTextureSize;\n vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n int y = texelIndex / morphTargetsTextureSize.x;\n int x = texelIndex - y * morphTargetsTextureSize.x;\n ivec3 morphUV = ivec3( x, y, morphTargetIndex );\n return texelFetch( morphTargetsTexture, morphUV, 0 );\n }\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n transformed *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n }\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n vec3 fdx = dFdx( vViewPosition );\n vec3 fdy = dFdy( vViewPosition );\n vec3 normal = normalize( cross( fdx, fdy ) );\n#else\n vec3 normal = normalize( vNormal );\n #ifdef DOUBLE_SIDED\n normal *= faceDirection;\n #endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n #ifdef USE_TANGENT\n mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n #else\n mat3 tbn = getTangentFrame( - vViewPosition, normal,\n #if defined( USE_NORMALMAP )\n vNormalMapUv\n #elif defined( USE_CLEARCOAT_NORMALMAP )\n vClearcoatNormalMapUv\n #else\n vUv\n #endif\n );\n #endif\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n tbn[0] *= faceDirection;\n tbn[1] *= faceDirection;\n #endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n #ifdef USE_TANGENT\n mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n #else\n mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n #endif\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n tbn2[0] *= faceDirection;\n tbn2[1] *= faceDirection;\n #endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n #ifdef FLIP_SIDED\n normal = - normal;\n #endif\n #ifdef DOUBLE_SIDED\n normal = normal * faceDirection;\n #endif\n normal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n mapN.xy *= normalScale;\n normal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n varying vec3 vNormal;\n #ifdef USE_TANGENT\n varying vec3 vTangent;\n varying vec3 vBitangent;\n #endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n varying vec3 vNormal;\n #ifdef USE_TANGENT\n varying vec3 vTangent;\n varying vec3 vBitangent;\n #endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n vNormal = normalize( transformedNormal );\n #ifdef USE_TANGENT\n vTangent = normalize( transformedTangent );\n vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n #endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n uniform sampler2D normalMap;\n uniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n uniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n vec3 q0 = dFdx( eye_pos.xyz );\n vec3 q1 = dFdy( eye_pos.xyz );\n vec2 st0 = dFdx( uv.st );\n vec2 st1 = dFdy( uv.st );\n vec3 N = surf_norm;\n vec3 q1perp = cross( q1, N );\n vec3 q0perp = cross( N, q0 );\n vec3 T = q1perp * st0.x + q0perp * st1.x;\n vec3 B = q1perp * st0.y + q0perp * st1.y;\n float det = max( dot( T, T ), dot( B, B ) );\n float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n return mat3( T * scale, B * scale, N );\n }\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n vec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n clearcoatMapN.xy *= clearcoatNormalScale;\n clearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n uniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n uniform sampler2D clearcoatNormalMap;\n uniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n uniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n uniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n uniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\nconst float Inv255 = 1. / 255.;\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\nvec4 packDepthToRGBA( const in float v ) {\n if( v <= 0.0 )\n return vec4( 0., 0., 0., 0. );\n if( v >= 1.0 )\n return vec4( 1., 1., 1., 1. );\n float vuf;\n float af = modf( v * PackFactors.a, vuf );\n float bf = modf( vuf * ShiftRight8, vuf );\n float gf = modf( vuf * ShiftRight8, vuf );\n return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\n}\nvec3 packDepthToRGB( const in float v ) {\n if( v <= 0.0 )\n return vec3( 0., 0., 0. );\n if( v >= 1.0 )\n return vec3( 1., 1., 1. );\n float vuf;\n float bf = modf( v * PackFactors.b, vuf );\n float gf = modf( vuf * ShiftRight8, vuf );\n return vec3( vuf * Inv255, gf * PackUpscale, bf );\n}\nvec2 packDepthToRG( const in float v ) {\n if( v <= 0.0 )\n return vec2( 0., 0. );\n if( v >= 1.0 )\n return vec2( 1., 1. );\n float vuf;\n float gf = modf( v * 256., vuf );\n return vec2( vuf * Inv255, gf );\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n return dot( v, UnpackFactors4 );\n}\nfloat unpackRGBToDepth( const in vec3 v ) {\n return dot( v, UnpackFactors3 );\n}\nfloat unpackRGToDepth( const in vec2 v ) {\n return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\n}\nvec4 pack2HalfToRGBA( const in vec2 v ) {\n vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( const in vec4 v ) {\n return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n return ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n return depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n gl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n mvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n vec3 dithering( vec3 color ) {\n float grid_position = rand( gl_FragCoord.xy );\n vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n return color + dither_shift_RGB;\n }\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n roughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n uniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n struct DirectionalLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n struct SpotLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n struct PointLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n float shadowCameraNear;\n float shadowCameraFar;\n };\n uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n #endif\n float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n }\n vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n return unpackRGBATo2Half( texture2D( shadow, uv ) );\n }\n float VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n float occlusion = 1.0;\n vec2 distribution = texture2DDistribution( shadow, uv );\n float hard_shadow = step( compare , distribution.x );\n if (hard_shadow != 1.0 ) {\n float distance = compare - distribution.x ;\n float variance = max( 0.00000, distribution.y * distribution.y );\n float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n }\n return occlusion;\n }\n float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n float shadow = 1.0;\n shadowCoord.xyz /= shadowCoord.w;\n shadowCoord.z += shadowBias;\n bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n bool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n if ( frustumTest ) {\n #if defined( SHADOWMAP_TYPE_PCF )\n vec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n float dx0 = - texelSize.x * shadowRadius;\n float dy0 = - texelSize.y * shadowRadius;\n float dx1 = + texelSize.x * shadowRadius;\n float dy1 = + texelSize.y * shadowRadius;\n float dx2 = dx0 / 2.0;\n float dy2 = dy0 / 2.0;\n float dx3 = dx1 / 2.0;\n float dy3 = dy1 / 2.0;\n shadow = (\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n ) * ( 1.0 / 17.0 );\n #elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n vec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n float dx = texelSize.x;\n float dy = texelSize.y;\n vec2 uv = shadowCoord.xy;\n vec2 f = fract( uv * shadowMapSize + 0.5 );\n uv -= f * texelSize;\n shadow = (\n texture2DCompare( shadowMap, uv, shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n f.x ) +\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n f.x ) +\n mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n f.y ) +\n mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n f.y ) +\n mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n f.x ),\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n f.x ),\n f.y )\n ) * ( 1.0 / 9.0 );\n #elif defined( SHADOWMAP_TYPE_VSM )\n shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n #else\n shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n #endif\n }\n return mix( 1.0, shadow, shadowIntensity );\n }\n vec2 cubeToUV( vec3 v, float texelSizeY ) {\n vec3 absV = abs( v );\n float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n absV *= scaleToCube;\n v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n vec2 planar = v.xy;\n float almostATexel = 1.5 * texelSizeY;\n float almostOne = 1.0 - almostATexel;\n if ( absV.z >= almostOne ) {\n if ( v.z > 0.0 )\n planar.x = 4.0 - v.x;\n } else if ( absV.x >= almostOne ) {\n float signX = sign( v.x );\n planar.x = v.z * signX + 2.0 * signX;\n } else if ( absV.y >= almostOne ) {\n float signY = sign( v.y );\n planar.x = v.x + 2.0 * signY + 2.0;\n planar.y = v.z * signY - 2.0;\n }\n return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n }\n float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n float shadow = 1.0;\n vec3 lightToPosition = shadowCoord.xyz;\n \n float lightToPositionLength = length( lightToPosition );\n if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias;\n vec3 bd3D = normalize( lightToPosition );\n vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n shadow = (\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n ) * ( 1.0 / 9.0 );\n #else\n shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n #endif\n }\n return mix( 1.0, shadow, shadowIntensity );\n }\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n struct DirectionalLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n struct SpotLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n struct PointLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n float shadowCameraNear;\n float shadowCameraFar;\n };\n uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n #endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n vec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n #if NUM_DIR_LIGHT_SHADOWS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n #endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n shadowWorldPosition = worldPosition;\n #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n #endif\n vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n float shadow = 1.0;\n #ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n directionalLight = directionalLightShadows[ i ];\n shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n spotLight = spotLightShadows[ i ];\n shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n pointLight = pointLightShadows[ i ];\n shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #endif\n return shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n mat4 boneMatX = getBoneMatrix( skinIndex.x );\n mat4 boneMatY = getBoneMatrix( skinIndex.y );\n mat4 boneMatZ = getBoneMatrix( skinIndex.z );\n mat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n uniform mat4 bindMatrix;\n uniform mat4 bindMatrixInverse;\n uniform highp sampler2D boneTexture;\n mat4 getBoneMatrix( const in float i ) {\n int size = textureSize( boneTexture, 0 ).x;\n int j = int( i ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n vec4 skinned = vec4( 0.0 );\n skinned += boneMatX * skinVertex * skinWeight.x;\n skinned += boneMatY * skinVertex * skinWeight.y;\n skinned += boneMatZ * skinVertex * skinWeight.z;\n skinned += boneMatW * skinVertex * skinWeight.w;\n transformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n mat4 skinMatrix = mat4( 0.0 );\n skinMatrix += skinWeight.x * boneMatX;\n skinMatrix += skinWeight.y * boneMatY;\n skinMatrix += skinWeight.z * boneMatZ;\n skinMatrix += skinWeight.w * boneMatW;\n skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n #ifdef USE_TANGENT\n objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n #endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n specularStrength = texelSpecular.r;\n#else\n specularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n uniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n return saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n return saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n color = max( vec3( 0.0 ), color - 0.004 );\n return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n vec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n return a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n const mat3 ACESInputMat = mat3(\n vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ),\n vec3( 0.04823, 0.01566, 0.83777 )\n );\n const mat3 ACESOutputMat = mat3(\n vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ),\n vec3( -0.07367, -0.00605, 1.07602 )\n );\n color *= toneMappingExposure / 0.6;\n color = ACESInputMat * color;\n color = RRTAndODTFit( color );\n color = ACESOutputMat * color;\n return saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n vec3( 1.6605, - 0.1246, - 0.0182 ),\n vec3( - 0.5876, 1.1329, - 0.1006 ),\n vec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n vec3( 0.6274, 0.0691, 0.0164 ),\n vec3( 0.3293, 0.9195, 0.0880 ),\n vec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n vec3 x2 = x * x;\n vec3 x4 = x2 * x2;\n return + 15.5 * x4 * x2\n - 40.14 * x4 * x\n + 31.96 * x4\n - 6.868 * x2 * x\n + 0.4298 * x2\n + 0.1191 * x\n - 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n const mat3 AgXInsetMatrix = mat3(\n vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n );\n const mat3 AgXOutsetMatrix = mat3(\n vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n );\n const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069;\n color *= toneMappingExposure;\n color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n color = AgXInsetMatrix * color;\n color = max( color, 1e-10 ); color = log2( color );\n color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n color = clamp( color, 0.0, 1.0 );\n color = agxDefaultContrastApprox( color );\n color = AgXOutsetMatrix * color;\n color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n color = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n color = clamp( color, 0.0, 1.0 );\n return color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n const float StartCompression = 0.8 - 0.04;\n const float Desaturation = 0.15;\n color *= toneMappingExposure;\n float x = min( color.r, min( color.g, color.b ) );\n float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n color -= offset;\n float peak = max( color.r, max( color.g, color.b ) );\n if ( peak < StartCompression ) return color;\n float d = 1. - StartCompression;\n float newPeak = 1. - d * d / ( peak + d - StartCompression );\n color *= newPeak / peak;\n float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n return mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n material.transmission = transmission;\n material.transmissionAlpha = 1.0;\n material.thickness = thickness;\n material.attenuationDistance = attenuationDistance;\n material.attenuationColor = attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n #endif\n #ifdef USE_THICKNESSMAP\n material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n #endif\n vec3 pos = vWorldPosition;\n vec3 v = normalize( cameraPosition - pos );\n vec3 n = inverseTransformDirection( normal, viewMatrix );\n vec4 transmitted = getIBLVolumeRefraction(\n n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n material.attenuationColor, material.attenuationDistance );\n material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n uniform float transmission;\n uniform float thickness;\n uniform float attenuationDistance;\n uniform vec3 attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n uniform sampler2D transmissionMap;\n #endif\n #ifdef USE_THICKNESSMAP\n uniform sampler2D thicknessMap;\n #endif\n uniform vec2 transmissionSamplerSize;\n uniform sampler2D transmissionSamplerMap;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrix;\n varying vec3 vWorldPosition;\n float w0( float a ) {\n return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n }\n float w1( float a ) {\n return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n }\n float w2( float a ){\n return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n }\n float w3( float a ) {\n return ( 1.0 / 6.0 ) * ( a * a * a );\n }\n float g0( float a ) {\n return w0( a ) + w1( a );\n }\n float g1( float a ) {\n return w2( a ) + w3( a );\n }\n float h0( float a ) {\n return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n }\n float h1( float a ) {\n return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n }\n vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n uv = uv * texelSize.zw + 0.5;\n vec2 iuv = floor( uv );\n vec2 fuv = fract( uv );\n float g0x = g0( fuv.x );\n float g1x = g1( fuv.x );\n float h0x = h0( fuv.x );\n float h1x = h1( fuv.x );\n float h0y = h0( fuv.y );\n float h1y = h1( fuv.y );\n vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n }\n vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n vec2 fLodSizeInv = 1.0 / fLodSize;\n vec2 cLodSizeInv = 1.0 / cLodSize;\n vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n return mix( fSample, cSample, fract( lod ) );\n }\n vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n vec3 modelScale;\n modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n return normalize( refractionVector ) * thickness * modelScale;\n }\n float applyIorToRoughness( const in float roughness, const in float ior ) {\n return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n }\n vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n }\n vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n if ( isinf( attenuationDistance ) ) {\n return vec3( 1.0 );\n } else {\n vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance;\n }\n }\n vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n const in vec3 attenuationColor, const in float attenuationDistance ) {\n vec4 transmittedLight;\n vec3 transmittance;\n #ifdef USE_DISPERSION\n float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n for ( int i = 0; i < 3; i ++ ) {\n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n \n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n \n vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n transmittedLight[ i ] = transmissionSample[ i ];\n transmittedLight.a += transmissionSample.a;\n transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n }\n transmittedLight.a /= 3.0;\n \n #else\n \n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n \n #endif\n vec3 attenuatedColor = transmittance * transmittedLight.rgb;\n vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n }\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n varying vec2 vUv;\n#endif\n#ifdef USE_MAP\n varying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n varying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n varying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n varying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n varying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n varying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n varying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n varying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n varying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n varying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n varying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n varying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n varying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n varying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n varying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n varying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n varying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n varying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n varying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n varying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n uniform mat3 transmissionMapTransform;\n varying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n uniform mat3 thicknessMapTransform;\n varying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n varying vec2 vUv;\n#endif\n#ifdef USE_MAP\n uniform mat3 mapTransform;\n varying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n uniform mat3 alphaMapTransform;\n varying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n uniform mat3 lightMapTransform;\n varying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n uniform mat3 aoMapTransform;\n varying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n uniform mat3 bumpMapTransform;\n varying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n uniform mat3 normalMapTransform;\n varying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n uniform mat3 displacementMapTransform;\n varying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n uniform mat3 emissiveMapTransform;\n varying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n uniform mat3 metalnessMapTransform;\n varying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n uniform mat3 roughnessMapTransform;\n varying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n uniform mat3 anisotropyMapTransform;\n varying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n uniform mat3 clearcoatMapTransform;\n varying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n uniform mat3 clearcoatNormalMapTransform;\n varying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n uniform mat3 clearcoatRoughnessMapTransform;\n varying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n uniform mat3 sheenColorMapTransform;\n varying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n uniform mat3 sheenRoughnessMapTransform;\n varying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n uniform mat3 iridescenceMapTransform;\n varying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n uniform mat3 iridescenceThicknessMapTransform;\n varying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n uniform mat3 specularMapTransform;\n varying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n uniform mat3 specularColorMapTransform;\n varying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n uniform mat3 specularIntensityMapTransform;\n varying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n uniform mat3 transmissionMapTransform;\n varying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n uniform mat3 thicknessMapTransform;\n varying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n vUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n vec4 worldPosition = vec4( transformed, 1.0 );\n #ifdef USE_BATCHING\n worldPosition = batchingMatrix * worldPosition;\n #endif\n #ifdef USE_INSTANCING\n worldPosition = instanceMatrix * worldPosition;\n #endif\n worldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n gl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n vec4 texColor = texture2D( t2D, vUv );\n #ifdef DECODE_VIDEO_TEXTURE\n texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n #endif\n texColor.rgb *= backgroundIntensity;\n gl_FragColor = texColor;\n #include \n #include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n gl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n uniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n #ifdef ENVMAP_TYPE_CUBE\n vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n #elif defined( ENVMAP_TYPE_CUBE_UV )\n vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n #else\n vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n #endif\n texColor.rgb *= backgroundIntensity;\n gl_FragColor = texColor;\n #include \n #include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n gl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n gl_FragColor = texColor;\n gl_FragColor.a *= opacity;\n #include \n #include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n #include \n #include \n #include \n #include \n #ifdef USE_DISPLACEMENTMAP\n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n uniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n vec4 diffuseColor = vec4( 1.0 );\n #include \n #if DEPTH_PACKING == 3200\n diffuseColor.a = opacity;\n #endif\n #include \n #include \n #include \n #include \n #include \n float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n #if DEPTH_PACKING == 3200\n gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n #elif DEPTH_PACKING == 3201\n gl_FragColor = packDepthToRGBA( fragCoordZ );\n #elif DEPTH_PACKING == 3202\n gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\n #elif DEPTH_PACKING == 3203\n gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\n #endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #ifdef USE_DISPLACEMENTMAP\n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n vec4 diffuseColor = vec4( 1.0 );\n #include \n #include \n #include \n #include \n #include \n float dist = length( vWorldPosition - referencePosition );\n dist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n dist = saturate( dist );\n gl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n vec3 direction = normalize( vWorldDirection );\n vec2 sampleUV = equirectUv( direction );\n gl_FragColor = texture2D( tEquirect, sampleUV );\n #include \n #include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vLineDistance = scale * lineDistance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n if ( mod( vLineDistance, totalSize ) > dashSize ) {\n discard;\n }\n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n #include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n #include \n #include \n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n varying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n #ifdef USE_LIGHTMAP\n vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n #else\n reflectedLight.indirectDiffuse += vec3( 1.0 );\n #endif\n #include \n reflectedLight.indirectDiffuse *= diffuseColor.rgb;\n vec3 outgoingLight = reflectedLight.indirectDiffuse;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n #include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 viewDir = normalize( vViewPosition );\n vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n vec3 y = cross( viewDir, x );\n vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n #ifdef USE_MATCAP\n vec4 matcapColor = texture2D( matcap, uv );\n #else\n vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n #endif\n vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n #include \n #include \n #include \n #include \n #include \n #include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n varying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n vViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n varying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n #include \n #include \n #include \n #include \n gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n #ifdef OPAQUE\n gl_FragColor.a = 1.0;\n #endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n #include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n varying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n#ifdef USE_TRANSMISSION\n vWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n #define IOR\n #define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n uniform float ior;\n#endif\n#ifdef USE_SPECULAR\n uniform float specularIntensity;\n uniform vec3 specularColor;\n #ifdef USE_SPECULAR_COLORMAP\n uniform sampler2D specularColorMap;\n #endif\n #ifdef USE_SPECULAR_INTENSITYMAP\n uniform sampler2D specularIntensityMap;\n #endif\n#endif\n#ifdef USE_CLEARCOAT\n uniform float clearcoat;\n uniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n uniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n uniform float iridescence;\n uniform float iridescenceIOR;\n uniform float iridescenceThicknessMinimum;\n uniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n uniform vec3 sheenColor;\n uniform float sheenRoughness;\n #ifdef USE_SHEEN_COLORMAP\n uniform sampler2D sheenColorMap;\n #endif\n #ifdef USE_SHEEN_ROUGHNESSMAP\n uniform sampler2D sheenRoughnessMap;\n #endif\n#endif\n#ifdef USE_ANISOTROPY\n uniform vec2 anisotropyVector;\n #ifdef USE_ANISOTROPYMAP\n uniform sampler2D anisotropyMap;\n #endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n #include \n vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n #ifdef USE_SHEEN\n float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n #endif\n #ifdef USE_CLEARCOAT\n float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n varying vec2 vUv;\n uniform mat3 uvTransform;\n#endif\nvoid main() {\n #ifdef USE_POINTS_UV\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n gl_PointSize = size;\n #ifdef USE_SIZEATTENUATION\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n #endif\n #include \n #include \n #include \n #include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n #include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n #include \n #include \n #include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n vec4 mvPosition = modelViewMatrix[ 3 ];\n vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\n #ifndef USE_SIZEATTENUATION\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) scale *= - mvPosition.z;\n #endif\n vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n vec2 rotatedPosition;\n rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n mvPosition.xy += rotatedPosition;\n gl_Position = projectionMatrix * mvPosition;\n #include \n #include \n #include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n}"},ok={common:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},map:{value:null},mapTransform:{value:new Z},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Z}},envmap:{envMap:{value:null},envMapRotation:{value:new Z},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Z}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Z}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Z},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Z},normalScale:{value:new Y(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Z},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Z}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Z}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Z}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new tz(0xffffff)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0},uvTransform:{value:new Z}},sprite:{diffuse:{value:new tz(0xffffff)},opacity:{value:1},center:{value:new Y(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Z},alphaMap:{value:null},alphaMapTransform:{value:new Z},alphaTest:{value:0}}},oH={basic:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.fog]),vertexShader:oB.meshbasic_vert,fragmentShader:oB.meshbasic_frag},lambert:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,ok.lights,{emissive:{value:new tz(0)}}]),vertexShader:oB.meshlambert_vert,fragmentShader:oB.meshlambert_frag},phong:{uniforms:n_([ok.common,ok.specularmap,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,ok.lights,{emissive:{value:new tz(0)},specular:{value:new tz(1118481)},shininess:{value:30}}]),vertexShader:oB.meshphong_vert,fragmentShader:oB.meshphong_frag},standard:{uniforms:n_([ok.common,ok.envmap,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.roughnessmap,ok.metalnessmap,ok.fog,ok.lights,{emissive:{value:new tz(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:oB.meshphysical_vert,fragmentShader:oB.meshphysical_frag},toon:{uniforms:n_([ok.common,ok.aomap,ok.lightmap,ok.emissivemap,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.gradientmap,ok.fog,ok.lights,{emissive:{value:new tz(0)}}]),vertexShader:oB.meshtoon_vert,fragmentShader:oB.meshtoon_frag},matcap:{uniforms:n_([ok.common,ok.bumpmap,ok.normalmap,ok.displacementmap,ok.fog,{matcap:{value:null}}]),vertexShader:oB.meshmatcap_vert,fragmentShader:oB.meshmatcap_frag},points:{uniforms:n_([ok.points,ok.fog]),vertexShader:oB.points_vert,fragmentShader:oB.points_frag},dashed:{uniforms:n_([ok.common,ok.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:oB.linedashed_vert,fragmentShader:oB.linedashed_frag},depth:{uniforms:n_([ok.common,ok.displacementmap]),vertexShader:oB.depth_vert,fragmentShader:oB.depth_frag},normal:{uniforms:n_([ok.common,ok.bumpmap,ok.normalmap,ok.displacementmap,{opacity:{value:1}}]),vertexShader:oB.meshnormal_vert,fragmentShader:oB.meshnormal_frag},sprite:{uniforms:n_([ok.sprite,ok.fog]),vertexShader:oB.sprite_vert,fragmentShader:oB.sprite_frag},background:{uniforms:{uvTransform:{value:new Z},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:oB.background_vert,fragmentShader:oB.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Z}},vertexShader:oB.backgroundCube_vert,fragmentShader:oB.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:oB.cube_vert,fragmentShader:oB.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:oB.equirect_vert,fragmentShader:oB.equirect_frag},distanceRGBA:{uniforms:n_([ok.common,ok.displacementmap,{referencePosition:{value:new eE},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:oB.distanceRGBA_vert,fragmentShader:oB.distanceRGBA_frag},shadow:{uniforms:n_([ok.lights,ok.fog,{color:{value:new tz(0)},opacity:{value:1}}]),vertexShader:oB.shadow_vert,fragmentShader:oB.shadow_frag}};oH.physical={uniforms:n_([oH.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Z},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Z},clearcoatNormalScale:{value:new Y(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Z},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Z},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Z},sheen:{value:0},sheenColor:{value:new tz(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Z},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Z},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Z},transmissionSamplerSize:{value:new Y},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Z},attenuationDistance:{value:0},attenuationColor:{value:new tz(0)},specularColor:{value:new tz(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Z},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Z},anisotropyVector:{value:new Y},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Z}}]),vertexShader:oB.meshphysical_vert,fragmentShader:oB.meshphysical_frag};let oV={r:0,b:0,g:0},oG=new tn,oW=new e2;function oj(e,t,n,i,r,a,s){let o,l,u=new tz(0),c=+(!0!==a),h=null,d=0,p=null;function f(e){let i=!0===e.isScene?e.background:null;return i&&i.isTexture&&(i=(e.backgroundBlurriness>0?n:t).get(i)),i}function m(t,n){t.getRGB(oV,ny(e)),i.buffers.color.setClear(oV.r,oV.g,oV.b,n,s)}return{getClearColor:function(){return u},setClearColor:function(e,t=1){u.set(e),m(u,c=t)},getClearAlpha:function(){return c},setClearAlpha:function(e){m(u,c=e)},render:function(t){let n=!1,r=f(t);null===r?m(u,c):r&&r.isColor&&(m(r,1),n=!0);let a=e.xr.getEnvironmentBlendMode();"additive"===a?i.buffers.color.setClear(0,0,0,1,s):"alpha-blend"===a&&i.buffers.color.setClear(0,0,0,0,s),(e.autoClear||n)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil))},addToRenderList:function(t,n){let i=f(n);i&&(i.isCubeTexture||306===i.mapping)?(void 0===l&&((l=new nf(new ng(1,1,1),new nb({name:"BackgroundCubeMaterial",uniforms:nv(oH.backgroundCube.uniforms),vertexShader:oH.backgroundCube.vertexShader,fragmentShader:oH.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),oG.copy(n.backgroundRotation),oG.x*=-1,oG.y*=-1,oG.z*=-1,i.isCubeTexture&&!1===i.isRenderTargetTexture&&(oG.y*=-1,oG.z*=-1),l.material.uniforms.envMap.value=i,l.material.uniforms.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,l.material.uniforms.backgroundBlurriness.value=n.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,l.material.uniforms.backgroundRotation.value.setFromMatrix4(oW.makeRotationFromEuler(oG)),l.material.toneMapped=eu.getTransfer(i.colorSpace)!==U,(h!==i||d!==i.version||p!==e.toneMapping)&&(l.material.needsUpdate=!0,h=i,d=i.version,p=e.toneMapping),l.layers.enableAll(),t.unshift(l,l.geometry,l.material,0,0,null)):i&&i.isTexture&&(void 0===o&&((o=new nf(new r9(2,2),new nb({name:"BackgroundMaterial",uniforms:nv(oH.background.uniforms),vertexShader:oH.background.vertexShader,fragmentShader:oH.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(o)),o.material.uniforms.t2D.value=i,o.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,o.material.toneMapped=eu.getTransfer(i.colorSpace)!==U,!0===i.matrixAutoUpdate&&i.updateMatrix(),o.material.uniforms.uvTransform.value.copy(i.matrix),(h!==i||d!==i.version||p!==e.toneMapping)&&(o.material.needsUpdate=!0,h=i,d=i.version,p=e.toneMapping),o.layers.enableAll(),t.unshift(o,o.geometry,o.material,0,0,null))},dispose:function(){void 0!==l&&(l.geometry.dispose(),l.material.dispose()),void 0!==o&&(o.geometry.dispose(),o.material.dispose())}}}function oX(e,t){let n=e.getParameter(e.MAX_VERTEX_ATTRIBS),i={},r=u(null),a=r,s=!1;function o(t){return e.bindVertexArray(t)}function l(t){return e.deleteVertexArray(t)}function u(e){let t=[],i=[],r=[];for(let e=0;e=0){let n=r[t],i=s[t];if(void 0===i&&("instanceMatrix"===t&&e.instanceMatrix&&(i=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(i=e.instanceColor)),void 0===n||n.attribute!==i||i&&n.data!==i.data)return!0;o++}return a.attributesNum!==o||a.index!==i}(n,m,l,g))&&function(e,t,n,i){let r={},s=t.attributes,o=0,l=n.getAttributes();for(let t in l)if(l[t].location>=0){let n=s[t];void 0===n&&("instanceMatrix"===t&&e.instanceMatrix&&(n=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(n=e.instanceColor));let i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[t]=i,o++}a.attributes=r,a.attributesNum=o,a.index=i}(n,m,l,g),null!==g&&t.update(g,e.ELEMENT_ARRAY_BUFFER),(M||s)&&(s=!1,function(n,i,r,a){c();let s=a.attributes,o=r.getAttributes(),l=i.defaultAttributeValues;for(let i in o){let r=o[i];if(r.location>=0){let o=s[i];if(void 0===o&&("instanceMatrix"===i&&n.instanceMatrix&&(o=n.instanceMatrix),"instanceColor"===i&&n.instanceColor&&(o=n.instanceColor)),void 0!==o){let i=o.normalized,s=o.itemSize,l=t.get(o);if(void 0===l)continue;let u=l.buffer,c=l.type,p=l.bytesPerElement,m=c===e.INT||c===e.UNSIGNED_INT||1013===o.gpuType;if(o.isInterleavedBufferAttribute){let t=o.data,l=t.stride,g=o.offset;if(t.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let s=void 0!==n.precision?n.precision:"highp",o=a(s);o!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",o,"instead."),s=o);let l=!0===n.logarithmicDepthBuffer,u=!0===n.reverseDepthBuffer&&t.has("EXT_clip_control"),c=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),h=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){let n=t.get("EXT_texture_filter_anisotropic");r=e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:a,textureFormatReadable:function(t){return 1023===t||i.convert(t)===e.getParameter(e.IMPLEMENTATION_COLOR_READ_FORMAT)},textureTypeReadable:function(n){let r=1016===n&&(t.has("EXT_color_buffer_half_float")||t.has("EXT_color_buffer_float"));return 1009===n||i.convert(n)===e.getParameter(e.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n||!!r},precision:s,logarithmicDepthBuffer:l,reverseDepthBuffer:u,maxTextures:c,maxVertexTextures:h,maxTextureSize:e.getParameter(e.MAX_TEXTURE_SIZE),maxCubemapSize:e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),maxAttributes:e.getParameter(e.MAX_VERTEX_ATTRIBS),maxVertexUniforms:e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),maxVaryings:e.getParameter(e.MAX_VARYING_VECTORS),maxFragmentUniforms:e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),vertexTextures:h>0,maxSamples:e.getParameter(e.MAX_SAMPLES)}}function oZ(e){let t=this,n=null,i=0,r=!1,a=!1,s=new iy,o=new Z,l={value:null,needsUpdate:!1};function u(e,n,i,r){let a=null!==e?e.length:0,u=null;if(0!==a){if(u=l.value,!0!==r||null===u){let t=i+4*a,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===u||u.length0),t.numPlanes=i,t.numIntersection=0)}}function oJ(e){let t=new WeakMap;function n(e,t){return 303===t?e.mapping=301:304===t&&(e.mapping=302),e}function i(e){let n=e.target;n.removeEventListener("dispose",i);let r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){let a=r.mapping;if(303===a||304===a)if(t.has(r))return n(t.get(r).texture,r.mapping);else{let a=r.image;if(!a||!(a.height>0))return null;{let s=new nR(a.height);return s.fromEquirectangularTexture(e,r),t.set(r,s),r.addEventListener("dispose",i),n(s.texture,r.mapping)}}}return r},dispose:function(){t=new WeakMap}}}let oK=[.125,.215,.35,.446,.526,.582],o$=new sn,oQ=new tz,o0=null,o1=0,o2=0,o3=!1,o4=(1+Math.sqrt(5))/2,o5=1/o4,o6=[new eE(-o4,o5,0),new eE(o4,o5,0),new eE(-o5,0,o4),new eE(o5,0,o4),new eE(0,o4,-o5),new eE(0,o4,o5),new eE(-1,1,-1),new eE(1,1,-1),new eE(-1,1,1),new eE(1,1,1)];class o8{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){o0=this._renderer.getRenderTarget(),o1=this._renderer.getActiveCubeFace(),o2=this._renderer.getActiveMipmapLevel(),o3=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(e,n,i,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=lt(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=le(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;ee-4?o=oK[s-e+4-1]:0===s&&(o=0),i.push(o);let l=1/(a-2),u=-l,c=1+l,h=[u,u,c,u,c,c,u,u,c,c,u,c],d=new Float32Array(108),p=new Float32Array(72),f=new Float32Array(36);for(let e=0;e<6;e++){let t=e%3*2/3-1,n=e>2?0:-1,i=[t,n,0,t+2/3,n,0,t+2/3,n+1,0,t,n,0,t+2/3,n+1,0,t,n+1,0];d.set(i,18*e),p.set(h,12*e);let r=[e,e,e,e,e,e];f.set(r,6*e)}let m=new nn;m.setAttribute("position",new tZ(d,3)),m.setAttribute("uv",new tZ(p,2)),m.setAttribute("faceIndex",new tZ(f,1)),t.push(m),r>4&&r--}return{lodPlanes:t,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=(r=i,new nb({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:new Float32Array(20)},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:new eE(0,1,0)}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:0,depthTest:!1,depthWrite:!1}))}return i}_compileMaterial(e){let t=new nf(this._lodPlanes[0],e);this._renderer.compile(t,o$)}_sceneToCubeUV(e,t,n,i){let r=new nE(90,1,t,n),a=[1,-1,1,1,1,1],s=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,u=o.toneMapping;o.getClearColor(oQ),o.toneMapping=0,o.autoClear=!1;let c=new tV({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),h=new nf(new ng,c),d=!1,p=e.background;p?p.isColor&&(c.color.copy(p),e.background=null,d=!0):(c.color.copy(oQ),d=!0);for(let t=0;t<6;t++){let n=t%3;0===n?(r.up.set(0,a[t],0),r.lookAt(s[t],0,0)):1===n?(r.up.set(0,0,a[t]),r.lookAt(0,s[t],0)):(r.up.set(0,a[t],0),r.lookAt(0,0,s[t]));let l=this._cubeSize;o7(i,n*l,t>2?l:0,l,l),o.setRenderTarget(i),d&&o.render(h,r),o.render(e,r)}h.geometry.dispose(),h.material.dispose(),o.toneMapping=u,o.autoClear=l,e.background=p}_textureToCubeUV(e,t){let n=this._renderer,i=301===e.mapping||302===e.mapping;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=lt()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=le());let r=i?this._cubemapMaterial:this._equirectMaterial,a=new nf(this._lodPlanes[0],r);r.uniforms.envMap.value=e;let s=this._cubeSize;o7(t,0,0,3*s,2*s),n.setRenderTarget(t),n.render(a,o$)}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;let i=this._lodPlanes.length;for(let t=1;t20&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);let m=[],g=0;for(let e=0;e<20;++e){let t=e/p,n=Math.exp(-t*t/2);m.push(n),0===e?g+=n:ev-4?i-v+4:0),y,3*_,2*_),o.setRenderTarget(t),o.render(u,o$)}}function o9(e,t,n){let i=new ex(e,t,n);return i.texture.mapping=306,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function o7(e,t,n,i,r){e.viewport.set(t,n,i,r),e.scissor.set(t,n,i,r)}function le(){return new nb({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function lt(){return new nb({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ln(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function ln(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function li(e){let t=new WeakMap,n=null;function i(e){let n=e.target;n.removeEventListener("dispose",i);let r=t.get(n);void 0!==r&&(t.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){let a=r.mapping,s=303===a||304===a,o=301===a||302===a;if(s||o){let a=t.get(r),l=void 0!==a?a.texture.pmremVersion:0;if(r.isRenderTargetTexture&&r.pmremVersion!==l)return null===n&&(n=new o8(e)),(a=s?n.fromEquirectangular(r,a):n.fromCubemap(r,a)).texture.pmremVersion=r.pmremVersion,t.set(r,a),a.texture;{if(void 0!==a)return a.texture;let l=r.image;return s&&l&&l.height>0||o&&l&&function(e){let t=0;for(let n=0;n<6;n++)void 0!==e[n]&&t++;return 6===t}(l)?(null===n&&(n=new o8(e)),(a=s?n.fromEquirectangular(r):n.fromCubemap(r)).texture.pmremVersion=r.pmremVersion,t.set(r,a),r.addEventListener("dispose",i),a.texture):null}}}return r},dispose:function(){t=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function lr(e){let t={};function n(n){let i;if(void 0!==t[n])return t[n];switch(n){case"WEBGL_depth_texture":i=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=e.getExtension(n)}return t[n]=i,i}return{has:function(e){return null!==n(e)},init:function(){n("EXT_color_buffer_float"),n("WEBGL_clip_cull_distance"),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture"),n("WEBGL_render_shared_exponent")},get:function(e){let t=n(e);return null===t&&ei("THREE.WebGLRenderer: "+e+" extension not supported."),t}}}function la(e,t,n,i){let r={},a=new WeakMap;function s(e){let o=e.target;for(let e in null!==o.index&&t.remove(o.index),o.attributes)t.remove(o.attributes[e]);o.removeEventListener("dispose",s),delete r[o.id];let l=a.get(o);l&&(t.remove(l),a.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(e){let n=[],i=e.index,r=e.attributes.position,s=0;if(null!==i){let e=i.array;s=i.version;for(let t=0,i=e.length;tt.maxTextureSize&&(f=Math.ceil(p/t.maxTextureSize),p=t.maxTextureSize);let m=new Float32Array(p*f*4*c),g=new eb(m,p,f,c);g.type=1015,g.needsUpdate=!0;let v=4*d;for(let t=0;t0)return e;let r=t*n,a=lm[r];if(void 0===a&&(a=new Float32Array(r),lm[r]=a),0!==t){i.toArray(a,0);for(let i=1,r=0;i!==t;++i)r+=n,e[i].toArray(a,r)}return a}function lb(e,t){if(e.length!==t.length)return!1;for(let n=0,i=e.length;n":" "} ${r}: ${n[e]}`)}return i.join("\n")}(e.getShaderSource(t),i)}}let ul=new eE;function uu(e){return""!==e}function uc(e,t){let n=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function uh(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}let ud=/^[ \t]*#include +<([\w\d./]+)>/gm;function up(e){return e.replace(ud,um)}let uf=new Map;function um(e,t){let n=oB[t];if(void 0===n){let e=uf.get(t);if(void 0!==e)n=oB[e],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,e);else throw Error("Can not resolve #include <"+t+">")}return up(n)}let ug=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function uv(e){return e.replace(ug,u_)}function u_(e,t,n,i){let r="";for(let e=parseInt(t);e0&&(r+="\n"),(a=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x].filter(uu).join("\n")).length>0&&(a+="\n");else{let e,t,i,s;r=[uy(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+g:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+f:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif","\n"].filter(uu).join("\n"),a=[uy(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,x,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.envMap?"#define "+g:"",n.envMap?"#define "+v:"",_?"#define CUBEUV_TEXEL_WIDTH "+_.texelWidth:"",_?"#define CUBEUV_TEXEL_HEIGHT "+_.texelHeight:"",_?"#define CUBEUV_MAX_MIP "+_.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+f:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?oB.tonemapping_pars_fragment:"",0!==n.toneMapping?function(e,t){let n;switch(t){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="Cineon";break;case 4:n="ACESFilmic";break;case 6:n="AgX";break;case 7:n="Neutral";break;case 5:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),n="Linear"}return"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",oB.colorspace_pars_fragment,(e=function(e){eu._getMatrix(us,eu.workingColorSpace,e);let t=`mat3( ${us.elements.map(e=>e.toFixed(4))} )`;switch(eu.getTransfer(e)){case N:return[t,"LinearTransferOETF"];case U:return[t,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",e),[t,"LinearTransferOETF"]}}(n.outputColorSpace),`vec4 linearToOutputTexel( vec4 value ) { + return ${e[1]}( vec4( value.rgb * ${e[0]}, value.a ) ); +}`),(eu.getLuminanceCoefficients(ul),t=ul.x.toFixed(4),i=ul.y.toFixed(4),s=ul.z.toFixed(4),`float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( ${t}, ${i}, ${s} ); + return dot( weights, rgb ); +}`),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(uu).join("\n")}d=uh(d=uc(d=up(d),n),n),p=uh(p=uc(p=up(p),n),n),d=uv(d),p=uv(p),!0!==n.isRawShaderMaterial&&(S="#version 300 es\n",r=[y,"#define attribute in\n#define varying out\n#define texture2D texture"].join("\n")+"\n"+r,a=["#define varying in",n.glslVersion===D?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===D?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+a);let M=S+r+d,T=S+a+p,w=ur(c,c.VERTEX_SHADER,M),E=ur(c,c.FRAGMENT_SHADER,T);function A(t){if(e.debug.checkShaderErrors){let n=c.getProgramInfoLog(b).trim(),i=c.getShaderInfoLog(w).trim(),s=c.getShaderInfoLog(E).trim(),o=!0,l=!0;if(!1===c.getProgramParameter(b,c.LINK_STATUS))if(o=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(c,b,w,E);else{let e=uo(c,w,"vertex"),i=uo(c,E,"fragment");console.error("THREE.WebGLProgram: Shader Error "+c.getError()+" - VALIDATE_STATUS "+c.getProgramParameter(b,c.VALIDATE_STATUS)+"\n\nMaterial Name: "+t.name+"\nMaterial Type: "+t.type+"\n\nProgram Info Log: "+n+"\n"+e+"\n"+i)}else""!==n?console.warn("THREE.WebGLProgram: Program Info Log:",n):(""===i||""===s)&&(l=!1);l&&(t.diagnostics={runnable:o,programLog:n,vertexShader:{log:i,prefix:r},fragmentShader:{log:s,prefix:a}})}c.deleteShader(w),c.deleteShader(E),s=new ui(c,b),o=function(e,t){let n={},i=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let r=0;r0,Z=a.clearcoat>0,J=a.dispersion>0,K=a.iridescence>0,$=a.sheen>0,Q=a.transmission>0,ee=Y&&!!a.anisotropyMap,et=Z&&!!a.clearcoatMap,en=Z&&!!a.clearcoatNormalMap,ei=Z&&!!a.clearcoatRoughnessMap,er=K&&!!a.iridescenceMap,ea=K&&!!a.iridescenceThicknessMap,es=$&&!!a.sheenColorMap,eo=$&&!!a.sheenRoughnessMap,el=!!a.specularMap,ec=!!a.specularColorMap,eh=!!a.specularIntensityMap,ed=Q&&!!a.transmissionMap,ep=Q&&!!a.thicknessMap,ef=!!a.gradientMap,em=!!a.alphaMap,eg=a.alphaTest>0,ev=!!a.alphaHash,e_=!!a.extensions,ey=0;a.toneMapped&&(null===I||!0===I.isXRRenderTarget)&&(ey=e.toneMapping);let ex={shaderID:A,shaderType:a.type,shaderName:a.name,vertexShader:_,fragmentShader:y,defines:a.defines,customVertexShaderID:x,customFragmentShaderID:b,isRawShaderMaterial:!0===a.isRawShaderMaterial,glslVersion:a.glslVersion,precision:p,batching:O,batchingColor:O&&null!==v._colorsTexture,instancing:D,instancingColor:D&&null!==v.instanceColor,instancingMorph:D&&null!==v.morphTexture,supportsVertexTextures:d,outputColorSpace:null===I?e.outputColorSpace:!0===I.isXRRenderTarget?I.texture.colorSpace:L,alphaToCoverage:!!a.alphaToCoverage,map:F,matcap:z,envMap:B,envMapMode:B&&w.mapping,envMapCubeUVHeight:E,aoMap:k,lightMap:H,bumpMap:V,normalMap:G,displacementMap:d&&W,emissiveMap:j,normalMapObjectSpace:G&&1===a.normalMapType,normalMapTangentSpace:G&&0===a.normalMapType,metalnessMap:X,roughnessMap:q,anisotropy:Y,anisotropyMap:ee,clearcoat:Z,clearcoatMap:et,clearcoatNormalMap:en,clearcoatRoughnessMap:ei,dispersion:J,iridescence:K,iridescenceMap:er,iridescenceThicknessMap:ea,sheen:$,sheenColorMap:es,sheenRoughnessMap:eo,specularMap:el,specularColorMap:ec,specularIntensityMap:eh,transmission:Q,transmissionMap:ed,thicknessMap:ep,gradientMap:ef,opaque:!1===a.transparent&&1===a.blending&&!1===a.alphaToCoverage,alphaMap:em,alphaTest:eg,alphaHash:ev,combine:a.combine,mapUv:F&&m(a.map.channel),aoMapUv:k&&m(a.aoMap.channel),lightMapUv:H&&m(a.lightMap.channel),bumpMapUv:V&&m(a.bumpMap.channel),normalMapUv:G&&m(a.normalMap.channel),displacementMapUv:W&&m(a.displacementMap.channel),emissiveMapUv:j&&m(a.emissiveMap.channel),metalnessMapUv:X&&m(a.metalnessMap.channel),roughnessMapUv:q&&m(a.roughnessMap.channel),anisotropyMapUv:ee&&m(a.anisotropyMap.channel),clearcoatMapUv:et&&m(a.clearcoatMap.channel),clearcoatNormalMapUv:en&&m(a.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ei&&m(a.clearcoatRoughnessMap.channel),iridescenceMapUv:er&&m(a.iridescenceMap.channel),iridescenceThicknessMapUv:ea&&m(a.iridescenceThicknessMap.channel),sheenColorMapUv:es&&m(a.sheenColorMap.channel),sheenRoughnessMapUv:eo&&m(a.sheenRoughnessMap.channel),specularMapUv:el&&m(a.specularMap.channel),specularColorMapUv:ec&&m(a.specularColorMap.channel),specularIntensityMapUv:eh&&m(a.specularIntensityMap.channel),transmissionMapUv:ed&&m(a.transmissionMap.channel),thicknessMapUv:ep&&m(a.thicknessMap.channel),alphaMapUv:em&&m(a.alphaMap.channel),vertexTangents:!!M.attributes.tangent&&(G||Y),vertexColors:a.vertexColors,vertexAlphas:!0===a.vertexColors&&!!M.attributes.color&&4===M.attributes.color.itemSize,pointsUvs:!0===v.isPoints&&!!M.attributes.uv&&(F||em),fog:!!S,useFog:!0===a.fog,fogExp2:!!S&&S.isFogExp2,flatShading:!0===a.flatShading,sizeAttenuation:!0===a.sizeAttenuation,logarithmicDepthBuffer:h,reverseDepthBuffer:N,skinning:!0===v.isSkinnedMesh,morphTargets:void 0!==M.morphAttributes.position,morphNormals:void 0!==M.morphAttributes.normal,morphColors:void 0!==M.morphAttributes.color,morphTargetsCount:R,morphTextureStride:P,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:a.dithering,shadowMapEnabled:e.shadowMap.enabled&&c.length>0,shadowMapType:e.shadowMap.type,toneMapping:ey,decodeVideoTexture:F&&!0===a.map.isVideoTexture&&eu.getTransfer(a.map.colorSpace)===U,decodeVideoTextureEmissive:j&&!0===a.emissiveMap.isVideoTexture&&eu.getTransfer(a.emissiveMap.colorSpace)===U,premultipliedAlpha:a.premultipliedAlpha,doubleSided:2===a.side,flipSided:1===a.side,useDepthPacking:a.depthPacking>=0,depthPacking:a.depthPacking||0,index0AttributeName:a.index0AttributeName,extensionClipCullDistance:e_&&!0===a.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(e_&&!0===a.extensions.multiDraw||O)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:a.customProgramCacheKey()};return ex.vertexUv1s=u.has(1),ex.vertexUv2s=u.has(2),ex.vertexUv3s=u.has(3),u.clear(),ex},getProgramCacheKey:function(t){var n,i,r,a;let s=[];if(t.shaderID?s.push(t.shaderID):(s.push(t.customVertexShaderID),s.push(t.customFragmentShaderID)),void 0!==t.defines)for(let e in t.defines)s.push(e),s.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(n=s,i=t,n.push(i.precision),n.push(i.outputColorSpace),n.push(i.envMapMode),n.push(i.envMapCubeUVHeight),n.push(i.mapUv),n.push(i.alphaMapUv),n.push(i.lightMapUv),n.push(i.aoMapUv),n.push(i.bumpMapUv),n.push(i.normalMapUv),n.push(i.displacementMapUv),n.push(i.emissiveMapUv),n.push(i.metalnessMapUv),n.push(i.roughnessMapUv),n.push(i.anisotropyMapUv),n.push(i.clearcoatMapUv),n.push(i.clearcoatNormalMapUv),n.push(i.clearcoatRoughnessMapUv),n.push(i.iridescenceMapUv),n.push(i.iridescenceThicknessMapUv),n.push(i.sheenColorMapUv),n.push(i.sheenRoughnessMapUv),n.push(i.specularMapUv),n.push(i.specularColorMapUv),n.push(i.specularIntensityMapUv),n.push(i.transmissionMapUv),n.push(i.thicknessMapUv),n.push(i.combine),n.push(i.fogExp2),n.push(i.sizeAttenuation),n.push(i.morphTargetsCount),n.push(i.morphAttributeCount),n.push(i.numDirLights),n.push(i.numPointLights),n.push(i.numSpotLights),n.push(i.numSpotLightMaps),n.push(i.numHemiLights),n.push(i.numRectAreaLights),n.push(i.numDirLightShadows),n.push(i.numPointLightShadows),n.push(i.numSpotLightShadows),n.push(i.numSpotLightShadowsWithMaps),n.push(i.numLightProbes),n.push(i.shadowMapType),n.push(i.toneMapping),n.push(i.numClippingPlanes),n.push(i.numClipIntersection),n.push(i.depthPacking),r=s,a=t,o.disableAll(),a.supportsVertexTextures&&o.enable(0),a.instancing&&o.enable(1),a.instancingColor&&o.enable(2),a.instancingMorph&&o.enable(3),a.matcap&&o.enable(4),a.envMap&&o.enable(5),a.normalMapObjectSpace&&o.enable(6),a.normalMapTangentSpace&&o.enable(7),a.clearcoat&&o.enable(8),a.iridescence&&o.enable(9),a.alphaTest&&o.enable(10),a.vertexColors&&o.enable(11),a.vertexAlphas&&o.enable(12),a.vertexUv1s&&o.enable(13),a.vertexUv2s&&o.enable(14),a.vertexUv3s&&o.enable(15),a.vertexTangents&&o.enable(16),a.anisotropy&&o.enable(17),a.alphaHash&&o.enable(18),a.batching&&o.enable(19),a.dispersion&&o.enable(20),a.batchingColor&&o.enable(21),r.push(o.mask),o.disableAll(),a.fog&&o.enable(0),a.useFog&&o.enable(1),a.flatShading&&o.enable(2),a.logarithmicDepthBuffer&&o.enable(3),a.reverseDepthBuffer&&o.enable(4),a.skinning&&o.enable(5),a.morphTargets&&o.enable(6),a.morphNormals&&o.enable(7),a.morphColors&&o.enable(8),a.premultipliedAlpha&&o.enable(9),a.shadowMapEnabled&&o.enable(10),a.doubleSided&&o.enable(11),a.flipSided&&o.enable(12),a.useDepthPacking&&o.enable(13),a.dithering&&o.enable(14),a.transmission&&o.enable(15),a.sheen&&o.enable(16),a.opaque&&o.enable(17),a.pointsUvs&&o.enable(18),a.decodeVideoTexture&&o.enable(19),a.decodeVideoTextureEmissive&&o.enable(20),a.alphaToCoverage&&o.enable(21),r.push(o.mask),s.push(e.outputColorSpace)),s.push(t.customProgramCacheKey),s.join()},getUniforms:function(e){let t,n=f[e.type];if(n){let e=oH[n];t=nx.clone(e.uniforms)}else t=e.uniforms;return t},acquireProgram:function(t,n){let i;for(let e=0,t=c.length;e0?i.push(c):!0===s.transparent?r.push(c):n.push(c)},unshift:function(e,t,s,o,l,u){let c=a(e,t,s,o,l,u);s.transmission>0?i.unshift(c):!0===s.transparent?r.unshift(c):n.unshift(c)},finish:function(){for(let n=t,i=e.length;n1&&n.sort(e||uE),i.length>1&&i.sort(t||uA),r.length>1&&r.sort(t||uA)}}}function uR(){let e=new WeakMap;return{get:function(t,n){let i,r=e.get(t);return void 0===r?(i=new uC,e.set(t,[i])):n>=r.length?(i=new uC,r.push(i)):i=r[n],i},dispose:function(){e=new WeakMap}}}function uP(){let e={};return{get:function(t){let n;if(void 0!==e[t.id])return e[t.id];switch(t.type){case"DirectionalLight":n={direction:new eE,color:new tz};break;case"SpotLight":n={position:new eE,direction:new eE,color:new tz,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new eE,color:new tz,distance:0,decay:0};break;case"HemisphereLight":n={direction:new eE,skyColor:new tz,groundColor:new tz};break;case"RectAreaLight":n={color:new tz,position:new eE,halfWidth:new eE,halfHeight:new eE}}return e[t.id]=n,n}}}let uI=0;function uL(e,t){return 2*!!t.castShadow-2*!!e.castShadow+ +!!t.map-!!e.map}function uN(e){let t,n=new uP,i=(t={},{get:function(e){let n;if(void 0!==t[e.id])return t[e.id];switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Y,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let e=0;e<9;e++)r.probe.push(new eE);let a=new eE,s=new e2,o=new e2;return{setup:function(t){let a=0,s=0,o=0;for(let e=0;e<9;e++)r.probe[e].set(0,0,0);let l=0,u=0,c=0,h=0,d=0,p=0,f=0,m=0,g=0,v=0,_=0;t.sort(uL);for(let e=0,y=t.length;e0&&(!0===e.has("OES_texture_float_linear")?(r.rectAreaLTC1=ok.LTC_FLOAT_1,r.rectAreaLTC2=ok.LTC_FLOAT_2):(r.rectAreaLTC1=ok.LTC_HALF_1,r.rectAreaLTC2=ok.LTC_HALF_2)),r.ambient[0]=a,r.ambient[1]=s,r.ambient[2]=o;let y=r.hash;(y.directionalLength!==l||y.pointLength!==u||y.spotLength!==c||y.rectAreaLength!==h||y.hemiLength!==d||y.numDirectionalShadows!==p||y.numPointShadows!==f||y.numSpotShadows!==m||y.numSpotMaps!==g||y.numLightProbes!==_)&&(r.directional.length=l,r.spot.length=c,r.rectArea.length=h,r.point.length=u,r.hemi.length=d,r.directionalShadow.length=p,r.directionalShadowMap.length=p,r.pointShadow.length=f,r.pointShadowMap.length=f,r.spotShadow.length=m,r.spotShadowMap.length=m,r.directionalShadowMatrix.length=p,r.pointShadowMatrix.length=f,r.spotLightMatrix.length=m+g-v,r.spotLightMap.length=g,r.numSpotLightShadowsWithMaps=v,r.numLightProbes=_,y.directionalLength=l,y.pointLength=u,y.spotLength=c,y.rectAreaLength=h,y.hemiLength=d,y.numDirectionalShadows=p,y.numPointShadows=f,y.numSpotShadows=m,y.numSpotMaps=g,y.numLightProbes=_,r.version=uI++)},setupView:function(e,t){let n=0,i=0,l=0,u=0,c=0,h=t.matrixWorldInverse;for(let t=0,d=e.length;t=a.length?(r=new uU(e),a.push(r)):r=a[i],r},dispose:function(){t=new WeakMap}}}function uO(e,t,n){let i=new iS,r=new Y,a=new Y,s=new e_,o=new av({depthPacking:3201}),l=new a_,u={},c=n.maxTextureSize,h={0:1,1:0,2:2},d=new nb({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Y},radius:{value:4}},vertexShader:"void main() {\n gl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n const float samples = float( VSM_SAMPLES );\n float mean = 0.0;\n float squared_mean = 0.0;\n float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n float uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n for ( float i = 0.0; i < samples; i ++ ) {\n float uvOffset = uvStart + i * uvStride;\n #ifdef HORIZONTAL_PASS\n vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n mean += distribution.x;\n squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n #else\n float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n mean += depth;\n squared_mean += depth * depth;\n #endif\n }\n mean = mean / samples;\n squared_mean = squared_mean / samples;\n float std_dev = sqrt( squared_mean - mean * mean );\n gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),p=d.clone();p.defines.HORIZONTAL_PASS=1;let f=new nn;f.setAttribute("position",new tZ(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new nf(f,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1;let v=this.type;function _(t,n,i,r){let a=null,s=!0===i.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==s)a=s;else if(a=!0===i.isPointLight?l:o,e.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){let e=a.uuid,t=n.uuid,i=u[e];void 0===i&&(i={},u[e]=i);let r=i[t];void 0===r&&(r=a.clone(),i[t]=r,n.addEventListener("dispose",y)),a=r}return a.visible=n.visible,a.wireframe=n.wireframe,3===r?a.side=null!==n.shadowSide?n.shadowSide:n.side:a.side=null!==n.shadowSide?n.shadowSide:h[n.side],a.alphaMap=n.alphaMap,a.alphaTest=n.alphaTest,a.map=n.map,a.clipShadows=n.clipShadows,a.clippingPlanes=n.clippingPlanes,a.clipIntersection=n.clipIntersection,a.displacementMap=n.displacementMap,a.displacementScale=n.displacementScale,a.displacementBias=n.displacementBias,a.wireframeLinewidth=n.wireframeLinewidth,a.linewidth=n.linewidth,!0===i.isPointLight&&!0===a.isMeshDistanceMaterial&&(e.properties.get(a).light=i),a}function y(e){for(let t in e.target.removeEventListener("dispose",y),u){let n=u[t],i=e.target.uuid;i in n&&(n[i].dispose(),delete n[i])}}this.render=function(n,o,l){if(!1===g.enabled||!1===g.autoUpdate&&!1===g.needsUpdate||0===n.length)return;let u=e.getRenderTarget(),h=e.getActiveCubeFace(),f=e.getActiveMipmapLevel(),y=e.state;y.setBlending(0),y.buffers.color.setClear(1,1,1,1),y.buffers.depth.setTest(!0),y.setScissorTest(!1);let x=3!==v&&3===this.type,b=3===v&&3!==this.type;for(let u=0,h=n.length;uc||r.y>c)&&(r.x>c&&(a.x=Math.floor(c/g.x),r.x=a.x*g.x,f.mapSize.x=a.x),r.y>c&&(a.y=Math.floor(c/g.y),r.y=a.y*g.y,f.mapSize.y=a.y)),null===f.map||!0===x||!0===b){let e=3!==this.type?{minFilter:1003,magFilter:1003}:{};null!==f.map&&f.map.dispose(),f.map=new ex(r.x,r.y,e),f.map.texture.name=h.name+".shadowMap",f.camera.updateProjectionMatrix()}e.setRenderTarget(f.map),e.clear();let v=f.getViewportCount();for(let n=0;n=1:-1!==P.indexOf("OpenGL ES")&&(R=parseFloat(/^OpenGL ES (\d)/.exec(P)[1])>=2);let I=null,L={},N=e.getParameter(e.SCISSOR_BOX),U=e.getParameter(e.VIEWPORT),D=new e_().fromArray(N),O=new e_().fromArray(U);function F(t,n,i,r){let a=new Uint8Array(4),s=e.createTexture();e.bindTexture(t,s),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let s=0;stypeof navigator&&/OculusBrowser/g.test(navigator.userAgent),c=new Y,h=new WeakMap,d=new WeakMap,p=!1;try{p="u">typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(e){}function f(e,t){return p?new OffscreenCanvas(e,t):ee("canvas")}function m(e,t,n){let i=1,r=G(e);if((r.width>n||r.height>n)&&(i=n/Math.max(r.width,r.height)),i<1)if("u">typeof HTMLImageElement&&e instanceof HTMLImageElement||"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof ImageBitmap&&e instanceof ImageBitmap||"u">typeof VideoFrame&&e instanceof VideoFrame){let n=Math.floor(i*r.width),a=Math.floor(i*r.height);void 0===o&&(o=f(n,a));let s=t?f(n,a):o;return s.width=n,s.height=a,s.getContext("2d").drawImage(e,0,0,n,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+r.width+"x"+r.height+") to ("+n+"x"+a+")."),s}else"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+r.width+"x"+r.height+").");return e}function g(e){return e.generateMipmaps}function v(t){e.generateMipmap(t)}function _(n,i,r,a,s=!1){if(null!==n){if(void 0!==e[n])return e[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let o=i;if(i===e.RED&&(r===e.FLOAT&&(o=e.R32F),r===e.HALF_FLOAT&&(o=e.R16F),r===e.UNSIGNED_BYTE&&(o=e.R8)),i===e.RED_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.R8UI),r===e.UNSIGNED_SHORT&&(o=e.R16UI),r===e.UNSIGNED_INT&&(o=e.R32UI),r===e.BYTE&&(o=e.R8I),r===e.SHORT&&(o=e.R16I),r===e.INT&&(o=e.R32I)),i===e.RG&&(r===e.FLOAT&&(o=e.RG32F),r===e.HALF_FLOAT&&(o=e.RG16F),r===e.UNSIGNED_BYTE&&(o=e.RG8)),i===e.RG_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RG8UI),r===e.UNSIGNED_SHORT&&(o=e.RG16UI),r===e.UNSIGNED_INT&&(o=e.RG32UI),r===e.BYTE&&(o=e.RG8I),r===e.SHORT&&(o=e.RG16I),r===e.INT&&(o=e.RG32I)),i===e.RGB_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RGB8UI),r===e.UNSIGNED_SHORT&&(o=e.RGB16UI),r===e.UNSIGNED_INT&&(o=e.RGB32UI),r===e.BYTE&&(o=e.RGB8I),r===e.SHORT&&(o=e.RGB16I),r===e.INT&&(o=e.RGB32I)),i===e.RGBA_INTEGER&&(r===e.UNSIGNED_BYTE&&(o=e.RGBA8UI),r===e.UNSIGNED_SHORT&&(o=e.RGBA16UI),r===e.UNSIGNED_INT&&(o=e.RGBA32UI),r===e.BYTE&&(o=e.RGBA8I),r===e.SHORT&&(o=e.RGBA16I),r===e.INT&&(o=e.RGBA32I)),i===e.RGB&&r===e.UNSIGNED_INT_5_9_9_9_REV&&(o=e.RGB9_E5),i===e.RGBA){let t=s?N:eu.getTransfer(a);r===e.FLOAT&&(o=e.RGBA32F),r===e.HALF_FLOAT&&(o=e.RGBA16F),r===e.UNSIGNED_BYTE&&(o=t===U?e.SRGB8_ALPHA8:e.RGBA8),r===e.UNSIGNED_SHORT_4_4_4_4&&(o=e.RGBA4),r===e.UNSIGNED_SHORT_5_5_5_1&&(o=e.RGB5_A1)}return(o===e.R16F||o===e.R32F||o===e.RG16F||o===e.RG32F||o===e.RGBA16F||o===e.RGBA32F)&&t.get("EXT_color_buffer_float"),o}function y(t,n){let i;return t?null===n||1014===n||1020===n?i=e.DEPTH24_STENCIL8:1015===n?i=e.DEPTH32F_STENCIL8:1012===n&&(i=e.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===n||1014===n||1020===n?i=e.DEPTH_COMPONENT24:1015===n?i=e.DEPTH_COMPONENT32F:1012===n&&(i=e.DEPTH_COMPONENT16),i}function x(e,t){return!0===g(e)||e.isFramebufferTexture&&1003!==e.minFilter&&1006!==e.minFilter?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function b(e){let t=e.target;t.removeEventListener("dispose",b),function(e){let t=i.get(e);if(void 0===t.__webglInit)return;let n=e.source,r=d.get(n);if(r){let i=r[t.__cacheKey];i.usedTimes--,0===i.usedTimes&&M(e),0===Object.keys(r).length&&d.delete(n)}i.remove(e)}(t),t.isVideoTexture&&h.delete(t)}function S(t){let n=t.target;n.removeEventListener("dispose",S),function(t){let n=i.get(t);if(t.depthTexture&&(t.depthTexture.dispose(),i.remove(t.depthTexture)),t.isWebGLCubeRenderTarget)for(let t=0;t<6;t++){if(Array.isArray(n.__webglFramebuffer[t]))for(let i=0;i0&&l.__version!==t.version){let e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void I(l,t,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(e.TEXTURE_2D,l.__webglTexture,e.TEXTURE0+r)}let E={1e3:e.REPEAT,1001:e.CLAMP_TO_EDGE,1002:e.MIRRORED_REPEAT},A={1003:e.NEAREST,1004:e.NEAREST_MIPMAP_NEAREST,1005:e.NEAREST_MIPMAP_LINEAR,1006:e.LINEAR,1007:e.LINEAR_MIPMAP_NEAREST,1008:e.LINEAR_MIPMAP_LINEAR},C={512:e.NEVER,519:e.ALWAYS,513:e.LESS,515:e.LEQUAL,514:e.EQUAL,518:e.GEQUAL,516:e.GREATER,517:e.NOTEQUAL};function R(n,a){if((1015===a.type&&!1===t.has("OES_texture_float_linear")&&(1006===a.magFilter||1007===a.magFilter||1005===a.magFilter||1008===a.magFilter||1006===a.minFilter||1007===a.minFilter||1005===a.minFilter||1008===a.minFilter)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),e.texParameteri(n,e.TEXTURE_WRAP_S,E[a.wrapS]),e.texParameteri(n,e.TEXTURE_WRAP_T,E[a.wrapT]),(n===e.TEXTURE_3D||n===e.TEXTURE_2D_ARRAY)&&e.texParameteri(n,e.TEXTURE_WRAP_R,E[a.wrapR]),e.texParameteri(n,e.TEXTURE_MAG_FILTER,A[a.magFilter]),e.texParameteri(n,e.TEXTURE_MIN_FILTER,A[a.minFilter]),a.compareFunction&&(e.texParameteri(n,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE),e.texParameteri(n,e.TEXTURE_COMPARE_FUNC,C[a.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic"))&&1003!==a.magFilter&&(1005===a.minFilter||1008===a.minFilter)&&(1015!==a.type||!1!==t.has("OES_texture_float_linear"))&&(a.anisotropy>1||i.get(a).__currentAnisotropy)){let s=t.get("EXT_texture_filter_anisotropic");e.texParameterf(n,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),i.get(a).__currentAnisotropy=a.anisotropy}}function P(t,n){let i,r=!1;void 0===t.__webglInit&&(t.__webglInit=!0,n.addEventListener("dispose",b));let a=n.source,o=d.get(a);void 0===o&&(o={},d.set(a,o));let l=((i=[]).push(n.wrapS),i.push(n.wrapT),i.push(n.wrapR||0),i.push(n.magFilter),i.push(n.minFilter),i.push(n.anisotropy),i.push(n.internalFormat),i.push(n.format),i.push(n.type),i.push(n.generateMipmaps),i.push(n.premultiplyAlpha),i.push(n.flipY),i.push(n.unpackAlignment),i.push(n.colorSpace),i.join());if(l!==t.__cacheKey){void 0===o[l]&&(o[l]={texture:e.createTexture(),usedTimes:0},s.memory.textures++,r=!0),o[l].usedTimes++;let i=o[t.__cacheKey];void 0!==i&&(o[t.__cacheKey].usedTimes--,0===i.usedTimes&&M(n)),t.__cacheKey=l,t.__webglTexture=o[l].texture}return r}function I(t,s,o){let l=e.TEXTURE_2D;(s.isDataArrayTexture||s.isCompressedArrayTexture)&&(l=e.TEXTURE_2D_ARRAY),s.isData3DTexture&&(l=e.TEXTURE_3D);let u=P(t,s),c=s.source;n.bindTexture(l,t.__webglTexture,e.TEXTURE0+o);let h=i.get(c);if(c.version!==h.__version||!0===u){let t;n.activeTexture(e.TEXTURE0+o);let i=eu.getPrimaries(eu.workingColorSpace),d=""===s.colorSpace?null:eu.getPrimaries(s.colorSpace),p=""===s.colorSpace||i===d?e.NONE:e.BROWSER_DEFAULT_WEBGL;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,s.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,s.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,p);let f=m(s.image,!1,r.maxTextureSize);f=V(s,f);let b=a.convert(s.format,s.colorSpace),S=a.convert(s.type),M=_(s.internalFormat,b,S,s.colorSpace,s.isVideoTexture);R(l,s);let T=s.mipmaps,w=!0!==s.isVideoTexture,E=void 0===h.__version||!0===u,A=c.dataReady,C=x(s,f);if(s.isDepthTexture)M=y(1027===s.format,s.type),E&&(w?n.texStorage2D(e.TEXTURE_2D,1,M,f.width,f.height):n.texImage2D(e.TEXTURE_2D,0,M,f.width,f.height,0,b,S,null));else if(s.isDataTexture)if(T.length>0){w&&E&&n.texStorage2D(e.TEXTURE_2D,C,M,T[0].width,T[0].height);for(let i=0,r=T.length;i0){let r=oU(t.width,t.height,s.format,s.type);for(let a of s.layerUpdates){let s=t.data.subarray(a*r/t.data.BYTES_PER_ELEMENT,(a+1)*r/t.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,a,t.width,t.height,1,b,s)}s.clearLayerUpdates()}else n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,0,t.width,t.height,f.depth,b,t.data)}else n.compressedTexImage3D(e.TEXTURE_2D_ARRAY,i,M,t.width,t.height,f.depth,0,t.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else w?A&&n.texSubImage3D(e.TEXTURE_2D_ARRAY,i,0,0,0,t.width,t.height,f.depth,b,S,t.data):n.texImage3D(e.TEXTURE_2D_ARRAY,i,M,t.width,t.height,f.depth,0,b,S,t.data)}else{w&&E&&n.texStorage2D(e.TEXTURE_2D,C,M,T[0].width,T[0].height);for(let i=0,r=T.length;i0){let t=oU(f.width,f.height,s.format,s.type);for(let i of s.layerUpdates){let r=f.data.subarray(i*t/f.data.BYTES_PER_ELEMENT,(i+1)*t/f.data.BYTES_PER_ELEMENT);n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,i,f.width,f.height,1,b,S,r)}s.clearLayerUpdates()}else n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,0,f.width,f.height,f.depth,b,S,f.data)}else n.texImage3D(e.TEXTURE_2D_ARRAY,0,M,f.width,f.height,f.depth,0,b,S,f.data);else if(s.isData3DTexture)w?(E&&n.texStorage3D(e.TEXTURE_3D,C,M,f.width,f.height,f.depth),A&&n.texSubImage3D(e.TEXTURE_3D,0,0,0,0,f.width,f.height,f.depth,b,S,f.data)):n.texImage3D(e.TEXTURE_3D,0,M,f.width,f.height,f.depth,0,b,S,f.data);else if(s.isFramebufferTexture){if(E)if(w)n.texStorage2D(e.TEXTURE_2D,C,M,f.width,f.height);else{let t=f.width,i=f.height;for(let r=0;r>=1,i>>=1}}else if(T.length>0){if(w&&E){let t=G(T[0]);n.texStorage2D(e.TEXTURE_2D,C,M,t.width,t.height)}for(let i=0,r=T.length;i>c),i=Math.max(1,r.height>>c);u===e.TEXTURE_3D||u===e.TEXTURE_2D_ARRAY?n.texImage3D(u,c,p,t,i,r.depth,0,h,d,null):n.texImage2D(u,c,p,t,i,0,h,d,null)}n.bindFramebuffer(e.FRAMEBUFFER,t),H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,o,u,m.__webglTexture,0,k(r)):(u===e.TEXTURE_2D||u>=e.TEXTURE_CUBE_MAP_POSITIVE_X&&u<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,u,m.__webglTexture,c),n.bindFramebuffer(e.FRAMEBUFFER,null)}function O(t,n,i){if(e.bindRenderbuffer(e.RENDERBUFFER,t),n.depthBuffer){let r=n.depthTexture,a=r&&r.isDepthTexture?r.type:null,s=y(n.stencilBuffer,a),o=n.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,u=k(n);H(n)?l.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,u,s,n.width,n.height):i?e.renderbufferStorageMultisample(e.RENDERBUFFER,u,s,n.width,n.height):e.renderbufferStorage(e.RENDERBUFFER,s,n.width,n.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,o,e.RENDERBUFFER,t)}else{let t=n.textures;for(let r=0;r{delete r.__boundDepthTexture,delete r.__depthDisposeCallback,e.removeEventListener("dispose",t)};e.addEventListener("dispose",t),r.__depthDisposeCallback=t}r.__boundDepthTexture=e}if(t.depthTexture&&!r.__autoAllocateDepthBuffer){if(a)throw Error("target.depthTexture not supported in Cube render targets");!function(t,r){if(r&&r.isWebGLCubeRenderTarget)throw Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(e.FRAMEBUFFER,t),!(r.depthTexture&&r.depthTexture.isDepthTexture))throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");let a=i.get(r.depthTexture);a.__renderTarget=r,a.__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),w(r.depthTexture,0);let s=a.__webglTexture,o=k(r);if(1026===r.depthTexture.format)H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,s,0,o):e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,s,0);else if(1027===r.depthTexture.format)H(r)?l.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,s,0,o):e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.TEXTURE_2D,s,0);else throw Error("Unknown depthTexture format")}(r.__webglFramebuffer,t)}else if(a){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)if(n.bindFramebuffer(e.FRAMEBUFFER,r.__webglFramebuffer[i]),void 0===r.__webglDepthbuffer[i])r.__webglDepthbuffer[i]=e.createRenderbuffer(),O(r.__webglDepthbuffer[i],t,!1);else{let n=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,a=r.__webglDepthbuffer[i];e.bindRenderbuffer(e.RENDERBUFFER,a),e.framebufferRenderbuffer(e.FRAMEBUFFER,n,e.RENDERBUFFER,a)}}else if(n.bindFramebuffer(e.FRAMEBUFFER,r.__webglFramebuffer),void 0===r.__webglDepthbuffer)r.__webglDepthbuffer=e.createRenderbuffer(),O(r.__webglDepthbuffer,t,!1);else{let n=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,i=r.__webglDepthbuffer;e.bindRenderbuffer(e.RENDERBUFFER,i),e.framebufferRenderbuffer(e.FRAMEBUFFER,n,e.RENDERBUFFER,i)}n.bindFramebuffer(e.FRAMEBUFFER,null)}let z=[],B=[];function k(e){return Math.min(r.maxSamples,e.samples)}function H(e){let n=i.get(e);return e.samples>0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function V(e,t){let n=e.colorSpace,i=e.format,r=e.type;return!0===e.isCompressedTexture||!0===e.isVideoTexture||n!==L&&""!==n&&(eu.getTransfer(n)===U?(1023!==i||1009!==r)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),t}function G(e){return"u">typeof HTMLImageElement&&e instanceof HTMLImageElement?(c.width=e.naturalWidth||e.width,c.height=e.naturalHeight||e.height):"u">typeof VideoFrame&&e instanceof VideoFrame?(c.width=e.displayWidth,c.height=e.displayHeight):(c.width=e.width,c.height=e.height),c}this.allocateTextureUnit=function(){let e=T;return e>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+r.maxTextures),T+=1,e},this.resetTextureUnits=function(){T=0},this.setTexture2D=w,this.setTexture2DArray=function(t,r){let a=i.get(t);t.version>0&&a.__version!==t.version?I(a,t,r):n.bindTexture(e.TEXTURE_2D_ARRAY,a.__webglTexture,e.TEXTURE0+r)},this.setTexture3D=function(t,r){let a=i.get(t);t.version>0&&a.__version!==t.version?I(a,t,r):n.bindTexture(e.TEXTURE_3D,a.__webglTexture,e.TEXTURE0+r)},this.setTextureCube=function(t,s){let o=i.get(t);t.version>0&&o.__version!==t.version?function(t,s,o){if(6!==s.image.length)return;let l=P(t,s),u=s.source;n.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+o);let c=i.get(u);if(u.version!==c.__version||!0===l){let t;n.activeTexture(e.TEXTURE0+o);let i=eu.getPrimaries(eu.workingColorSpace),h=""===s.colorSpace?null:eu.getPrimaries(s.colorSpace),d=""===s.colorSpace||i===h?e.NONE:e.BROWSER_DEFAULT_WEBGL;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,s.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,s.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);let p=s.isCompressedTexture||s.image[0].isCompressedTexture,f=s.image[0]&&s.image[0].isDataTexture,y=[];for(let e=0;e<6;e++)p||f?y[e]=f?s.image[e].image:s.image[e]:y[e]=m(s.image[e],!0,r.maxCubemapSize),y[e]=V(s,y[e]);let b=y[0],S=a.convert(s.format,s.colorSpace),M=a.convert(s.type),T=_(s.internalFormat,S,M,s.colorSpace),w=!0!==s.isVideoTexture,E=void 0===c.__version||!0===l,A=u.dataReady,C=x(s,b);if(R(e.TEXTURE_CUBE_MAP,s),p){w&&E&&n.texStorage2D(e.TEXTURE_CUBE_MAP,C,T,b.width,b.height);for(let i=0;i<6;i++){t=y[i].mipmaps;for(let r=0;r0&&C++;let i=G(y[0]);n.texStorage2D(e.TEXTURE_CUBE_MAP,C,T,i.width,i.height)}for(let i=0;i<6;i++)if(f){w?A&&n.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,0,0,y[i].width,y[i].height,S,M,y[i].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+i,0,T,y[i].width,y[i].height,0,S,M,y[i].data);for(let r=0;r1;if(!h&&(void 0===l.__webglTexture&&(l.__webglTexture=e.createTexture()),l.__version=r.version,s.memory.textures++),c){o.__webglFramebuffer=[];for(let t=0;t<6;t++)if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer[t]=[];for(let n=0;n0){o.__webglFramebuffer=[];for(let t=0;t0&&!1===H(t)){o.__webglMultisampledFramebuffer=e.createFramebuffer(),o.__webglColorRenderbuffer=[],n.bindFramebuffer(e.FRAMEBUFFER,o.__webglMultisampledFramebuffer);for(let n=0;n0)for(let i=0;i0)for(let n=0;n0){if(!1===H(t)){let r=t.textures,a=t.width,s=t.height,o=e.COLOR_BUFFER_BIT,l=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,c=i.get(t),h=r.length>1;if(h)for(let t=0;t.025?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&s<=.015&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&null!==(r=t.getPose(e.gripSpace,n))&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1);null!==s&&(null===(i=t.getPose(e.targetRaySpace,n))&&null!==r&&(i=r),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(uH)))}return null!==s&&(s.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==a),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){let n=new i6;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}}let uG=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,uW=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class uj{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,n){if(null===this.texture){let i=new ev;e.properties.get(i).__webglTexture=t.texture,(t.depthNear!=n.depthNear||t.depthFar!=n.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=i}}getMesh(e){if(null!==this.texture&&null===this.mesh){let t=e.cameras[0].viewport,n=new nb({vertexShader:uG,fragmentShader:uW,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new nf(new r9(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class uX extends O{constructor(e,t){super();const n=this;let i=null,r=1,a=null,s="local-floor",o=1,l=null,u=null,c=null,h=null,d=null,p=null;const f=new uj,m=t.getContextAttributes();let g=null,v=null;const _=[],y=[],x=new Y;let b=null;const S=new nE;S.viewport=new e_;const M=new nE;M.viewport=new e_;const T=[S,M],w=new sT;let E=null,A=null;function C(e){let t=y.indexOf(e.inputSource);if(-1===t)return;let n=_[t];void 0!==n&&(n.update(e.inputSource,e.frame,l||a),n.dispatchEvent({type:e.type,data:e.inputSource}))}function R(){i.removeEventListener("select",C),i.removeEventListener("selectstart",C),i.removeEventListener("selectend",C),i.removeEventListener("squeeze",C),i.removeEventListener("squeezestart",C),i.removeEventListener("squeezeend",C),i.removeEventListener("end",R),i.removeEventListener("inputsourceschange",P);for(let e=0;e<_.length;e++){let t=y[e];null!==t&&(y[e]=null,_[e].disconnect(t))}E=null,A=null,f.reset(),e.setRenderTarget(g),d=null,h=null,c=null,i=null,v=null,D.stop(),n.isPresenting=!1,e.setPixelRatio(b),e.setSize(x.width,x.height,!1),n.dispatchEvent({type:"sessionend"})}function P(e){for(let t=0;t=0&&(y[i]=null,_[i].disconnect(n))}for(let t=0;t=y.length){y.push(n),i=e;break}else if(null===y[e]){y[e]=n,i=e;break}if(-1===i)break}let r=_[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getGripSpace()},this.getHand=function(e){let t=_[e];return void 0===t&&(t=new uV,_[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){r=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){s=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||a},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==h?h:d},this.getBinding=function(){return c},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(u){if(null!==(i=u)){if(g=e.getRenderTarget(),i.addEventListener("select",C),i.addEventListener("selectstart",C),i.addEventListener("selectend",C),i.addEventListener("squeeze",C),i.addEventListener("squeezestart",C),i.addEventListener("squeezeend",C),i.addEventListener("end",R),i.addEventListener("inputsourceschange",P),!0!==m.xrCompatible&&await t.makeXRCompatible(),b=e.getPixelRatio(),e.getSize(x),void 0===i.renderState.layers){let n={antialias:m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,t,n),i.updateRenderState({baseLayer:d}),e.setPixelRatio(1),e.setSize(d.framebufferWidth,d.framebufferHeight,!1),v=new ex(d.framebufferWidth,d.framebufferHeight,{format:1023,type:1009,colorSpace:e.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,a=null,s=null;m.depth&&(s=m.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,n=m.stencil?1027:1026,a=m.stencil?1020:1014);let o={colorFormat:t.RGBA8,depthFormat:s,scaleFactor:r};h=(c=new XRWebGLBinding(i,t)).createProjectionLayer(o),i.updateRenderState({layers:[h]}),e.setPixelRatio(1),e.setSize(h.textureWidth,h.textureHeight,!1),v=new ex(h.textureWidth,h.textureHeight,{format:1023,type:1009,depthTexture:new ri(h.textureWidth,h.textureHeight,a,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:e.outputColorSpace,samples:4*!!m.antialias,resolveDepthBuffer:!1===h.ignoreDepthValues})}v.isXRRenderTarget=!0,this.setFoveation(o),l=null,a=await i.requestReferenceSpace(s),D.setContext(i),D.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode},this.getDepthTexture=function(){return f.getDepthTexture()};const I=new eE,L=new eE;function N(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){var t,n,r;if(null===i)return;let a=e.near,s=e.far;null!==f.texture&&(f.depthNear>0&&(a=f.depthNear),f.depthFar>0&&(s=f.depthFar)),w.near=M.near=S.near=a,w.far=M.far=S.far=s,(E!==w.near||A!==w.far)&&(i.updateRenderState({depthNear:w.near,depthFar:w.far}),E=w.near,A=w.far),S.layers.mask=2|e.layers.mask,M.layers.mask=4|e.layers.mask,w.layers.mask=S.layers.mask|M.layers.mask;let o=e.parent,l=w.cameras;N(w,o);for(let e=0;e0&&(e.alphaTest.value=i.alphaTest);let r=t.get(i),a=r.envMap,s=r.envMapRotation;a&&(e.envMap.value=a,uq.copy(s),uq.x*=-1,uq.y*=-1,uq.z*=-1,a.isCubeTexture&&!1===a.isRenderTargetTexture&&(uq.y*=-1,uq.z*=-1),e.envMapRotation.value.setFromMatrix4(uY.makeRotationFromEuler(uq)),e.flipEnvMap.value=a.isCubeTexture&&!1===a.isRenderTargetTexture?-1:1,e.reflectivity.value=i.reflectivity,e.ior.value=i.ior,e.refractionRatio.value=i.refractionRatio),i.lightMap&&(e.lightMap.value=i.lightMap,e.lightMapIntensity.value=i.lightMapIntensity,n(i.lightMap,e.lightMapTransform)),i.aoMap&&(e.aoMap.value=i.aoMap,e.aoMapIntensity.value=i.aoMapIntensity,n(i.aoMap,e.aoMapTransform))}return{refreshFogUniforms:function(t,n){n.color.getRGB(t.fogColor.value,ny(e)),n.isFog?(t.fogNear.value=n.near,t.fogFar.value=n.far):n.isFogExp2&&(t.fogDensity.value=n.density)},refreshMaterialUniforms:function(e,r,a,s,o){var l,u,c,h,d,p,f,m,g,v,_,y,x,b,S,M,T,w,E,A,C,R,P;let I;r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(e,r):r.isMeshToonMaterial?(i(e,r),l=e,(u=r).gradientMap&&(l.gradientMap.value=u.gradientMap)):r.isMeshPhongMaterial?(i(e,r),c=e,h=r,c.specular.value.copy(h.specular),c.shininess.value=Math.max(h.shininess,1e-4)):r.isMeshStandardMaterial?(i(e,r),d=e,p=r,d.metalness.value=p.metalness,p.metalnessMap&&(d.metalnessMap.value=p.metalnessMap,n(p.metalnessMap,d.metalnessMapTransform)),d.roughness.value=p.roughness,p.roughnessMap&&(d.roughnessMap.value=p.roughnessMap,n(p.roughnessMap,d.roughnessMapTransform)),p.envMap&&(d.envMapIntensity.value=p.envMapIntensity),r.isMeshPhysicalMaterial&&(f=e,m=r,g=o,f.ior.value=m.ior,m.sheen>0&&(f.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),f.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(f.sheenColorMap.value=m.sheenColorMap,n(m.sheenColorMap,f.sheenColorMapTransform)),m.sheenRoughnessMap&&(f.sheenRoughnessMap.value=m.sheenRoughnessMap,n(m.sheenRoughnessMap,f.sheenRoughnessMapTransform))),m.clearcoat>0&&(f.clearcoat.value=m.clearcoat,f.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(f.clearcoatMap.value=m.clearcoatMap,n(m.clearcoatMap,f.clearcoatMapTransform)),m.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap,n(m.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),m.clearcoatNormalMap&&(f.clearcoatNormalMap.value=m.clearcoatNormalMap,n(m.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),1===m.side&&f.clearcoatNormalScale.value.negate())),m.dispersion>0&&(f.dispersion.value=m.dispersion),m.iridescence>0&&(f.iridescence.value=m.iridescence,f.iridescenceIOR.value=m.iridescenceIOR,f.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(f.iridescenceMap.value=m.iridescenceMap,n(m.iridescenceMap,f.iridescenceMapTransform)),m.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=m.iridescenceThicknessMap,n(m.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),m.transmission>0&&(f.transmission.value=m.transmission,f.transmissionSamplerMap.value=g.texture,f.transmissionSamplerSize.value.set(g.width,g.height),m.transmissionMap&&(f.transmissionMap.value=m.transmissionMap,n(m.transmissionMap,f.transmissionMapTransform)),f.thickness.value=m.thickness,m.thicknessMap&&(f.thicknessMap.value=m.thicknessMap,n(m.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=m.attenuationDistance,f.attenuationColor.value.copy(m.attenuationColor)),m.anisotropy>0&&(f.anisotropyVector.value.set(m.anisotropy*Math.cos(m.anisotropyRotation),m.anisotropy*Math.sin(m.anisotropyRotation)),m.anisotropyMap&&(f.anisotropyMap.value=m.anisotropyMap,n(m.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=m.specularIntensity,f.specularColor.value.copy(m.specularColor),m.specularColorMap&&(f.specularColorMap.value=m.specularColorMap,n(m.specularColorMap,f.specularColorMapTransform)),m.specularIntensityMap&&(f.specularIntensityMap.value=m.specularIntensityMap,n(m.specularIntensityMap,f.specularIntensityMapTransform)))):r.isMeshMatcapMaterial?(i(e,r),v=e,(_=r).matcap&&(v.matcap.value=_.matcap)):r.isMeshDepthMaterial?i(e,r):r.isMeshDistanceMaterial?(i(e,r),y=e,x=r,I=t.get(x).light,y.referencePosition.value.setFromMatrixPosition(I.matrixWorld),y.nearDistance.value=I.shadow.camera.near,y.farDistance.value=I.shadow.camera.far):r.isMeshNormalMaterial?i(e,r):r.isLineBasicMaterial?(b=e,S=r,b.diffuse.value.copy(S.color),b.opacity.value=S.opacity,S.map&&(b.map.value=S.map,n(S.map,b.mapTransform)),r.isLineDashedMaterial&&(M=e,T=r,M.dashSize.value=T.dashSize,M.totalSize.value=T.dashSize+T.gapSize,M.scale.value=T.scale)):r.isPointsMaterial?(w=e,E=r,A=a,C=s,w.diffuse.value.copy(E.color),w.opacity.value=E.opacity,w.size.value=E.size*A,w.scale.value=.5*C,E.map&&(w.map.value=E.map,n(E.map,w.uvTransform)),E.alphaMap&&(w.alphaMap.value=E.alphaMap,n(E.alphaMap,w.alphaMapTransform)),E.alphaTest>0&&(w.alphaTest.value=E.alphaTest)):r.isSpriteMaterial?(R=e,P=r,R.diffuse.value.copy(P.color),R.opacity.value=P.opacity,R.rotation.value=P.rotation,P.map&&(R.map.value=P.map,n(P.map,R.mapTransform)),P.alphaMap&&(R.alphaMap.value=P.alphaMap,n(P.alphaMap,R.alphaMapTransform)),P.alphaTest>0&&(R.alphaTest.value=P.alphaTest)):r.isShadowMaterial?(e.color.value.copy(r.color),e.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function uJ(e,t,n,i){let r={},a={},s=[],o=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS);function l(e){let t={boundary:0,storage:0};return"number"==typeof e||"boolean"==typeof e?(t.boundary=4,t.storage=4):e.isVector2?(t.boundary=8,t.storage=8):e.isVector3||e.isColor?(t.boundary=16,t.storage=12):e.isVector4?(t.boundary=16,t.storage=16):e.isMatrix3?(t.boundary=48,t.storage=48):e.isMatrix4?(t.boundary=64,t.storage=64):e.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",e),t}function u(t){let n=t.target;n.removeEventListener("dispose",u);let i=s.indexOf(n.__bindingPointIndex);s.splice(i,1),e.deleteBuffer(r[n.id]),delete r[n.id],delete a[n.id]}return{bind:function(e,t){let n=t.program;i.uniformBlockBinding(e,n)},update:function(n,c){var h;let d,p,f,m,g=r[n.id];void 0===g&&(function(e){let t=e.uniforms,n=0;for(let e=0,i=t.length;e0&&(n+=16-i),e.__size=n,e.__cache={}}(n),(h=n).__bindingPointIndex=d=function(){for(let e=0;etypeof WebGLRenderingContext&&A instanceof WebGLRenderingContext)throw Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");t=A.getContextAttributes().alpha}else t=P;const B=new Uint32Array(4),k=new Int32Array(4);let H=null,V=null;const G=[],W=[];this.domElement=E,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=I,this.toneMapping=0,this.toneMappingExposure=1;const j=this;let X=!1,q=0,Y=0,Z=null,J=-1,K=null;const $=new e_,Q=new e_;let ee=null;const en=new tz(0);let eo=0,el=E.width,ec=E.height,eh=1,ed=null,ep=null;const ef=new e_(0,0,el,ec),em=new e_(0,0,el,ec);let eg=!1;const ev=new iS;let ey=!1,eb=!1;const eS=new e2,eM=new e2,eT=new eE,ew=new e_,eA={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let eC=!1;function eR(){return null===Z?eh:1}let eP=A;function eI(e,t){return E.getContext(e,t)}try{if("setAttribute"in E&&E.setAttribute("data-engine","three.js r171"),E.addEventListener("webglcontextlost",eU,!1),E.addEventListener("webglcontextrestored",eD,!1),E.addEventListener("webglcontextcreationerror",eO,!1),null===eP){const e="webgl2";if(eP=eI(e,{alpha:!0,depth:C,stencil:R,antialias:N,premultipliedAlpha:U,preserveDrawingBuffer:D,powerPreference:O,failIfMajorPerformanceCaveat:F}),null===eP)if(eI(e))throw Error("Error creating WebGL context with your selected attributes.");else throw Error("Error creating WebGL context.")}}catch(e){throw console.error("THREE.WebGLRenderer: "+e.message),e}function eL(){(n=new lr(eP)).init(),M=new uk(eP,n),i=new oY(eP,n,e,M),r=new uz(eP,n),i.reverseDepthBuffer&&z&&r.buffers.depth.setReversed(!0),a=new lo(eP),s=new uw,o=new uB(eP,n,r,s,i,M,a),l=new oJ(j),u=new li(j),c=new oz(eP),T=new oX(eP,c),h=new la(eP,c,a,T),d=new lu(eP,h,c,a),x=new ll(eP,i,o),v=new oZ(s),p=new uT(j,l,u,n,i,T,v),f=new uZ(j,s),m=new uR,g=new uD(n),y=new oj(j,l,u,r,d,t,U),_=new uO(j,d,i),w=new uJ(eP,a,i,r),b=new oq(eP,n,a),S=new ls(eP,n,a),a.programs=p.programs,j.capabilities=i,j.extensions=n,j.properties=s,j.renderLists=m,j.shadowMap=_,j.state=r,j.info=a}eL();const eN=new uX(j,eP);function eU(e){e.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),X=!0}function eD(){console.log("THREE.WebGLRenderer: Context Restored."),X=!1;let e=a.autoReset,t=_.enabled,n=_.autoUpdate,i=_.needsUpdate,r=_.type;eL(),a.autoReset=e,_.enabled=t,_.autoUpdate=n,_.needsUpdate=i,_.type=r}function eO(e){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",e.statusMessage)}function eF(e){var t,n;let i,r=e.target;r.removeEventListener("dispose",eF),n=t=r,void 0!==(i=s.get(n).programs)&&(i.forEach(function(e){p.releaseProgram(e)}),n.isShaderMaterial&&p.releaseShaderCache(n)),s.remove(t)}function ez(e,t,n){!0===e.transparent&&2===e.side&&!1===e.forceSinglePass?(e.side=1,e.needsUpdate=!0,eY(e,t,n),e.side=0,e.needsUpdate=!0,eY(e,t,n),e.side=2):eY(e,t,n)}this.xr=eN,this.getContext=function(){return eP},this.getContextAttributes=function(){return eP.getContextAttributes()},this.forceContextLoss=function(){let e=n.get("WEBGL_lose_context");e&&e.loseContext()},this.forceContextRestore=function(){let e=n.get("WEBGL_lose_context");e&&e.restoreContext()},this.getPixelRatio=function(){return eh},this.setPixelRatio=function(e){void 0!==e&&(eh=e,this.setSize(el,ec,!1))},this.getSize=function(e){return e.set(el,ec)},this.setSize=function(e,t,n=!0){eN.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(el=e,ec=t,E.width=Math.floor(e*eh),E.height=Math.floor(t*eh),!0===n&&(E.style.width=e+"px",E.style.height=t+"px"),this.setViewport(0,0,e,t))},this.getDrawingBufferSize=function(e){return e.set(el*eh,ec*eh).floor()},this.setDrawingBufferSize=function(e,t,n){el=e,ec=t,eh=n,E.width=Math.floor(e*n),E.height=Math.floor(t*n),this.setViewport(0,0,e,t)},this.getCurrentViewport=function(e){return e.copy($)},this.getViewport=function(e){return e.copy(ef)},this.setViewport=function(e,t,n,i){e.isVector4?ef.set(e.x,e.y,e.z,e.w):ef.set(e,t,n,i),r.viewport($.copy(ef).multiplyScalar(eh).round())},this.getScissor=function(e){return e.copy(em)},this.setScissor=function(e,t,n,i){e.isVector4?em.set(e.x,e.y,e.z,e.w):em.set(e,t,n,i),r.scissor(Q.copy(em).multiplyScalar(eh).round())},this.getScissorTest=function(){return eg},this.setScissorTest=function(e){r.setScissorTest(eg=e)},this.setOpaqueSort=function(e){ed=e},this.setTransparentSort=function(e){ep=e},this.getClearColor=function(e){return e.copy(y.getClearColor())},this.setClearColor=function(){y.setClearColor.apply(y,arguments)},this.getClearAlpha=function(){return y.getClearAlpha()},this.setClearAlpha=function(){y.setClearAlpha.apply(y,arguments)},this.clear=function(e=!0,t=!0,n=!0){let i=0;if(e){let e=!1;if(null!==Z){let t=Z.texture.format;e=1033===t||1031===t||1029===t}if(e){let e=Z.texture.type,t=1009===e||1014===e||1012===e||1020===e||1017===e||1018===e,n=y.getClearColor(),i=y.getClearAlpha(),r=n.r,a=n.g,s=n.b;t?(B[0]=r,B[1]=a,B[2]=s,B[3]=i,eP.clearBufferuiv(eP.COLOR,0,B)):(k[0]=r,k[1]=a,k[2]=s,k[3]=i,eP.clearBufferiv(eP.COLOR,0,k))}else i|=eP.COLOR_BUFFER_BIT}t&&(i|=eP.DEPTH_BUFFER_BIT),n&&(i|=eP.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(0xffffffff)),eP.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){E.removeEventListener("webglcontextlost",eU,!1),E.removeEventListener("webglcontextrestored",eD,!1),E.removeEventListener("webglcontextcreationerror",eO,!1),y.dispose(),m.dispose(),g.dispose(),s.dispose(),l.dispose(),u.dispose(),d.dispose(),T.dispose(),w.dispose(),p.dispose(),eN.dispose(),eN.removeEventListener("sessionstart",ek),eN.removeEventListener("sessionend",eH),eV.stop()},this.renderBufferDirect=function(e,t,a,d,p,m){let g;null===t&&(t=eA);let _=p.isMesh&&0>p.matrixWorld.determinant(),y=function(e,t,n,a,c){var h,d;!0!==t.isScene&&(t=eA),o.resetTextureUnits();let p=t.fog,m=a.isMeshStandardMaterial?t.environment:null,g=null===Z?j.outputColorSpace:!0===Z.isXRRenderTarget?Z.texture.colorSpace:L,_=(a.isMeshStandardMaterial?u:l).get(a.envMap||m),y=!0===a.vertexColors&&!!n.attributes.color&&4===n.attributes.color.itemSize,b=!!n.attributes.tangent&&(!!a.normalMap||a.anisotropy>0),S=!!n.morphAttributes.position,M=!!n.morphAttributes.normal,T=!!n.morphAttributes.color,E=0;a.toneMapped&&(null===Z||!0===Z.isXRRenderTarget)&&(E=j.toneMapping);let A=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,C=void 0!==A?A.length:0,R=s.get(a),P=V.state.lights;if(!0===ey&&(!0===eb||e!==K)){let t=e===K&&a.id===J;v.setState(a,e,t)}let I=!1;a.version===R.__version?R.needsLights&&R.lightsStateVersion!==P.state.version||R.outputColorSpace!==g||c.isBatchedMesh&&!1===R.batching?I=!0:c.isBatchedMesh||!0!==R.batching?c.isBatchedMesh&&!0===R.batchingColor&&null===c.colorTexture||c.isBatchedMesh&&!1===R.batchingColor&&null!==c.colorTexture||c.isInstancedMesh&&!1===R.instancing?I=!0:c.isInstancedMesh||!0!==R.instancing?c.isSkinnedMesh&&!1===R.skinning?I=!0:c.isSkinnedMesh||!0!==R.skinning?c.isInstancedMesh&&!0===R.instancingColor&&null===c.instanceColor||c.isInstancedMesh&&!1===R.instancingColor&&null!==c.instanceColor||c.isInstancedMesh&&!0===R.instancingMorph&&null===c.morphTexture||c.isInstancedMesh&&!1===R.instancingMorph&&null!==c.morphTexture||R.envMap!==_||!0===a.fog&&R.fog!==p||void 0!==R.numClippingPlanes&&(R.numClippingPlanes!==v.numPlanes||R.numIntersection!==v.numIntersection)||R.vertexAlphas!==y||R.vertexTangents!==b||R.morphTargets!==S||R.morphNormals!==M||R.morphColors!==T||R.toneMapping!==E?I=!0:R.morphTargetsCount!==C&&(I=!0):I=!0:I=!0:I=!0:(I=!0,R.__version=a.version);let N=R.currentProgram;!0===I&&(N=eY(a,t,c));let U=!1,D=!1,O=!1,F=N.getUniforms(),z=R.uniforms;if(r.useProgram(N.program)&&(U=!0,D=!0,O=!0),a.id!==J&&(J=a.id,D=!0),U||K!==e){r.buffers.depth.getReversed()?(eS.copy(e.projectionMatrix),ea(eS),es(eS),F.setValue(eP,"projectionMatrix",eS)):F.setValue(eP,"projectionMatrix",e.projectionMatrix),F.setValue(eP,"viewMatrix",e.matrixWorldInverse);let t=F.map.cameraPosition;void 0!==t&&t.setValue(eP,eT.setFromMatrixPosition(e.matrixWorld)),i.logarithmicDepthBuffer&&F.setValue(eP,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),(a.isMeshPhongMaterial||a.isMeshToonMaterial||a.isMeshLambertMaterial||a.isMeshBasicMaterial||a.isMeshStandardMaterial||a.isShaderMaterial)&&F.setValue(eP,"isOrthographic",!0===e.isOrthographicCamera),K!==e&&(K=e,D=!0,O=!0)}if(c.isSkinnedMesh){F.setOptional(eP,c,"bindMatrix"),F.setOptional(eP,c,"bindMatrixInverse");let e=c.skeleton;e&&(null===e.boneTexture&&e.computeBoneTexture(),F.setValue(eP,"boneTexture",e.boneTexture,o))}c.isBatchedMesh&&(F.setOptional(eP,c,"batchingTexture"),F.setValue(eP,"batchingTexture",c._matricesTexture,o),F.setOptional(eP,c,"batchingIdTexture"),F.setValue(eP,"batchingIdTexture",c._indirectTexture,o),F.setOptional(eP,c,"batchingColorTexture"),null!==c._colorsTexture&&F.setValue(eP,"batchingColorTexture",c._colorsTexture,o));let B=n.morphAttributes;if((void 0!==B.position||void 0!==B.normal||void 0!==B.color)&&x.update(c,n,N),(D||R.receiveShadow!==c.receiveShadow)&&(R.receiveShadow=c.receiveShadow,F.setValue(eP,"receiveShadow",c.receiveShadow)),a.isMeshGouraudMaterial&&null!==a.envMap&&(z.envMap.value=_,z.flipEnvMap.value=_.isCubeTexture&&!1===_.isRenderTargetTexture?-1:1),a.isMeshStandardMaterial&&null===a.envMap&&null!==t.environment&&(z.envMapIntensity.value=t.environmentIntensity),D&&(F.setValue(eP,"toneMappingExposure",j.toneMappingExposure),R.needsLights&&(h=z,d=O,h.ambientLightColor.needsUpdate=d,h.lightProbe.needsUpdate=d,h.directionalLights.needsUpdate=d,h.directionalLightShadows.needsUpdate=d,h.pointLights.needsUpdate=d,h.pointLightShadows.needsUpdate=d,h.spotLights.needsUpdate=d,h.spotLightShadows.needsUpdate=d,h.rectAreaLights.needsUpdate=d,h.hemisphereLights.needsUpdate=d),p&&!0===a.fog&&f.refreshFogUniforms(z,p),f.refreshMaterialUniforms(z,a,eh,ec,V.state.transmissionRenderTarget[e.id]),ui.upload(eP,eZ(R),z,o)),a.isShaderMaterial&&!0===a.uniformsNeedUpdate&&(ui.upload(eP,eZ(R),z,o),a.uniformsNeedUpdate=!1),a.isSpriteMaterial&&F.setValue(eP,"center",c.center),F.setValue(eP,"modelViewMatrix",c.modelViewMatrix),F.setValue(eP,"normalMatrix",c.normalMatrix),F.setValue(eP,"modelMatrix",c.matrixWorld),a.isShaderMaterial||a.isRawShaderMaterial){let e=a.uniformsGroups;for(let t=0,n=e.length;t{function i(){(r.forEach(function(e){s.get(e).currentProgram.isReady()&&r.delete(e)}),0===r.size)?t(e):setTimeout(i,10)}null!==n.get("KHR_parallel_shader_compile")?i():setTimeout(i,10)})};let eB=null;function ek(){eV.stop()}function eH(){eV.start()}const eV=new oF;function eG(e,t,n,i){if(!1===e.visible)return;if(e.layers.test(t.layers)){if(e.isGroup)n=e.renderOrder;else if(e.isLOD)!0===e.autoUpdate&&e.update(t);else if(e.isLight)V.pushLight(e),e.castShadow&&V.pushShadow(e);else if(e.isSprite){if(!e.frustumCulled||ev.intersectsSprite(e)){i&&ew.setFromMatrixPosition(e.matrixWorld).applyMatrix4(eM);let t=d.update(e),r=e.material;r.visible&&H.push(e,t,r,n,ew.z,null)}}else if((e.isMesh||e.isLine||e.isPoints)&&(!e.frustumCulled||ev.intersectsObject(e))){let t=d.update(e),r=e.material;if(i&&(void 0!==e.boundingSphere?(null===e.boundingSphere&&e.computeBoundingSphere(),ew.copy(e.boundingSphere.center)):(null===t.boundingSphere&&t.computeBoundingSphere(),ew.copy(t.boundingSphere.center)),ew.applyMatrix4(e.matrixWorld).applyMatrix4(eM)),Array.isArray(r)){let i=t.groups;for(let a=0,s=i.length;a0&&eX(a,t,n),s.length>0&&eX(s,t,n),o.length>0&&eX(o,t,n),r.buffers.depth.setTest(!0),r.buffers.depth.setMask(!0),r.buffers.color.setMask(!0),r.setPolygonOffset(!1)}function ej(e,t,i,r){if(null!==(!0===i.isScene?i.overrideMaterial:null))return;void 0===V.state.transmissionRenderTarget[r.id]&&(V.state.transmissionRenderTarget[r.id]=new ex(1,1,{generateMipmaps:!0,type:n.has("EXT_color_buffer_half_float")||n.has("EXT_color_buffer_float")?1016:1009,minFilter:1008,samples:4,stencilBuffer:R,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:eu.workingColorSpace}));let a=V.state.transmissionRenderTarget[r.id],s=r.viewport||$;a.setSize(s.z,s.w);let l=j.getRenderTarget();j.setRenderTarget(a),j.getClearColor(en),(eo=j.getClearAlpha())<1&&j.setClearColor(0xffffff,.5),j.clear(),eC&&y.render(i);let u=j.toneMapping;j.toneMapping=0;let c=r.viewport;if(void 0!==r.viewport&&(r.viewport=void 0),V.setupLightsView(r),!0===ey&&v.setGlobalState(j.clippingPlanes,r),eX(e,i,r),o.updateMultisampleRenderTarget(a),o.updateRenderTargetMipmap(a),!1===n.has("WEBGL_multisampled_render_to_texture")){let e=!1;for(let n=0,a=t.length;ntypeof self&&eV.setContext(self),this.setAnimationLoop=function(e){eB=e,eN.setAnimationLoop(e),null===e?eV.stop():eV.start()},eN.addEventListener("sessionstart",ek),eN.addEventListener("sessionend",eH),this.render=function(e,t){if(void 0!==t&&!0!==t.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===X)return;if(!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===t.parent&&!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),!0===eN.enabled&&!0===eN.isPresenting&&(!0===eN.cameraAutoUpdate&&eN.updateCamera(t),t=eN.getCamera()),!0===e.isScene&&e.onBeforeRender(j,e,t,Z),(V=g.get(e,W.length)).init(t),W.push(V),eM.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),ev.setFromProjectionMatrix(eM),eb=this.localClippingEnabled,ey=v.init(this.clippingPlanes,eb),(H=m.get(e,G.length)).init(),G.push(H),!0===eN.enabled&&!0===eN.isPresenting){let e=j.xr.getDepthSensingMesh();null!==e&&eG(e,t,-1/0,j.sortObjects)}eG(e,t,0,j.sortObjects),H.finish(),!0===j.sortObjects&&H.sort(ed,ep),(eC=!1===eN.enabled||!1===eN.isPresenting||!1===eN.hasDepthSensing())&&y.addToRenderList(H,e),this.info.render.frame++,!0===ey&&v.beginShadows();let n=V.state.shadowsArray;_.render(n,e,t),!0===ey&&v.endShadows(),!0===this.info.autoReset&&this.info.reset();let i=H.opaque,r=H.transmissive;if(V.setupLights(),t.isArrayCamera){let n=t.cameras;if(r.length>0)for(let t=0,a=n.length;t0&&ej(i,r,e,t),eC&&y.render(e),eW(H,e,t);null!==Z&&(o.updateMultisampleRenderTarget(Z),o.updateRenderTargetMipmap(Z)),!0===e.isScene&&e.onAfterRender(j,e,t),T.resetDefaultState(),J=-1,K=null,W.pop(),W.length>0?(V=W[W.length-1],!0===ey&&v.setGlobalState(j.clippingPlanes,V.state.camera)):V=null,G.pop(),H=G.length>0?G[G.length-1]:null},this.getActiveCubeFace=function(){return q},this.getActiveMipmapLevel=function(){return Y},this.getRenderTarget=function(){return Z},this.setRenderTargetTextures=function(e,t,i){s.get(e.texture).__webglTexture=t,s.get(e.depthTexture).__webglTexture=i;let r=s.get(e);r.__hasExternalTextures=!0,r.__autoAllocateDepthBuffer=void 0===i,r.__autoAllocateDepthBuffer||!0!==n.has("WEBGL_multisampled_render_to_texture")||(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),r.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(e,t){let n=s.get(e);n.__webglFramebuffer=t,n.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,n=0){Z=e,q=t,Y=n;let i=!0,a=null,l=!1,u=!1;if(e){let c=s.get(e);if(void 0!==c.__useDefaultFramebuffer)r.bindFramebuffer(eP.FRAMEBUFFER,null),i=!1;else if(void 0===c.__webglFramebuffer)o.setupRenderTarget(e);else if(c.__hasExternalTextures)o.rebindTextures(e,s.get(e.texture).__webglTexture,s.get(e.depthTexture).__webglTexture);else if(e.depthBuffer){let t=e.depthTexture;if(c.__boundDepthTexture!==t){if(null!==t&&s.has(t)&&(e.width!==t.image.width||e.height!==t.image.height))throw Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");o.setupDepthRenderbuffer(e)}}let h=e.texture;(h.isData3DTexture||h.isDataArrayTexture||h.isCompressedArrayTexture)&&(u=!0);let d=s.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(a=Array.isArray(d[t])?d[t][n]:d[t],l=!0):a=e.samples>0&&!1===o.useMultisampledRTT(e)?s.get(e).__webglMultisampledFramebuffer:Array.isArray(d)?d[n]:d,$.copy(e.viewport),Q.copy(e.scissor),ee=e.scissorTest}else $.copy(ef).multiplyScalar(eh).floor(),Q.copy(em).multiplyScalar(eh).floor(),ee=eg;if(r.bindFramebuffer(eP.FRAMEBUFFER,a)&&i&&r.drawBuffers(e,a),r.viewport($),r.scissor(Q),r.setScissorTest(ee),l){let i=s.get(e.texture);eP.framebufferTexture2D(eP.FRAMEBUFFER,eP.COLOR_ATTACHMENT0,eP.TEXTURE_CUBE_MAP_POSITIVE_X+t,i.__webglTexture,n)}else if(u){let i=s.get(e.texture);eP.framebufferTextureLayer(eP.FRAMEBUFFER,eP.COLOR_ATTACHMENT0,i.__webglTexture,n||0,t||0)}J=-1},this.readRenderTargetPixels=function(e,t,n,a,o,l,u){if(!(e&&e.isWebGLRenderTarget))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let c=s.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==u&&(c=c[u]),c){r.bindFramebuffer(eP.FRAMEBUFFER,c);try{let r=e.texture,s=r.format,u=r.type;if(!i.textureFormatReadable(s))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!i.textureTypeReadable(u))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-a&&n>=0&&n<=e.height-o&&eP.readPixels(t,n,a,o,M.convert(s),M.convert(u),l)}finally{let e=null!==Z?s.get(Z).__webglFramebuffer:null;r.bindFramebuffer(eP.FRAMEBUFFER,e)}}},this.readRenderTargetPixelsAsync=async function(e,t,n,a,o,l,u){if(!(e&&e.isWebGLRenderTarget))throw Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let c=s.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==u&&(c=c[u]),c){let u=e.texture,h=u.format,d=u.type;if(!i.textureFormatReadable(h))throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!i.textureTypeReadable(d))throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(t>=0&&t<=e.width-a&&n>=0&&n<=e.height-o){r.bindFramebuffer(eP.FRAMEBUFFER,c);let e=eP.createBuffer();eP.bindBuffer(eP.PIXEL_PACK_BUFFER,e),eP.bufferData(eP.PIXEL_PACK_BUFFER,l.byteLength,eP.STREAM_READ),eP.readPixels(t,n,a,o,M.convert(h),M.convert(d),0);let i=null!==Z?s.get(Z).__webglFramebuffer:null;r.bindFramebuffer(eP.FRAMEBUFFER,i);let u=eP.fenceSync(eP.SYNC_GPU_COMMANDS_COMPLETE,0);return eP.flush(),await er(eP,u,4),eP.bindBuffer(eP.PIXEL_PACK_BUFFER,e),eP.getBufferSubData(eP.PIXEL_PACK_BUFFER,0,l),eP.deleteBuffer(e),eP.deleteSync(u),l}throw Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(e,t=null,n=0){!0!==e.isTexture&&(ei("WebGLRenderer: copyFramebufferToTexture function signature has changed."),t=arguments[0]||null,e=arguments[1]);let i=Math.pow(2,-n),a=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i),l=null!==t?t.x:0,u=null!==t?t.y:0;o.setTexture2D(e,0),eP.copyTexSubImage2D(eP.TEXTURE_2D,n,0,0,l,u,a,s),r.unbindTexture()};const eK=eP.createFramebuffer(),e$=eP.createFramebuffer();this.copyTextureToTexture=function(e,t,n=null,i=null,a=0,l=null){let u,c,h,d,p,f,m,g,v,_;!0!==e.isTexture&&(ei("WebGLRenderer: copyTextureToTexture function signature has changed."),i=arguments[0]||null,e=arguments[1],t=arguments[2],l=arguments[3]||0,n=null),null===l&&(0!==a?(ei("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),l=a,a=0):l=0);let y=e.isCompressedTexture?e.mipmaps[l]:e.image;if(null!==n)u=n.max.x-n.min.x,c=n.max.y-n.min.y,h=n.isBox3?n.max.z-n.min.z:1,d=n.min.x,p=n.min.y,f=n.isBox3?n.min.z:0;else{let t=Math.pow(2,-a);u=Math.floor(y.width*t),c=Math.floor(y.height*t),h=e.isDataArrayTexture?y.depth:e.isData3DTexture?Math.floor(y.depth*t):1,d=0,p=0,f=0}null!==i?(m=i.x,g=i.y,v=i.z):(m=0,g=0,v=0);let x=M.convert(t.format),b=M.convert(t.type);t.isData3DTexture?(o.setTexture3D(t,0),_=eP.TEXTURE_3D):t.isDataArrayTexture||t.isCompressedArrayTexture?(o.setTexture2DArray(t,0),_=eP.TEXTURE_2D_ARRAY):(o.setTexture2D(t,0),_=eP.TEXTURE_2D),eP.pixelStorei(eP.UNPACK_FLIP_Y_WEBGL,t.flipY),eP.pixelStorei(eP.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),eP.pixelStorei(eP.UNPACK_ALIGNMENT,t.unpackAlignment);let S=eP.getParameter(eP.UNPACK_ROW_LENGTH),T=eP.getParameter(eP.UNPACK_IMAGE_HEIGHT),w=eP.getParameter(eP.UNPACK_SKIP_PIXELS),E=eP.getParameter(eP.UNPACK_SKIP_ROWS),A=eP.getParameter(eP.UNPACK_SKIP_IMAGES);eP.pixelStorei(eP.UNPACK_ROW_LENGTH,y.width),eP.pixelStorei(eP.UNPACK_IMAGE_HEIGHT,y.height),eP.pixelStorei(eP.UNPACK_SKIP_PIXELS,d),eP.pixelStorei(eP.UNPACK_SKIP_ROWS,p),eP.pixelStorei(eP.UNPACK_SKIP_IMAGES,f);let C=e.isDataArrayTexture||e.isData3DTexture,R=t.isDataArrayTexture||t.isData3DTexture;if(e.isDepthTexture){let n=s.get(e),i=s.get(t),o=s.get(n.__renderTarget),_=s.get(i.__renderTarget);r.bindFramebuffer(eP.READ_FRAMEBUFFER,o.__webglFramebuffer),r.bindFramebuffer(eP.DRAW_FRAMEBUFFER,_.__webglFramebuffer);for(let n=0;ntypeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return 2e3}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;let t=this.getContext();t.drawingBufferColorspace=eu._getDrawingBufferColorSpace(e),t.unpackColorSpace=eu._getUnpackColorSpace()}}e.s(["PMREMGenerator",0,o8,"ShaderChunk",0,oB,"ShaderLib",0,oH,"UniformsLib",0,ok,"WebGLRenderer",0,uK,"WebGLUtils",0,uk],8560);var u$=e.i(30224);let uQ=e=>{let t,n=new Set,i=(e,i)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=i?i:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,a={setState:i,getState:r,getInitialState:()=>s,subscribe:e=>(n.add(e),()=>n.delete(e))},s=t=e(i,r,a);return a},u0=e=>e?uQ(e):uQ;e.s(["createStore",0,u0],8155);let{useSyncExternalStoreWithSelector:u1}=u$.default,u2=(e,t)=>{let n=u0(e),i=(e,i=t)=>(function(e,t=e=>e,n){let i=u1(e.subscribe,e.getState,e.getInitialState,t,n);return E.default.useDebugValue(i),i})(n,e,i);return Object.assign(i,n),i},u3=(e,t)=>e?u2(e,t):u2,u4=[];function u5(e,t,n=(e,t)=>e===t){if(e===t)return!0;if(!e||!t)return!1;let i=e.length;if(t.length!==i)return!1;for(let r=0;r0&&(r.timeout&&clearTimeout(r.timeout),r.timeout=setTimeout(r.remove,i.lifespan)),r.response;if(!n)throw r.promise}let r={keys:t,equal:i.equal,remove:()=>{let e=u4.indexOf(r);-1!==e&&u4.splice(e,1)},promise:("object"==typeof e&&"function"==typeof e.then?e:e(...t)).then(e=>{r.response=e,i.lifespan&&i.lifespan>0&&(r.timeout=setTimeout(r.remove,i.lifespan))}).catch(e=>r.error=e)};if(u4.push(r),!n)throw r.promise}var u8=e.i(89499),u9=e.i(43476),u7=E;function ce(e,t,n){if(!e)return;if(!0===n(e))return e;let i=t?e.return:e.child;for(;i;){let e=ce(i,t,n);if(e)return e;i=t?null:i.sibling}}function ct(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}"u">typeof window&&((null==(y=window.document)?void 0:y.createElement)||(null==(x=window.navigator)?void 0:x.product)==="ReactNative")?u7.useLayoutEffect:u7.useEffect;let cn=ct(u7.createContext(null));class ci extends u7.Component{render(){return u7.createElement(cn.Provider,{value:this._reactInternals},this.props.children)}}function cr(){let e=u7.useContext(cn);if(null===e)throw Error("its-fine: useFiber must be called within a !");let t=u7.useId();return u7.useMemo(()=>{for(let n of[e,null==e?void 0:e.alternate]){if(!n)continue;let e=ce(n,!1,e=>{let n=e.memoizedState;for(;n;){if(n.memoizedState===t)return!0;n=n.next}});if(e)return e}},[e,t])}let ca=Symbol.for("react.context"),cs=e=>null!==e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===ca;function co(e){let t=e.root;for(;t.getState().previousRoot;)t=t.getState().previousRoot;return t}E.act;let cl=e=>e&&e.hasOwnProperty("current"),cu=e=>null!=e&&("string"==typeof e||"number"==typeof e||e.isColor),cc="u">typeof window&&((null==(m=window.document)?void 0:m.createElement)||(null==(g=window.navigator)?void 0:g.product)==="ReactNative")?E.useLayoutEffect:E.useEffect;function ch(e){let t=E.useRef(e);return cc(()=>void(t.current=e),[e]),t}function cd(){let e,t=cr(),n=(e=function(){let e=cr(),[t]=u7.useState(()=>new Map);t.clear();let n=e;for(;n;){let e=n.type;cs(e)&&e!==cn&&!t.has(e)&&t.set(e,u7.use(ct(e))),n=n.return}return t}(),u7.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>i=>u7.createElement(t,null,u7.createElement(n.Provider,{...i,value:e.get(n)})),e=>u7.createElement(ci,{...e})),[e]));return E.useMemo(()=>({children:e})=>{let i=ce(t,!0,e=>e.type===E.StrictMode)?E.StrictMode:E.Fragment;return(0,u9.jsx)(i,{children:(0,u9.jsx)(n,{children:e})})},[t,n])}function cp({set:e}){return cc(()=>(e(new Promise(()=>null)),()=>e(!1)),[e]),null}let cf=((v=class extends E.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}).getDerivedStateFromError=()=>({error:!0}),v);function cm(e){var t;let n="u">typeof window?null!=(t=window.devicePixelRatio)?t:2:1;return Array.isArray(e)?Math.min(Math.max(e[0],n),e[1]):e}function cg(e){var t;return null==(t=e.__r3f)?void 0:t.root.getState()}let cv={obj:e=>e===Object(e)&&!cv.arr(e)&&"function"!=typeof e,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,boo:e=>"boolean"==typeof e,und:e=>void 0===e,nul:e=>null===e,arr:e=>Array.isArray(e),equ(e,t,{arrays:n="shallow",objects:i="reference",strict:r=!0}={}){let a;if(typeof e!=typeof t||!!e!=!!t)return!1;if(cv.str(e)||cv.num(e)||cv.boo(e))return e===t;let s=cv.obj(e);if(s&&"reference"===i)return e===t;let o=cv.arr(e);if(o&&"reference"===n)return e===t;if((o||s)&&e===t)return!0;for(a in e)if(!(a in t))return!1;if(s&&"shallow"===n&&"shallow"===i){for(a in r?t:e)if(!cv.equ(e[a],t[a],{strict:r,objects:"reference"}))return!1}else for(a in r?t:e)if(e[a]!==t[a])return!1;if(cv.und(a)){if(o&&0===e.length&&0===t.length||s&&0===Object.keys(e).length&&0===Object.keys(t).length)return!0;if(e!==t)return!1}return!0}},c_=["children","key","ref"];function cy(e,t,n,i){let r=null==e?void 0:e.__r3f;return!r&&(r={root:t,type:n,parent:null,children:[],props:function(e){let t={};for(let n in e)c_.includes(n)||(t[n]=e[n]);return t}(i),object:e,eventCount:0,handlers:{},isHidden:!1},e&&(e.__r3f=r)),r}function cx(e,t){if(!t.includes("-")||t in e)return{root:e,key:t,target:e[t]};let n=e,i=t.split("-");for(let r of i){if("object"!=typeof n||null===n){if(void 0!==n)return{root:n,key:i.slice(i.indexOf(r)).join("-"),target:void 0};return{root:e,key:t,target:void 0}}t=r,e=n,n=n[t]}return{root:e,key:t,target:n}}let cb=/-\d+$/;function cS(e,t){if(cv.str(t.props.attach)){if(cb.test(t.props.attach)){let n=t.props.attach.replace(cb,""),{root:i,key:r}=cx(e.object,n);Array.isArray(i[r])||(i[r]=[])}let{root:n,key:i}=cx(e.object,t.props.attach);t.previousAttach=n[i],n[i]=t.object}else cv.fun(t.props.attach)&&(t.previousAttach=t.props.attach(e.object,t.object))}function cM(e,t){if(cv.str(t.props.attach)){let{root:n,key:i}=cx(e.object,t.props.attach),r=t.previousAttach;void 0===r?delete n[i]:n[i]=r}else null==t.previousAttach||t.previousAttach(e.object,t.object);delete t.previousAttach}let cT=[...c_,"args","dispose","attach","object","onUpdate","dispose"],cw=new Map,cE=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],cA=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function cC(e,t){var n,i;let r=e.__r3f,a=r&&co(r).getState(),s=null==r?void 0:r.eventCount;for(let n in t){let s=t[n];if(cT.includes(n))continue;if(r&&cA.test(n)){"function"==typeof s?r.handlers[n]=s:delete r.handlers[n],r.eventCount=Object.keys(r.handlers).length;continue}if(void 0===s)continue;let{root:o,key:l,target:u}=cx(e,n);if(void 0===u&&("object"!=typeof o||null===o))throw Error(`R3F: Cannot set "${n}". Ensure it is an object before setting "${l}".`);if(u instanceof ti&&s instanceof ti)u.mask=s.mask;else if(u instanceof tz&&cu(s))u.set(s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&"function"==typeof u.copy&&null!=s&&s.constructor&&u.constructor===s.constructor)u.copy(s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&Array.isArray(s))"function"==typeof u.fromArray?u.fromArray(s):u.set(...s);else if(null!==u&&"object"==typeof u&&"function"==typeof u.set&&"number"==typeof s)"function"==typeof u.setScalar?u.setScalar(s):u.set(s);else if(o instanceof nb&&"uniforms"===l&&cv.obj(s)){cv.obj(o.uniforms)||(o.uniforms={});let e=o.uniforms;for(let t in s){let n=s[t],i=e[t];i?Object.assign(i,n):e[t]={...n}}}else o[l]=s,a&&!a.linear&&cE.includes(l)&&null!=(i=o[l])&&i.isTexture&&1023===o[l].format&&1009===o[l].type&&(o[l].colorSpace=I)}if(null!=r&&r.parent&&null!=a&&a.internal&&null!=(n=r.object)&&n.isObject3D&&s!==r.eventCount){let e=r.object,t=a.internal.interaction.indexOf(e);t>-1&&a.internal.interaction.splice(t,1),r.eventCount&&null!==e.raycast&&a.internal.interaction.push(e)}return r&&void 0===r.props.attach&&(r.object.isBufferGeometry?r.props.attach="geometry":r.object.isMaterial&&(r.props.attach="material")),r&&cR(r),e}function cR(e){var t;if(!e.parent)return;null==e.props.onUpdate||e.props.onUpdate(e.object);let n=null==(t=e.root)||null==t.getState?void 0:t.getState();n&&0===n.internal.frames&&n.invalidate()}function cP(e,t){!e.manual&&(e&&e.isOrthographicCamera?(e.left=-(t.width/2),e.right=t.width/2,e.top=t.height/2,e.bottom=-(t.height/2)):e.aspect=t.width/t.height,e.updateProjectionMatrix())}let cI=e=>null==e?void 0:e.isObject3D;function cL(e){return(e.eventObject||e.object).uuid+"/"+e.index+e.instanceId}function cN(e,t,n,i){let r=n.get(t);r&&(n.delete(t),0===n.size&&(e.delete(i),r.target.releasePointerCapture(i)))}let cU=e=>!!(null!=e&&e.render),cD=E.createContext(null);function cO(){let e=E.useContext(cD);if(!e)throw Error("R3F: Hooks can only be used within the Canvas component!");return e}function cF(e=e=>e,t){return cO()(e,t)}function cz(e,t=0){let n=cO(),i=n.getState().internal.subscribe,r=ch(e);return cc(()=>i(r,t,n),[t,i,n]),null}let cB=new WeakMap;function ck(e,t){return function(n,...i){var r;let a;return"function"==typeof n&&(null==n||null==(r=n.prototype)?void 0:r.constructor)===n?(a=cB.get(n))||(a=new n,cB.set(n,a)):a=n,e&&e(a),Promise.all(i.map(e=>new Promise((n,i)=>a.load(e,e=>{var t;let i;cI(null==e?void 0:e.scene)&&Object.assign(e,(t=e.scene,i={nodes:{},materials:{},meshes:{}},t&&t.traverse(e=>{e.name&&(i.nodes[e.name]=e),e.material&&!i.materials[e.material.name]&&(i.materials[e.material.name]=e.material),e.isMesh&&!i.meshes[e.name]&&(i.meshes[e.name]=e)}),i)),n(e)},t,t=>i(Error(`Could not load ${e}: ${null==t?void 0:t.message}`))))))}}function cH(e,t,n,i){let r=Array.isArray(t)?t:[t],a=u6(ck(n,i),[e,...r],!1,{equal:cv.equ});return Array.isArray(t)?a:a[0]}cH.preload=function(e,t,n){let i,r=Array.isArray(t)?t:[t];u6(ck(n),[e,...r],!0,i)},cH.clear=function(e,t){var n=[e,...Array.isArray(t)?t:[t]];if(void 0===n||0===n.length)u4.splice(0,u4.length);else{let e=u4.find(e=>u5(n,e.keys,e.equal));e&&e.remove()}};var cV={exports:{}},cG={exports:{}};cG.exports;let cW=(T||(T=1,M||(M=1,cG.exports=function(e){function t(e,t,n,i){return new iJ(e,t,n,i)}function n(){}function i(e){var t="https://react.dev/errors/"+e;if(1sT||(e.current=sM[sT],sM[sT]=null,sT--)}function h(e,t){sM[++sT]=e.current,e.current=t}function d(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function p(e,t,n){var i=e.pendingLanes;if(0===i)return 0;var r=0,a=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var o=0x7ffffff&i;return 0!==o?0!=(i=o&~a)?r=d(i):0!=(s&=o)?r=d(s):n||0!=(n=o&~e)&&(r=d(n)):0!=(o=i&~a)?r=d(o):0!==s?r=d(s):n||0!=(n=i&~e)&&(r=d(n)),0===r?0:0!==t&&t!==r&&(t&a)==0&&((a=r&-r)>=(n=t&-t)||32===a&&(4194048&n)!=0)?t:r}function f(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)==0}function m(){var e=sI;return(0x3c00000&(sI<<=1))==0&&(sI=4194304),e}function g(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function v(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function _(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var i=31-sE(t);e.entangledLanes|=t,e.entanglements[i]=0x40000000|e.entanglements[i]|261930&n}function y(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var i=31-sE(n),r=1<)":-1r||l[i]!==u[r]){var c=` +`+l[i].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=i&&0<=r)break}}}finally{sY=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?T(n):""}function C(e){try{var t="",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return T(e.type);case 16:return T("Lazy");case 13:return e.child!==t&&null!==t?T("Suspense Fallback"):T("Suspense");case 19:return T("SuspenseList");case 0:case 15:return A(e.type,!1);case 11:return A(e.type.render,!1);case 1:return A(e.type,!0);case 31:return T("Activity");default:return""}}(e,n),n=e,e=e.return;while(e)return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}function R(e,t){if("object"==typeof e&&null!==e){var n=sZ.get(e);return void 0!==n?n:(t={value:e,source:t,stack:C(t)},sZ.set(e,t),t)}return{value:e,source:t,stack:C(t)}}function P(e,t){sJ[sK++]=sQ,sJ[sK++]=s$,s$=e,sQ=t}function I(e,t,n){s0[s1++]=s3,s0[s1++]=s4,s0[s1++]=s2,s2=e;var i=s3;e=s4;var r=32-sE(i)-1;i&=~(1<>=s,r-=s,s3=1<<32-sE(t)+r|n<d?(p=h,h=null):p=h.sibling;var v=m(t,h,s[d],o);if(null===v){null===h&&(h=p);break}e&&h&&null===v.alternate&&n(t,h),i=l(v,i,d),null===c?u=v:c.sibling=v,c=v,h=p}if(d===s.length)return r(t,h),ot&&P(t,d),u;if(null===h){for(;dp?(v=d,d=null):v=d.sibling;var y=m(t,d,_.value,u);if(null===y){null===d&&(d=v);break}e&&d&&null===y.alternate&&n(t,d),s=l(y,s,p),null===h?c=y:h.sibling=y,h=y,d=v}if(_.done)return r(t,d),ot&&P(t,p),c;if(null===d){for(;!_.done;p++,_=o.next())null!==(_=f(t,_.value,u))&&(s=l(_,s,p),null===h?c=_:h.sibling=_,h=_);return ot&&P(t,p),c}for(d=a(d);!_.done;p++,_=o.next())null!==(_=g(d,t,p,_.value,u))&&(e&&null!==_.alternate&&d.delete(null===_.key?p:_.key),s=l(_,s,p),null===h?c=_:h.sibling=_,h=_);return e&&d.forEach(function(e){return n(t,e)}),ot&&P(t,p),c}(c,h,d=v.call(d),p)}if("function"==typeof d.then)return t(c,h,eM(d),p);if(d.$$typeof===rd)return t(c,h,ee(c,d),p);ew(c,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==h&&6===h.tag?(r(c,h.sibling),(p=s(h,d)).return=c):(r(c,h),(p=i2(d,c.mode,p)).return=c),u(c=p)):r(c,h)}(c,h,d,p);return oR=null,v}catch(e){if(e===oT||e===oE)throw e;var _=t(29,e,null,c.mode);return _.lanes=p,_.return=c,_}finally{}}}function eA(){for(var e=oU,t=oD=oU=0;ta?a:8);var s=rM.T,o={};rM.T=o,t$(e,!1,t,n);try{var l=r(),u=rM.S;if(null!==u&&u(o,l),null!==l&&"object"==typeof l&&"function"==typeof l.then){var c,h,d=(c=[],h={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},l.then(function(){h.status="fulfilled",h.value=i;for(var e=0;e";case lu:return":has("+(id(e)||"")+")";case lc:return'[role="'+e.value+'"]';case ld:return'"'+e.value+'"';case lh:return'[data-testname="'+e.value+'"]';default:throw Error(i(365))}}function ip(e,t){var n=[];e=[e,0];for(var i=0;ilO&&(t.flags|=128,a=!0,nO(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=eK(s))){if(t.flags|=128,a=!0,t.updateQueue=e=e.updateQueue,nD(t,e),nO(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!ot)return nF(t),null}else 2*sO()-r.renderingStartTime>lO&&0x20000000!==n&&(t.flags|=128,a=!0,nO(r,!1),t.lanes=4194304);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(e=r.last)?e.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=sO(),e.sibling=null,n=oV.current,h(oV,a?1&n|2:1&n),ot&&P(t,r.treeForkCount),e):(nF(t),null);case 22:case 23:return eJ(t),ej(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?(0x20000000&n)!=0&&(128&t.flags)==0&&(nF(t),6&t.subtreeFlags&&(t.flags|=8192)):nF(t),null!==(n=t.updateQueue)&&nD(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&c(oM),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),q(oh),nF(t),null;case 25:case 30:return null}throw Error(i(156,t.tag))}(t.alternate,t,lT);if(null!==n){lv=n;return}if(null!==(t=t.sibling)){lv=t;return}lv=t=e}while(null!==t)0===lw&&(lw=5)}function iD(e,t){do{var n=function(e,t){switch(N(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return q(oh),O(),(65536&(e=t.flags))!=0&&(128&e)==0?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return z(t),null;case 31:if(null!==t.memoizedState){if(eJ(t),null===t.alternate)throw Error(i(340));G()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(eJ(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));G()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return c(oV),null;case 4:return O(),null;case 10:return q(t.type),null;case 22:case 23:return eJ(t),ej(),null!==e&&c(oM),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return q(oh),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lv=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lv=e;return}lv=e=n}while(null!==e)lw=6,lv=null}function iO(e,t,n,r,a,s,o,l,u){e.cancelPendingCommit=null;do iH();while(0!==lB)if((6&lm)!=0)throw Error(i(327));if(null!==t){if(t===e.current)throw Error(i(177));if(function(e,t,n,i,r,a){var s=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,l=e.expirationTimes,u=e.hiddenUpdates;for(n=s&~n;0n?32:n;n=rM.T;var a=rq();try{rX(r),rM.T=null,r=lW,lW=null;var s=lk,o=lV;if(lB=0,lH=lk=null,lV=0,(6&lm)!=0)throw Error(i(331));var l=lm;if(lm|=4,il(s.current),it(s,s.current,o,r),lm=l,es(0,!1),sW&&"function"==typeof sW.onPostCommitFiberRoot)try{sW.onPostCommitFiberRoot(sG,s)}catch{}return!0}finally{rX(a),rM.T=n,ik(e,t)}}function iG(e,t,n){t=R(n,t),t=t9(e.stateNode,t,2),null!==(e=eO(e,t,2))&&(v(e,2),ea(e))}function iW(e,t,n){if(3===e.tag)iG(e,e,n);else for(;null!==t;){if(3===t.tag){iG(t,e,n);break}if(1===t.tag){var i=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof i.componentDidCatch&&(null===lz||!lz.has(i))){e=R(n,e),null!==(i=eO(t,n=t7(2),2))&&(ne(n,i,t,e),v(i,2),ea(i));break}}t=t.return}}function ij(e,t,n){var i=e.pingCache;if(null===i){i=e.pingCache=new lf;var r=new Set;i.set(t,r)}else void 0===(r=i.get(t))&&(r=new Set,i.set(t,r));r.has(n)||(lM=!0,r.add(n),e=iX.bind(null,e,t,n),t.then(e,e))}function iX(e,t,n){var i=e.pingCache;null!==i&&i.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lg===e&&(l_&n)===n&&(4===lw||3===lw&&(0x3c00000&l_)===l_&&300>sO()-lU?(2&lm)==0&&iT(e,0):lC|=n,lP===l_&&(lP=0)),ea(e)}function iq(e,t){0===t&&(t=m()),null!==(e=eP(e,t))&&(v(e,t),ea(e))}function iY(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),iq(e,n)}function iZ(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),iq(e,n)}function iJ(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function iK(e){return!(!(e=e.prototype)||!e.isReactComponent)}function i$(e,n){var i=e.alternate;return null===i?((i=t(e.tag,n,e.key,e.mode)).elementType=e.elementType,i.type=e.type,i.stateNode=e.stateNode,i.alternate=e,e.alternate=i):(i.pendingProps=n,i.type=e.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=0x3e00000&e.flags,i.childLanes=e.childLanes,i.lanes=e.lanes,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,n=e.dependencies,i.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},i.sibling=e.sibling,i.index=e.index,i.ref=e.ref,i.refCleanup=e.refCleanup,i}function iQ(e,t){e.flags&=0x3e00002;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,e.dependencies=null===(t=n.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function i0(e,n,r,a,s,o){var l=0;if(a=e,"function"==typeof e)iK(e)&&(l=1);else if("string"==typeof e)l=si&&sv?sr(e,r,s5.current)?26:sb(e)?27:5:si?sr(e,r,s5.current)?26:5:sv&&sb(e)?27:5;else o:switch(e){case r_:return(e=t(31,r,n,s)).elementType=r_,e.lanes=o,e;case rl:return i1(r.children,s,o,n);case ru:l=8,s|=24;break;case rc:return(e=t(12,r,n,2|s)).elementType=rc,e.lanes=o,e;case rf:return(e=t(13,r,n,s)).elementType=rf,e.lanes=o,e;case rm:return(e=t(19,r,n,s)).elementType=rm,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case rd:l=10;break o;case rh:l=9;break o;case rp:l=11;break o;case rg:l=14;break o;case rv:l=16,a=null;break o}l=29,r=Error(i(130,null===e?"null":typeof e,"")),a=null}return(n=t(l,r,n,s)).elementType=e,n.type=a,n.lanes=o,n}function i1(e,n,i,r){return(e=t(7,e,r,n)).lanes=i,e}function i2(e,n,i){return(e=t(6,e,null,n)).lanes=i,e}function i3(e){var n=t(18,null,null,0);return n.stateNode=e,n}function i4(e,n,i){return(n=t(4,null!==e.children?e.children:[],e.key,n)).lanes=i,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function i5(e,t,n,i,r,a,s,o,l){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=rB,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=g(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=g(0),this.hiddenUpdates=g(null),this.identifierPrefix=i,this.onUncaughtError=r,this.onCaughtError=a,this.onRecoverableError=s,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=l,this.incompleteTransitions=new Map}function i6(e,n,i,r,a,s,o,l,u,c,h,d){return e=new i5(e,n,i,o,u,c,h,d,l),n=1,!0===s&&(n|=24),s=t(3,null,null,n),e.current=s,s.stateNode=e,n=en(),n.refCount++,e.pooledCache=n,n.refCount++,s.memoizedState={element:r,isDehydrated:i,cache:n},eN(s),e}function i8(e){var t=e._reactInternals;if(void 0===t)throw"function"==typeof e.render?Error(i(188)):Error(i(268,e=Object.keys(e).join(",")));return null===(e=null!==(e=s(t))?function e(t){var n=t.tag;if(5===n||26===n||27===n||6===n)return t;for(t=t.child;null!==t;){if(null!==(n=e(t)))return n;t=t.sibling}return null}(e):null)?null:rA(e.stateNode)}function i9(e,t,n,i,r,a){r=sw,null===i.context?i.context=r:i.pendingContext=r,(i=eD(t)).payload={element:n},null!==(a=void 0===a?null:a)&&(i.callback=a),null!==(n=eO(e,i,t))&&(i_(n,e,t),eF(n,e,t))}function i7(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n>>=0)?32:31-(sA(e)/sC|0)|0},sA=Math.log,sC=Math.LN2,sR=256,sP=262144,sI=4194304,sL=ri.unstable_scheduleCallback,sN=ri.unstable_cancelCallback,sU=ri.unstable_shouldYield,sD=ri.unstable_requestPaint,sO=ri.unstable_now,sF=ri.unstable_ImmediatePriority,sz=ri.unstable_UserBlockingPriority,sB=ri.unstable_NormalPriority,sk=ri.unstable_IdlePriority,sH=ri.log,sV=ri.unstable_setDisableYieldValue,sG=null,sW=null,sj="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},sX="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof w.default&&"function"==typeof w.default.emit)return void w.default.emit("uncaughtException",e);console.error(e)},sq=Object.prototype.hasOwnProperty,sY=!1,sZ=new WeakMap,sJ=[],sK=0,s$=null,sQ=0,s0=[],s1=0,s2=null,s3=1,s4="",s5=u(null),s6=u(null),s8=u(null),s9=u(null),s7=null,oe=null,ot=!1,on=null,oi=!1,or=Error(i(519)),oa=u(null),os=null,oo=null,ol="u">typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ou=ri.unstable_scheduleCallback,oc=ri.unstable_NormalPriority,oh={$$typeof:rd,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0},od=null,op=null,of=!1,om=!1,og=!1,ov=0,o_=null,oy=0,ox=0,ob=null,oS=rM.S;rM.S=function(e,t){lD=sO(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e){if(null===o_){var t=o_=[];oy=0,ox=ed(),ob={status:"pending",value:void 0,then:function(e){t.push(e)}}}oy++,e.then(ep,ep)}(t),null!==oS&&oS(e,t)};var oM=u(null),oT=Error(i(460)),ow=Error(i(474)),oE=Error(i(542)),oA={then:function(){}},oC=null,oR=null,oP=0,oI=eE(!0),oL=eE(!1),oN=[],oU=0,oD=0,oO=!1,oF=!1,oz=u(null),oB=u(0),ok=u(null),oH=null,oV=u(0),oG=0,oW=null,oj=null,oX=null,oq=!1,oY=!1,oZ=!1,oJ=0,oK=0,o$=null,oQ=0,o0={readContext:Q,use:tt,useCallback:e$,useContext:e$,useEffect:e$,useImperativeHandle:e$,useLayoutEffect:e$,useInsertionEffect:e$,useMemo:e$,useReducer:e$,useRef:e$,useState:e$,useDebugValue:e$,useDeferredValue:e$,useTransition:e$,useSyncExternalStore:e$,useId:e$,useHostTransitionStatus:e$,useFormState:e$,useActionState:e$,useOptimistic:e$,useMemoCache:e$,useCacheRefresh:e$};o0.useEffectEvent=e$;var o1={readContext:Q,use:tt,useCallback:function(e,t){return e8().memoizedState=[e,void 0===t?null:t],e},useContext:Q,useEffect:tI,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,tR(4194308,4,tO.bind(null,t,e),n)},useLayoutEffect:function(e,t){return tR(4194308,4,e,t)},useInsertionEffect:function(e,t){tR(4,2,e,t)},useMemo:function(e,t){var n=e8();t=void 0===t?null:t;var i=e();return n.memoizedState=[i,t],i},useReducer:function(e,t,n){var i=e8();if(void 0!==n)var r=n(t);else r=t;return i.memoizedState=i.baseState=r,i.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:r},e=e.dispatch=tZ.bind(null,oW,e),[i.memoizedState,e]},useRef:function(e){return e8().memoizedState={current:e}},useState:function(e){var t=(e=tp(e)).queue,n=tJ.bind(null,oW,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:tz,useDeferredValue:function(e,t){return tH(e8(),e,t)},useTransition:function(){var e=tp(!1);return e=tG.bind(null,oW,e.queue,!0,!1),e8().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=oW,a=e8();if(ot){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===lg)throw Error(i(349));(127&l_)!=0||tl(r,t,n)}a.memoizedState=n;var s={value:n,getSnapshot:t};return a.queue=s,tI(tc.bind(null,r,s,e),[e]),r.flags|=2048,tA(9,{destroy:void 0},tu.bind(null,r,s,n,t),null),n},useId:function(){var e=e8(),t=lg.identifierPrefix;if(ot){var n=s4,i=s3;t="_"+t+"R_"+(n=(i&~(1<<32-sE(i)-1)).toString(32)+n),0<(n=oJ++)&&(t+="H"+n.toString(32)),t+="_"}else t="_"+t+"r_"+(n=oQ++).toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:tj,useFormState:tS,useActionState:tS,useOptimistic:function(e){var t=e8();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=t$.bind(null,oW,!0,n),n.dispatch=t,[e,t]},useMemoCache:tn,useCacheRefresh:function(){return e8().memoizedState=tY.bind(null,oW)},useEffectEvent:function(e){var t=e8(),n={impl:e};return t.memoizedState=n,function(){if((2&lm)!=0)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},o2={readContext:Q,use:tt,useCallback:tB,useContext:Q,useEffect:tL,useImperativeHandle:tF,useInsertionEffect:tU,useLayoutEffect:tD,useMemo:tk,useReducer:tr,useRef:tC,useState:function(){return tr(ti)},useDebugValue:tz,useDeferredValue:function(e,t){return tV(e9(),oj.memoizedState,e,t)},useTransition:function(){var e=tr(ti)[0],t=e9().memoizedState;return["boolean"==typeof e?e:te(e),t]},useSyncExternalStore:to,useId:tX,useHostTransitionStatus:tj,useFormState:tM,useActionState:tM,useOptimistic:function(e,t){return tf(e9(),oj,e,t)},useMemoCache:tn,useCacheRefresh:tq};o2.useEffectEvent=tN;var o3={readContext:Q,use:tt,useCallback:tB,useContext:Q,useEffect:tL,useImperativeHandle:tF,useInsertionEffect:tU,useLayoutEffect:tD,useMemo:tk,useReducer:ts,useRef:tC,useState:function(){return ts(ti)},useDebugValue:tz,useDeferredValue:function(e,t){var n=e9();return null===oj?tH(n,e,t):tV(n,oj.memoizedState,e,t)},useTransition:function(){var e=ts(ti)[0],t=e9().memoizedState;return["boolean"==typeof e?e:te(e),t]},useSyncExternalStore:to,useId:tX,useHostTransitionStatus:tj,useFormState:tE,useActionState:tE,useOptimistic:function(e,t){var n=e9();return null!==oj?tf(n,oj,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:tn,useCacheRefresh:tq};o3.useEffectEvent=tN;var o4={enqueueSetState:function(e,t,n){e=e._reactInternals;var i=ig(),r=eD(i);r.payload=t,null!=n&&(r.callback=n),null!==(t=eO(e,r,i))&&(i_(t,e,i),eF(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var i=ig(),r=eD(i);r.tag=1,r.payload=t,null!=n&&(r.callback=n),null!==(t=eO(e,r,i))&&(i_(t,e,i),eF(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ig(),i=eD(n);i.tag=2,null!=t&&(i.callback=t),null!==(t=eO(e,i,n))&&(i_(t,e,n),eF(t,e,n))}},o5=Error(i(461)),o6=!1,o8={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null},o9=!1,o7=!1,le=!1,lt="function"==typeof WeakSet?WeakSet:Set,ln=null,li=null,lr=!1,la=null,ls=8192,lo={getCacheForType:function(e){var t=Q(oh),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Q(oh).controller.signal}},ll=0,lu=1,lc=2,lh=3,ld=4;if("function"==typeof Symbol&&Symbol.for){var lp=Symbol.for;ll=lp("selector.component"),lu=lp("selector.has_pseudo_class"),lc=lp("selector.role"),lh=lp("selector.test_id"),ld=lp("selector.text")}var lf="function"==typeof WeakMap?WeakMap:Map,lm=0,lg=null,lv=null,l_=0,ly=0,lx=null,lb=!1,lS=!1,lM=!1,lT=0,lw=0,lE=0,lA=0,lC=0,lR=0,lP=0,lI=null,lL=null,lN=!1,lU=0,lD=0,lO=1/0,lF=null,lz=null,lB=0,lk=null,lH=null,lV=0,lG=0,lW=null,lj=null,lX=0,lq=null;return rt.attemptContinuousHydration=function(e){if(13===e.tag||31===e.tag){var t=eP(e,0x4000000);null!==t&&i_(t,e,0x4000000),re(e,0x4000000)}},rt.attemptHydrationAtCurrentPriority=function(e){if(13===e.tag||31===e.tag){var t=ig(),n=eP(e,t=b(t));null!==n&&i_(n,e,t),re(e,t)}},rt.attemptSynchronousHydration=function(e){switch(e.tag){case 3:if((e=e.stateNode).current.memoizedState.isDehydrated){var t=d(e.pendingLanes);if(0!==t){for(e.pendingLanes|=2,e.entangledLanes|=2;t;){var n=1<<31-sE(t);e.entanglements[1]|=n,t&=~n}ea(e),(6&lm)==0&&(lO=sO()+500,es(0,!1))}}break;case 31:case 13:null!==(t=eP(e,2))&&i_(t,e,2),iS(),re(e,2)}},rt.batchedUpdates=function(e,t){return e(t)},rt.createComponentSelector=function(e){return{$$typeof:ll,value:e}},rt.createContainer=function(e,t,n,i,r,a,s,o,l,u){return i6(e,t,!1,null,n,i,a,null,s,o,l,u)},rt.createHasPseudoClassSelector=function(e){return{$$typeof:lu,value:e}},rt.createHydrationContainer=function(e,t,n,i,r,a,s,o,l,u,c,h,d,p){var f;return(e=i6(n,i,!0,e,r,a,o,p,l,u,c,h)).context=sw,n=e.current,(r=eD(i=b(i=ig()))).callback=null!=(f=t)?f:null,eO(n,r,i),t=i,e.current.lanes=t,v(e,t),ea(e),e},rt.createPortal=function(e,t,n){var i=3=c&&s>=d&&a<=h&&o<=p){e.splice(t,1);break}if(r!==c||n.width!==u.width||po){if(!(s!==d||n.height!==u.height||ha)){c>r&&(u.width+=c-r,u.x=r),hs&&(u.height+=d-s,u.y=s),pn&&(n=l)),l ")+` + +No matching component was found for: + `+e.join(" > ")}return null},rt.getPublicRootInstance=function(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 27:case 5:return rA(e.child.stateNode);default:return e.child.stateNode}},rt.injectIntoDevTools=function(){var e={bundleType:0,version:rT,rendererPackageName:rw,currentDispatcherRef:rM,reconcilerVersion:"19.2.0"};if(null!==rE&&(e.rendererConfig=rE),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)e=!0;else{try{sG=t.inject(e),sW=t}catch{}e=!!t.checkDCE}}return e},rt.isAlreadyRendering=function(){return(6&lm)!=0},rt.observeVisibleRects=function(e,t,n,r){if(!r7)throw Error(i(363));var a=as(e=im(e,t),n,r).disconnect;return{disconnect:function(){a()}}},rt.shouldError=function(){return null},rt.shouldSuspend=function(){return!1},rt.startHostTransition=function(e,t,r,a){if(5!==e.tag)throw Error(i(476));var s=tW(e).queue;tG(e,s,t,r4,null===r?n:function(){var t=tW(e);return null===t.next&&(t=e.alternate.memoizedState),tK(e,t.next.queue,{},ig()),r(a)})},rt.updateContainer=function(e,t,n,i){var r=t.current,a=ig();return i9(r,a,e,t,n,i),a},rt.updateContainerSync=function(e,t,n,i){return i9(t.current,2,e,t,n,i),2},rt},cG.exports.default=cG.exports,Object.defineProperty(cG.exports,"__esModule",{value:!0})),cV.exports=cG.exports),(b=cV.exports)&&b.__esModule&&Object.prototype.hasOwnProperty.call(b,"default"))?b.default:b,cj={},cX=/^three(?=[A-Z])/,cq=e=>`${e[0].toUpperCase()}${e.slice(1)}`,cY=0;function cZ(e){if("function"==typeof e){let t=`${cY++}`;return cj[t]=e,t}Object.assign(cj,e)}function cJ(e,t){let n=cq(e),i=cj[n];if("primitive"!==e&&!i)throw Error(`R3F: ${n} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if("primitive"===e&&!t.object)throw Error("R3F: Primitives without 'object' are invalid!");if(void 0!==t.args&&!Array.isArray(t.args))throw Error("R3F: The args prop must be an array!")}function cK(e){if(e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?cS(e.parent,e):cI(e.object)&&!1!==e.props.visible&&(e.object.visible=!0),e.isHidden=!1,cR(e)}}function c$(e,t,n){let i=t.root.getState();if(e.parent||e.object===i.scene){if(!t.object){var r,a;let e=cj[cq(t.type)];t.object=null!=(r=t.props.object)?r:new e(...null!=(a=t.props.args)?a:[]),t.object.__r3f=t}if(cC(t.object,t.props),t.props.attach)cS(e,t);else if(cI(t.object)&&cI(e.object)){let i=e.object.children.indexOf(null==n?void 0:n.object);if(n&&-1!==i){let n=e.object.children.indexOf(t.object);-1!==n?(e.object.children.splice(n,1),e.object.children.splice(n{try{e.dispose()}catch{}};"u">typeof IS_REACT_ACT_ENVIRONMENT?t():(0,u8.unstable_scheduleCallback)(u8.unstable_IdlePriority,t)}}function c2(e,t,n){if(!t)return;t.parent=null;let i=e.children.indexOf(t);-1!==i&&e.children.splice(i,1),t.props.attach?cM(e,t):cI(t.object)&&cI(e.object)&&(e.object.remove(t.object),function(e,t){let{internal:n}=e.getState();n.interaction=n.interaction.filter(e=>e!==t),n.initialHits=n.initialHits.filter(e=>e!==t),n.hovered.forEach((e,i)=>{(e.eventObject===t||e.object===t)&&n.hovered.delete(i)}),n.capturedMap.forEach((e,i)=>{cN(n.capturedMap,t,e,i)})}(co(t),t.object));let r=null!==t.props.dispose&&!1!==n;for(let e=t.children.length-1;e>=0;e--){let n=t.children[e];c2(t,n,r)}t.children.length=0,delete t.object.__r3f,r&&"primitive"!==t.type&&"Scene"!==t.object.type&&c1(t.object),void 0===n&&cR(t)}let c3=[],c4=()=>{},c5={},c6=0,c8=(S={isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:function(e,t,n){var i;return cJ(e=cq(e)in cj?e:e.replace(cX,""),t),"primitive"===e&&null!=(i=t.object)&&i.__r3f&&delete t.object.__r3f,cy(t.object,n,e,t)},removeChild:c2,appendChild:cQ,appendInitialChild:cQ,insertBefore:c0,appendChildToContainer(e,t){let n=e.getState().scene.__r3f;t&&n&&cQ(n,t)},removeChildFromContainer(e,t){let n=e.getState().scene.__r3f;t&&n&&c2(n,t)},insertInContainerBefore(e,t,n){let i=e.getState().scene.__r3f;t&&n&&i&&c0(i,t,n)},getRootHostContext:()=>c5,getChildHostContext:()=>c5,commitUpdate(e,t,n,i,r){var a,s,o;cJ(t,i);let l=!1;if("primitive"===e.type&&n.object!==i.object||(null==(a=i.args)?void 0:a.length)!==(null==(s=n.args)?void 0:s.length)?l=!0:null!=(o=i.args)&&o.some((e,t)=>{var i;return e!==(null==(i=n.args)?void 0:i[t])})&&(l=!0),l)c3.push([e,{...i},r]);else{let t=function(e,t){let n={};for(let i in t)if(!cT.includes(i)&&!cv.equ(t[i],e.props[i]))for(let e in n[i]=t[i],t)e.startsWith(`${i}-`)&&(n[e]=t[e]);for(let i in e.props){if(cT.includes(i)||t.hasOwnProperty(i))continue;let{root:r,key:a}=cx(e.object,i);if(r.constructor&&0===r.constructor.length){let e=function(e){let t=cw.get(e.constructor);try{t||(t=new e.constructor,cw.set(e.constructor,t))}catch(e){}return t}(r);cv.und(e)||(n[a]=e[a])}else n[a]=0}return n}(e,i);Object.keys(t).length&&(Object.assign(e.props,t),cC(e.object,t))}(null===r.sibling||(4&r.flags)==0)&&function(){for(let[e]of c3){let t=e.parent;if(t)for(let n of(e.props.attach?cM(t,e):cI(e.object)&&cI(t.object)&&t.object.remove(e.object),e.children))n.props.attach?cM(e,n):cI(n.object)&&cI(e.object)&&e.object.remove(n.object);e.isHidden&&cK(e),e.object.__r3f&&delete e.object.__r3f,"primitive"!==e.type&&c1(e.object)}for(let[i,r,a]of c3){i.props=r;let s=i.parent;if(s){let r=cj[cq(i.type)],o=i.object;i.object=null!=(e=i.props.object)?e:new r(...null!=(t=i.props.args)?t:[]),i.object.__r3f=i;var e,t,n=i.object;for(let e of[a,a.alternate])if(null!==e)if("function"==typeof e.ref){null==e.refCleanup||e.refCleanup();let t=e.ref(n);"function"==typeof t&&(e.refCleanup=t)}else e.ref&&(e.ref.current=n);for(let e of(!function(e,t,n){let{internal:i}=e.getState();for(let e=0;e{if(e.eventObject===t||e.object===t){i.hovered.delete(r);let a={...e,eventObject:e.eventObject===t?n:e.eventObject,object:e.object===t?n:e.object};i.hovered.set(cL(a),a)}}),i.capturedMap.forEach(e=>{let i=e.get(t);i&&(e.delete(t),e.set(n,i))})}(co(i),o,i.object),cC(i.object,i.props),i.props.attach?cS(s,i):cI(i.object)&&cI(s.object)&&s.object.add(i.object),i.children))e.props.attach?cS(i,e):cI(e.object)&&cI(i.object)&&i.object.add(e.object);cR(i)}}c3.length=0}()},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:e=>null==e?void 0:e.object,prepareForCommit:()=>null,preparePortalMount:e=>cy(e.getState().scene,e,"",{}),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:function(e){if(!e.isHidden){var t;e.props.attach&&null!=(t=e.parent)&&t.object?cM(e.parent,e):cI(e.object)&&(e.object.visible=!1),e.isHidden=!0,cR(e)}},unhideInstance:cK,createTextInstance:c4,hideTextInstance:c4,unhideTextInstance:c4,scheduleTimeout:"function"==typeof setTimeout?setTimeout:void 0,cancelTimeout:"function"==typeof clearTimeout?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:E.createContext(null),setCurrentUpdatePriority(e){c6=e},getCurrentUpdatePriority:()=>c6,resolveUpdatePriority(){var e;if(0!==c6)return c6;switch("u">typeof window&&(null==(e=window.event)?void 0:e.type)){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return 2;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return 8;default:return 32}},resetFormInstance(){},rendererPackageName:"@react-three/fiber",rendererVersion:"9.6.1",applyViewTransitionName(e,t,n){},restoreViewTransitionName(e,t){},cancelViewTransitionName(e,t,n){},cancelRootViewTransitionName(e){},restoreRootViewTransitionName(e){},InstanceMeasurement:null,measureInstance:e=>null,wasInstanceInViewport:e=>!0,hasInstanceChanged:(e,t)=>!1,hasInstanceAffectedParent:(e,t)=>!1,suspendOnActiveViewTransition(e,t){},startGestureTransition:()=>null,startViewTransition:()=>null,stopViewTransition(e){},createViewTransitionInstance:e=>null,getCurrentGestureOffset(e){throw Error("startGestureTransition is not yet supported in react-three-fiber.")},cloneMutableInstance:(e,t)=>e,cloneMutableTextInstance:e=>e,cloneRootViewTransitionContainer(e){throw Error("Not implemented.")},removeRootViewTransitionClone(e,t){throw Error("Not implemented.")},createFragmentInstance:e=>null,updateFragmentInstanceFiber(e,t){},commitNewChildToFragmentInstance(e,t){},deleteChildFromFragmentInstance(e,t){},measureClonedInstance:e=>null,maySuspendCommitOnUpdate:(e,t,n)=>!1,maySuspendCommitInSyncRender:(e,t)=>!1,startSuspendingCommit:()=>null,getSuspendedCommitReason:(e,t)=>null},(_=cW(S)).injectIntoDevTools(),_),c9=new Map,c7={objects:"shallow",strict:!1};function he(e){var t,n;let i,r,a,s,o,l,u,c=c9.get(e),h=null==c?void 0:c.fiber,d=null==c?void 0:c.store;c&&console.warn("R3F.createRoot should only be called once!");let p="function"==typeof reportError?reportError:console.error,f=d||(t=hp,n=hf,o=(s=(a=u3((e,i)=>{let r,a=new eE,s=new eE,o=new eE;function l(e=i().camera,t=s,n=i().size){let{width:r,height:u,top:c,left:h}=n,d=r/u;t.isVector3?o.copy(t):o.set(...t);let p=e.getWorldPosition(a).distanceTo(o);if(e&&e.isOrthographicCamera)return{width:r/e.zoom,height:u/e.zoom,top:c,left:h,factor:1,distance:p,aspect:d};{let t=2*Math.tan(e.fov*Math.PI/180/2)*p,n=r/u*t;return{width:n,height:t,top:c,left:h,factor:r/n,distance:p,aspect:d}}}let u=t=>e(e=>({performance:{...e.performance,current:t}})),c=new Y;return{set:e,get:i,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(e=1)=>t(i(),e),advance:(e,t)=>n(e,t,i()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new sw,pointer:c,mouse:c,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{let e=i();r&&clearTimeout(r),e.performance.current!==e.performance.min&&u(e.performance.min),r=setTimeout(()=>u(i().performance.max),e.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:l},setEvents:t=>e(e=>({...e,events:{...e.events,...t}})),setSize:(t,n,r=0,a=0)=>{let o=i().camera,u={width:t,height:n,top:r,left:a};e(e=>({size:u,viewport:{...e.viewport,...l(o,s,u)}}))},setDpr:t=>e(e=>{let n=cm(t);return{viewport:{...e.viewport,dpr:n,initialDpr:e.viewport.initialDpr||n}}}),setFrameloop:(t="always")=>{let n=i().clock;n.stop(),n.elapsedTime=0,"never"!==t&&(n.start(),n.elapsedTime=0),e(()=>({frameloop:t}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:E.createRef(),active:!1,frames:0,priority:0,subscribe:(e,t,n)=>{let r=i().internal;return r.priority=r.priority+ +(t>0),r.subscribers.push({ref:e,priority:t,store:n}),r.subscribers=r.subscribers.sort((e,t)=>e.priority-t.priority),()=>{let n=i().internal;null!=n&&n.subscribers&&(n.priority=n.priority-(t>0),n.subscribers=n.subscribers.filter(t=>t.ref!==e))}}}}})).getState()).size,l=s.viewport.dpr,u=s.camera,a.subscribe(()=>{let{camera:e,size:t,viewport:n,gl:i,set:r}=a.getState();if(t.width!==o.width||t.height!==o.height||n.dpr!==l){o=t,l=n.dpr,cP(e,t),n.dpr>0&&i.setPixelRatio(n.dpr);let r="u">typeof HTMLCanvasElement&&i.domElement instanceof HTMLCanvasElement;i.setSize(t.width,t.height,r)}e!==u&&(u=e,r(t=>({viewport:{...t.viewport,...t.viewport.getCurrentViewport(e)}})))}),a.subscribe(e=>t(e)),a),m=h||c8.createContainer(f,1,null,!1,null,"",p,p,p,null);c||c9.set(e,{fiber:m,store:f});let g=!1,v=null;return{async configure(t={}){var n,a;let s;v=new Promise(e=>s=e);let{gl:o,size:l,scene:u,events:c,onCreated:h,shadows:d=!1,linear:p=!1,flat:m=!1,legacy:_=!1,orthographic:y=!1,frameloop:x="always",dpr:b=[1,2],performance:S,raycaster:M,camera:T,onPointerMissed:w}=t,E=f.getState(),A=E.gl;if(!E.gl){let t={canvas:e,powerPreference:"high-performance",antialias:!0,alpha:!0},n="function"==typeof o?await o(t):o;A=cU(n)?n:new uK({...t,...o}),E.set({gl:A})}let C=E.raycaster;C||E.set({raycaster:C=new s3});let{params:R,...P}=M||{};if(cv.equ(P,C,c7)||cC(C,{...P}),cv.equ(R,C.params,c7)||cC(C,{params:{...C.params,...R}}),!E.camera||E.camera===r&&!cv.equ(r,T,c7)){r=T;let e=null==T?void 0:T.isCamera,t=e?T:y?new sn(0,0,0,0,.1,1e3):new nE(75,0,.1,1e3);!e&&(t.position.z=5,T&&(cC(t,T),!t.manual&&("aspect"in T||"left"in T||"right"in T||"bottom"in T||"top"in T)&&(t.manual=!0,t.updateProjectionMatrix())),E.camera||null!=T&&T.rotation||t.lookAt(0,0,0)),E.set({camera:t}),C.camera=t}if(!E.scene){let e;null!=u&&u.isScene?cy(e=u,f,"",{}):(cy(e=new nL,f,"",{}),u&&cC(e,u)),E.set({scene:e})}c&&!E.events.handlers&&E.set({events:c(f)});let N=function(e,t){if(!t&&"u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&e.parentElement){let{width:t,height:n,top:i,left:r}=e.parentElement.getBoundingClientRect();return{width:t,height:n,top:i,left:r}}return!t&&"u">typeof OffscreenCanvas&&e instanceof OffscreenCanvas?{width:e.width,height:e.height,top:0,left:0}:{width:0,height:0,top:0,left:0,...t}}(e,l);if(cv.equ(N,E.size,c7)||E.setSize(N.width,N.height,N.top,N.left),b&&E.viewport.dpr!==cm(b)&&E.setDpr(b),E.frameloop!==x&&E.setFrameloop(x),E.onPointerMissed||E.set({onPointerMissed:w}),S&&!cv.equ(S,E.performance,c7)&&E.set(e=>({performance:{...e.performance,...S}})),!E.xr){let e=(e,t)=>{let n=f.getState();"never"!==n.frameloop&&hf(e,!0,n,t)},t=()=>{let t=f.getState();t.gl.xr.enabled=t.gl.xr.isPresenting,t.gl.xr.setAnimationLoop(t.gl.xr.isPresenting?e:null),t.gl.xr.isPresenting||hp(t)},i={connect(){let e=f.getState().gl;e.xr.addEventListener("sessionstart",t),e.xr.addEventListener("sessionend",t)},disconnect(){let e=f.getState().gl;e.xr.removeEventListener("sessionstart",t),e.xr.removeEventListener("sessionend",t)}};"function"==typeof(null==(n=A.xr)?void 0:n.addEventListener)&&i.connect(),E.set({xr:i})}if(A.shadowMap){let e=A.shadowMap.enabled,t=A.shadowMap.type;A.shadowMap.enabled=!!d,cv.boo(d)?A.shadowMap.type=2:cv.str(d)?A.shadowMap.type=null!=(a=({basic:0,percentage:1,soft:2,variance:3})[d])?a:2:cv.obj(d)&&Object.assign(A.shadowMap,d),(e!==A.shadowMap.enabled||t!==A.shadowMap.type)&&(A.shadowMap.needsUpdate=!0)}return eu.enabled=!_,g||(A.outputColorSpace=p?L:I,A.toneMapping=4*!m),E.legacy!==_&&E.set(()=>({legacy:_})),E.linear!==p&&E.set(()=>({linear:p})),E.flat!==m&&E.set(()=>({flat:m})),!o||cv.fun(o)||cU(o)||cv.equ(o,A,c7)||cC(A,o),i=h,g=!0,s(),this},render(t){return g||v||this.configure(),v.then(()=>{c8.updateContainer((0,u9.jsx)(ht,{store:f,children:t,onCreated:i,rootElement:e}),m,null,()=>void 0)}),f},unmount(){hn(e)}}}function ht({store:e,children:t,onCreated:n,rootElement:i}){return cc(()=>{let t=e.getState();t.set(e=>({internal:{...e.internal,active:!0}})),n&&n(t),e.getState().events.connected||null==t.events.connect||t.events.connect(i)},[]),(0,u9.jsx)(cD.Provider,{value:e,children:t})}function hn(e,t){let n=c9.get(e),i=null==n?void 0:n.fiber;if(i){let r=null==n?void 0:n.store.getState();r&&(r.internal.active=!1),c8.updateContainer(null,i,null,()=>{r&&setTimeout(()=>{try{null==r.events.disconnect||r.events.disconnect(),null==(n=r.gl)||null==(i=n.renderLists)||null==i.dispose||i.dispose(),null==(a=r.gl)||null==a.forceContextLoss||a.forceContextLoss(),null!=(s=r.gl)&&s.xr&&r.xr.disconnect();var n,i,a,s,o=r.scene;for(let e in"Scene"!==o.type&&(null==o.dispose||o.dispose()),o){let t=o[e];(null==t?void 0:t.type)!=="Scene"&&(null==t||null==t.dispose||t.dispose())}c9.delete(e),t&&t(e)}catch(e){}},500)})}}function hi({state:e={},children:t,container:n}){let{events:i,size:r,...a}=e,s=cO(),[o]=E.useState(()=>new s3),[l]=E.useState(()=>new Y),u=ch((e,t)=>{let a;if(t.camera&&r){let n=t.camera;a=e.viewport.getCurrentViewport(n,new eE,r),n!==e.camera&&cP(n,r)}return{...e,...t,scene:n,raycaster:o,pointer:l,mouse:l,previousRoot:s,events:{...e.events,...t.events,...i},size:{...e.size,...r},viewport:{...e.viewport,...a},setEvents:e=>t.set(t=>({...t,events:{...t.events,...e}}))}}),c=E.useMemo(()=>{let e=u3((e,t)=>({...a,set:e,get:t})),t=t=>e.setState(e=>u.current(t,e));return t(s.getState()),s.subscribe(t),e},[s,n]);return(0,u9.jsx)(u9.Fragment,{children:c8.createPortal((0,u9.jsx)(cD.Provider,{value:c,children:t}),c,null)})}let hr=new Set,ha=new Set,hs=new Set;function ho(e,t){if(e.size)for(let{callback:n}of e.values())n(t)}function hl(e,t){switch(e){case"before":return ho(hr,t);case"after":return ho(ha,t);case"tail":return ho(hs,t)}}function hu(e,t,n){let i=t.clock.getDelta();"never"===t.frameloop&&"number"==typeof e&&(i=e-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=e),s=t.internal.subscribers;for(let e=0;e0)&&!(null!=(t=c.gl.xr)&&t.isPresenting)&&(l+=hu(e,c))}if(hh=!1,hl("after",e),0===l)return hl("tail",e),hc=!1,cancelAnimationFrame(u)}function hp(e,t=1){var n;if(!e)return c9.forEach(e=>hp(e.store.getState(),t));(null==(n=e.gl.xr)||!n.isPresenting)&&e.internal.active&&"never"!==e.frameloop&&(t>1?e.internal.frames=Math.min(60,e.internal.frames+t):hh?e.internal.frames=2:e.internal.frames=1,hc||(hc=!0,requestAnimationFrame(hd)))}function hf(e,t=!0,n,i){if(t&&hl("before",e),n)hu(e,n,i);else for(let t of c9.values())hu(e,t.store.getState());t&&hl("after",e)}let hm={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function hg(e){let{handlePointer:t}=function(e){function t(e){return e.filter(e=>["Move","Over","Enter","Out","Leave"].some(t=>{var n;return null==(n=e.__r3f)?void 0:n.handlers["onPointer"+t]}))}function n(t){let{internal:n}=e.getState();for(let e of n.hovered.values())if(!t.length||!t.find(t=>t.object===e.object&&t.index===e.index&&t.instanceId===e.instanceId)){let i=e.eventObject.__r3f;if(n.hovered.delete(cL(e)),null!=i&&i.eventCount){let n=i.handlers,r={...e,intersections:t};null==n.onPointerOut||n.onPointerOut(r),null==n.onPointerLeave||n.onPointerLeave(r)}}}function i(e,t){for(let n=0;nn([]);case"onLostPointerCapture":return t=>{let{internal:i}=e.getState();"pointerId"in t&&i.capturedMap.has(t.pointerId)&&requestAnimationFrame(()=>{i.capturedMap.has(t.pointerId)&&(i.capturedMap.delete(t.pointerId),n([]))})}}return function(a){let{onPointerMissed:s,internal:o}=e.getState();o.lastEvent.current=a;let l="onPointerMove"===r,u="onClick"===r||"onContextMenu"===r||"onDoubleClick"===r,c=function(t,n){let i=e.getState(),r=new Set,a=[],s=n?n(i.internal.interaction):i.internal.interaction;for(let e=0;e{let n=cg(e.object),i=cg(t.object);return n&&i&&i.events.priority-n.events.priority||e.distance-t.distance}).filter(e=>{let t=cL(e);return!r.has(t)&&(r.add(t),!0)});for(let e of(i.events.filter&&(o=i.events.filter(o,i)),o)){let t=e.object;for(;t;){var l;null!=(l=t.__r3f)&&l.eventCount&&a.push({...e,eventObject:t}),t=t.parent}}if("pointerId"in t&&i.internal.capturedMap.has(t.pointerId))for(let e of i.internal.capturedMap.get(t.pointerId).values())r.has(cL(e.intersection))||a.push(e.intersection);return a}(a,l?t:void 0),h=u?function(t){let{internal:n}=e.getState(),i=t.offsetX-n.initialClick[0],r=t.offsetY-n.initialClick[1];return Math.round(Math.sqrt(i*i+r*r))}(a):0;"onPointerDown"===r&&(o.initialClick=[a.offsetX,a.offsetY],o.initialHits=c.map(e=>e.eventObject)),u&&!c.length&&h<=2&&(i(a,o.interaction),s&&s(a)),l&&n(c),!function(e,t,i,r){if(e.length){let a={stopped:!1};for(let s of e){let o=cg(s.object);if(o||s.object.traverseAncestors(e=>{let t=cg(e);if(t)return o=t,!1}),o){let{raycaster:l,pointer:u,camera:c,internal:h}=o,d=new eE(u.x,u.y,0).unproject(c),p=e=>{var t,n;return null!=(t=null==(n=h.capturedMap.get(e))?void 0:n.has(s.eventObject))&&t},f=e=>{let n={intersection:s,target:t.target};h.capturedMap.has(e)?h.capturedMap.get(e).set(s.eventObject,n):h.capturedMap.set(e,new Map([[s.eventObject,n]])),t.target.setPointerCapture(e)},m=e=>{let t=h.capturedMap.get(e);t&&cN(h.capturedMap,s.eventObject,t,e)},g={};for(let e in t){let n=t[e];"function"!=typeof n&&(g[e]=n)}let v={...s,...g,pointer:u,intersections:e,stopped:a.stopped,delta:i,unprojectedPoint:d,ray:l.ray,camera:c,stopPropagation(){let i="pointerId"in t&&h.capturedMap.get(t.pointerId);(!i||i.has(s.eventObject))&&(v.stopped=a.stopped=!0,h.hovered.size&&Array.from(h.hovered.values()).find(e=>e.eventObject===s.eventObject)&&n([...e.slice(0,e.indexOf(s)),s]))},target:{hasPointerCapture:p,setPointerCapture:f,releasePointerCapture:m},currentTarget:{hasPointerCapture:p,setPointerCapture:f,releasePointerCapture:m},nativeEvent:t};if(r(v),!0===a.stopped)break}}}}(c,a,h,function(e){let t=e.eventObject,n=t.__r3f;if(!(null!=n&&n.eventCount))return;let s=n.handlers;if(l){if(s.onPointerOver||s.onPointerEnter||s.onPointerOut||s.onPointerLeave){let t=cL(e),n=o.hovered.get(t);n?n.stopped&&e.stopPropagation():(o.hovered.set(t,e),null==s.onPointerOver||s.onPointerOver(e),null==s.onPointerEnter||s.onPointerEnter(e))}null==s.onPointerMove||s.onPointerMove(e)}else{let n=s[r];n?(!u||o.initialHits.includes(t))&&(i(a,o.interaction.filter(e=>!o.initialHits.includes(e))),n(e)):u&&o.initialHits.includes(t)&&i(a,o.interaction.filter(e=>!o.initialHits.includes(e)))}})}}}}(e);return{priority:1,enabled:!0,compute(e,t,n){t.pointer.set(e.offsetX/t.size.width*2-1,-(2*(e.offsetY/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)},connected:void 0,handlers:Object.keys(hm).reduce((e,n)=>({...e,[n]:t(n)}),{}),update:()=>{var t;let{events:n,internal:i}=e.getState();null!=(t=i.lastEvent)&&t.current&&n.handlers&&n.handlers.onPointerMove(i.lastEvent.current)},connect:t=>{let{set:n,events:i}=e.getState();if(null==i.disconnect||i.disconnect(),n(e=>({events:{...e.events,connected:t}})),i.handlers)for(let e in i.handlers){let n=i.handlers[e],[r,a]=hm[e];t.addEventListener(r,n,{passive:a})}},disconnect:()=>{let{set:t,events:n}=e.getState();if(n.connected){if(n.handlers)for(let e in n.handlers){let t=n.handlers[e],[i]=hm[e];n.connected.removeEventListener(i,t)}t(e=>({events:{...e.events,connected:void 0}}))}}}}e.s(["B",0,cp,"C",0,cF,"D",0,cz,"E",0,cf,"G",0,cH,"a",0,ch,"b",0,cc,"c",0,he,"d",0,hn,"e",0,cZ,"f",0,hg,"i",0,cl,"o",0,function(e,t,n){return(0,u9.jsx)(hi,{children:e,container:t,state:n})},"s",0,cC,"u",0,cd],1950),e.i(8560),e.s(["ACESFilmicToneMapping",0,4,"AddEquation",0,100,"AddOperation",0,2,"AdditiveAnimationBlendMode",0,2501,"AdditiveBlending",0,2,"AgXToneMapping",0,6,"AlphaFormat",0,1021,"AlwaysCompare",0,519,"AlwaysDepth",0,1,"AlwaysStencilFunc",0,519,"AmbientLight",0,sa,"AnimationAction",0,sY,"AnimationClip",0,aB,"AnimationLoader",0,aq,"AnimationMixer",0,sJ,"AnimationObjectGroup",0,sq,"AnimationUtils",0,aE,"ArcCurve",0,rs,"ArrayCamera",0,sT,"ArrowHelper",0,oP,"AttachedBindMode",0,R,"Audio",0,sL,"AudioAnalyser",0,sz,"AudioContext",0,s_,"AudioListener",0,sI,"AudioLoader",0,sy,"AxesHelper",0,oI,"BackSide",0,1,"BasicDepthPacking",0,3200,"BasicShadowMap",0,0,"BatchedMesh",0,iz,"Bone",0,ie,"BooleanKeyframeTrack",0,aL,"Box2",0,oe,"Box3",0,eR,"Box3Helper",0,oA,"BoxGeometry",0,ng,"BoxHelper",0,oE,"BufferAttribute",0,tZ,"BufferGeometry",0,nn,"BufferGeometryLoader",0,sd,"ByteType",0,1010,"Cache",0,ak,"Camera",0,nS,"CameraHelper",0,oM,"CanvasTexture",0,rn,"CapsuleGeometry",0,rA,"CatmullRomCurve3",0,rd,"CineonToneMapping",0,3,"CircleGeometry",0,rC,"ClampToEdgeWrapping",0,1001,"Clock",0,sw,"Color",0,tz,"ColorKeyframeTrack",0,aN,"ColorManagement",0,eu,"CompressedArrayTexture",0,re,"CompressedCubeTexture",0,rt,"CompressedTexture",0,i7,"CompressedTextureLoader",0,aY,"ConeGeometry",0,rP,"ConstantAlphaFactor",0,213,"ConstantColorFactor",0,211,"Controls",0,oN,"CubeCamera",0,nA,"CubeReflectionMapping",0,301,"CubeRefractionMapping",0,302,"CubeTexture",0,nC,"CubeTextureLoader",0,aJ,"CubeUVReflectionMapping",0,306,"CubicBezierCurve",0,rg,"CubicBezierCurve3",0,rv,"CubicInterpolant",0,aC,"CullFaceBack",0,1,"CullFaceFront",0,2,"CullFaceFrontBack",0,3,"CullFaceNone",0,0,"Curve",0,rr,"CurvePath",0,rT,"CustomBlending",0,5,"CustomToneMapping",0,5,"CylinderGeometry",0,rR,"Cylindrical",0,s8,"Data3DTexture",0,eM,"DataArrayTexture",0,eb,"DataTexture",0,it,"DataTextureLoader",0,aK,"DataUtils",0,tX,"DecrementStencilOp",0,7683,"DecrementWrapStencilOp",0,34056,"DefaultLoadingManager",0,aV,"DepthFormat",0,1026,"DepthStencilFormat",0,1027,"DepthTexture",0,ri,"DetachedBindMode",0,P,"DirectionalLight",0,sr,"DirectionalLightHelper",0,ox,"DiscreteInterpolant",0,aP,"DodecahedronGeometry",0,rL,"DoubleSide",0,2,"DstAlphaFactor",0,206,"DstColorFactor",0,208,"DynamicCopyUsage",0,35050,"DynamicDrawUsage",0,35048,"DynamicReadUsage",0,35049,"EdgesGeometry",0,rF,"EllipseCurve",0,ra,"EqualCompare",0,514,"EqualDepth",0,4,"EqualStencilFunc",0,514,"EquirectangularReflectionMapping",0,303,"EquirectangularRefractionMapping",0,304,"Euler",0,tn,"EventDispatcher",0,O,"ExtrudeGeometry",0,r4,"FileLoader",0,aX,"Float16BufferAttribute",0,t3,"Float32BufferAttribute",0,t4,"FloatType",0,1015,"Fog",0,nI,"FogExp2",0,nP,"FramebufferTexture",0,i9,"FrontSide",0,0,"Frustum",0,iS,"GLBufferAttribute",0,s1,"GLSL1",0,"100","GLSL3",0,D,"GreaterCompare",0,516,"GreaterDepth",0,6,"GreaterEqualCompare",0,518,"GreaterEqualDepth",0,5,"GreaterEqualStencilFunc",0,518,"GreaterStencilFunc",0,516,"GridHelper",0,om,"Group",0,i6,"HalfFloatType",0,1016,"HemisphereLight",0,a0,"HemisphereLightHelper",0,of,"IcosahedronGeometry",0,r6,"ImageBitmapLoader",0,sv,"ImageLoader",0,aZ,"ImageUtils",0,ed,"IncrementStencilOp",0,7682,"IncrementWrapStencilOp",0,34055,"InstancedBufferAttribute",0,is,"InstancedBufferGeometry",0,sh,"InstancedInterleavedBuffer",0,s0,"InstancedMesh",0,im,"Int16BufferAttribute",0,tQ,"Int32BufferAttribute",0,t1,"Int8BufferAttribute",0,tJ,"IntType",0,1013,"InterleavedBuffer",0,nN,"InterleavedBufferAttribute",0,nD,"Interpolant",0,aA,"InterpolateDiscrete",0,2300,"InterpolateLinear",0,2301,"InterpolateSmooth",0,2302,"InvertStencilOp",0,5386,"KeepStencilOp",0,7680,"KeyframeTrack",0,aI,"LOD",0,nQ,"LatheGeometry",0,rE,"Layers",0,ti,"LessCompare",0,513,"LessDepth",0,2,"LessEqualCompare",0,515,"LessEqualDepth",0,3,"LessEqualStencilFunc",0,515,"LessStencilFunc",0,513,"Light",0,aQ,"LightProbe",0,sl,"Line",0,iq,"Line3",0,oi,"LineBasicMaterial",0,iB,"LineCurve",0,r_,"LineCurve3",0,ry,"LineDashedMaterial",0,ax,"LineLoop",0,i$,"LineSegments",0,iK,"LinearFilter",0,1006,"LinearInterpolant",0,aR,"LinearMipMapLinearFilter",0,1008,"LinearMipMapNearestFilter",0,1007,"LinearMipmapLinearFilter",0,1008,"LinearMipmapNearestFilter",0,1007,"LinearSRGBColorSpace",0,L,"LinearToneMapping",0,1,"LinearTransfer",0,N,"Loader",0,aG,"LoaderUtils",0,sc,"LoadingManager",0,aH,"LoopOnce",0,2200,"LoopPingPong",0,2202,"LoopRepeat",0,2201,"LuminanceAlphaFormat",0,1025,"LuminanceFormat",0,1024,"MOUSE",0,A,"Material",0,tH,"MaterialLoader",0,su,"MathUtils",0,q,"Matrix2",0,s9,"Matrix3",0,Z,"Matrix4",0,e2,"MaxEquation",0,104,"Mesh",0,nf,"MeshBasicMaterial",0,tV,"MeshDepthMaterial",0,av,"MeshDistanceMaterial",0,a_,"MeshLambertMaterial",0,ag,"MeshMatcapMaterial",0,ay,"MeshNormalMaterial",0,am,"MeshPhongMaterial",0,ap,"MeshPhysicalMaterial",0,ad,"MeshStandardMaterial",0,ah,"MeshToonMaterial",0,af,"MinEquation",0,103,"MirroredRepeatWrapping",0,1002,"MixOperation",0,1,"MultiplyBlending",0,4,"MultiplyOperation",0,0,"NearestFilter",0,1003,"NearestMipMapLinearFilter",0,1005,"NearestMipMapNearestFilter",0,1004,"NearestMipmapLinearFilter",0,1005,"NearestMipmapNearestFilter",0,1004,"NeutralToneMapping",0,7,"NeverCompare",0,512,"NeverDepth",0,0,"NeverStencilFunc",0,512,"NoBlending",0,0,"NoColorSpace",0,"","NoToneMapping",0,0,"NormalAnimationBlendMode",0,2500,"NormalBlending",0,1,"NotEqualCompare",0,517,"NotEqualDepth",0,7,"NotEqualStencilFunc",0,517,"NumberKeyframeTrack",0,aU,"Object3D",0,ty,"ObjectLoader",0,sp,"ObjectSpaceNormalMap",0,1,"OctahedronGeometry",0,r8,"OneFactor",0,201,"OneMinusConstantAlphaFactor",0,214,"OneMinusConstantColorFactor",0,212,"OneMinusDstAlphaFactor",0,207,"OneMinusDstColorFactor",0,209,"OneMinusSrcAlphaFactor",0,205,"OneMinusSrcColorFactor",0,203,"OrthographicCamera",0,sn,"PCFShadowMap",0,1,"PCFSoftShadowMap",0,2,"PMREMGenerator",0,o8,"Path",0,rw,"PerspectiveCamera",0,nE,"Plane",0,iy,"PlaneGeometry",0,r9,"PlaneHelper",0,oC,"PointLight",0,st,"PointLightHelper",0,oc,"Points",0,i4,"PointsMaterial",0,iQ,"PolarGridHelper",0,og,"PolyhedronGeometry",0,rI,"PositionalAudio",0,sF,"PropertyBinding",0,sX,"PropertyMixer",0,sB,"QuadraticBezierCurve",0,rx,"QuadraticBezierCurve3",0,rb,"Quaternion",0,ew,"QuaternionKeyframeTrack",0,aO,"QuaternionLinearInterpolant",0,aD,"RED_GREEN_RGTC2_Format",0,36285,"RED_RGTC1_Format",0,36283,"REVISION",0,"171","RGBADepthPacking",0,3201,"RGBAFormat",0,1023,"RGBAIntegerFormat",0,1033,"RGBA_ASTC_10x10_Format",0,37819,"RGBA_ASTC_10x5_Format",0,37816,"RGBA_ASTC_10x6_Format",0,37817,"RGBA_ASTC_10x8_Format",0,37818,"RGBA_ASTC_12x10_Format",0,37820,"RGBA_ASTC_12x12_Format",0,37821,"RGBA_ASTC_4x4_Format",0,37808,"RGBA_ASTC_5x4_Format",0,37809,"RGBA_ASTC_5x5_Format",0,37810,"RGBA_ASTC_6x5_Format",0,37811,"RGBA_ASTC_6x6_Format",0,37812,"RGBA_ASTC_8x5_Format",0,37813,"RGBA_ASTC_8x6_Format",0,37814,"RGBA_ASTC_8x8_Format",0,37815,"RGBA_BPTC_Format",0,36492,"RGBA_ETC2_EAC_Format",0,37496,"RGBA_PVRTC_2BPPV1_Format",0,35843,"RGBA_PVRTC_4BPPV1_Format",0,35842,"RGBA_S3TC_DXT1_Format",0,33777,"RGBA_S3TC_DXT3_Format",0,33778,"RGBA_S3TC_DXT5_Format",0,33779,"RGBDepthPacking",0,3202,"RGBFormat",0,1022,"RGBIntegerFormat",0,1032,"RGB_BPTC_SIGNED_Format",0,36494,"RGB_BPTC_UNSIGNED_Format",0,36495,"RGB_ETC1_Format",0,36196,"RGB_ETC2_Format",0,37492,"RGB_PVRTC_2BPPV1_Format",0,35841,"RGB_PVRTC_4BPPV1_Format",0,35840,"RGB_S3TC_DXT1_Format",0,33776,"RGDepthPacking",0,3203,"RGFormat",0,1030,"RGIntegerFormat",0,1031,"RawShaderMaterial",0,ac,"Ray",0,e1,"Raycaster",0,s3,"RectAreaLight",0,ss,"RedFormat",0,1028,"RedIntegerFormat",0,1029,"ReinhardToneMapping",0,2,"RenderTarget",0,ey,"RepeatWrapping",0,1e3,"ReplaceStencilOp",0,7681,"ReverseSubtractEquation",0,102,"RingGeometry",0,r7,"SIGNED_RED_GREEN_RGTC2_Format",0,36286,"SIGNED_RED_RGTC1_Format",0,36284,"SRGBColorSpace",0,I,"SRGBTransfer",0,U,"Scene",0,nL,"ShaderChunk",0,oB,"ShaderLib",0,oH,"ShaderMaterial",0,nb,"ShadowMaterial",0,au,"Shape",0,rz,"ShapeGeometry",0,ae,"ShapePath",0,oL,"ShapeUtils",0,r1,"ShortType",0,1011,"Skeleton",0,ia,"SkeletonHelper",0,ou,"SkinnedMesh",0,n7,"Source",0,ef,"Sphere",0,eq,"SphereGeometry",0,at,"Spherical",0,s6,"SphericalHarmonics3",0,so,"SplineCurve",0,rS,"SpotLight",0,a6,"SpotLightHelper",0,oa,"Sprite",0,nZ,"SpriteMaterial",0,nO,"SrcAlphaFactor",0,204,"SrcAlphaSaturateFactor",0,210,"SrcColorFactor",0,202,"StaticCopyUsage",0,35046,"StaticDrawUsage",0,35044,"StaticReadUsage",0,35045,"StereoCamera",0,sM,"StreamCopyUsage",0,35042,"StreamDrawUsage",0,35040,"StreamReadUsage",0,35041,"StringKeyframeTrack",0,aF,"SubtractEquation",0,101,"SubtractiveBlending",0,3,"TOUCH",0,C,"TangentSpaceNormalMap",0,0,"TetrahedronGeometry",0,an,"Texture",0,ev,"TextureLoader",0,a$,"TextureUtils",0,oD,"TorusGeometry",0,ai,"TorusKnotGeometry",0,ar,"Triangle",0,tN,"TriangleFanDrawMode",0,2,"TriangleStripDrawMode",0,1,"TrianglesDrawMode",0,0,"TubeGeometry",0,aa,"UVMapping",0,300,"Uint16BufferAttribute",0,t0,"Uint32BufferAttribute",0,t2,"Uint8BufferAttribute",0,tK,"Uint8ClampedBufferAttribute",0,t$,"Uniform",0,sK,"UniformsGroup",0,sQ,"UniformsLib",0,ok,"UniformsUtils",0,nx,"UnsignedByteType",0,1009,"UnsignedInt248Type",0,1020,"UnsignedInt5999Type",0,35902,"UnsignedIntType",0,1014,"UnsignedShort4444Type",0,1017,"UnsignedShort5551Type",0,1018,"UnsignedShortType",0,1012,"VSMShadowMap",0,3,"Vector2",0,Y,"Vector3",0,eE,"Vector4",0,e_,"VectorKeyframeTrack",0,az,"VideoTexture",0,i8,"WebGL3DRenderTarget",0,eT,"WebGLArrayRenderTarget",0,eS,"WebGLCoordinateSystem",0,2e3,"WebGLCubeRenderTarget",0,nR,"WebGLMultipleRenderTargets",0,oO,"WebGLRenderTarget",0,ex,"WebGLRenderer",0,uK,"WebGLUtils",0,uk,"WebGPUCoordinateSystem",0,2001,"WireframeGeometry",0,as,"WrapAroundEnding",0,2402,"ZeroCurvatureEnding",0,2400,"ZeroFactor",0,200,"ZeroSlopeEnding",0,2401,"ZeroStencilOp",0,0,"createCanvasElement",0,et],32009);var hv=e.i(32009);function h_(e,t){let n;return(...i)=>{window.clearTimeout(n),n=window.setTimeout(()=>e(...i),t)}}let hy=["x","y","top","bottom","left","right","width","height"];function hx({ref:e,children:t,fallback:n,resize:i,style:r,gl:a,events:s=hg,eventSource:o,eventPrefix:l,shadows:u,linear:c,flat:h,legacy:d,orthographic:p,frameloop:f,dpr:m,performance:g,raycaster:v,camera:_,scene:y,onPointerMissed:x,onCreated:b,...S}){E.useMemo(()=>cZ(hv),[]);let M=cd(),[T,w]=function({debounce:e,scroll:t,polyfill:n,offsetSize:i}={debounce:0,scroll:!1,offsetSize:!1}){var r,a,s;let o=n||("u"(p.current=!0,()=>void(p.current=!1)));let[f,m,g]=(0,E.useMemo)(()=>{let e=()=>{let e,t;if(!c.current.element)return;let{left:n,top:r,width:a,height:s,bottom:o,right:l,x:h,y:d}=c.current.element.getBoundingClientRect(),f={left:n,top:r,width:a,height:s,bottom:o,right:l,x:h,y:d};c.current.element instanceof HTMLElement&&i&&(f.height=c.current.element.offsetHeight,f.width=c.current.element.offsetWidth),Object.freeze(f),p.current&&(e=c.current.lastBounds,t=f,!hy.every(n=>e[n]===t[n]))&&u(c.current.lastBounds=f)};return[e,d?h_(e,d):e,h?h_(e,h):e]},[u,i,h,d]);function v(){c.current.scrollContainers&&(c.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",g,!0)),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null),c.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",c.current.orientationHandler))}function _(){c.current.element&&(c.current.resizeObserver=new o(g),c.current.resizeObserver.observe(c.current.element),t&&c.current.scrollContainers&&c.current.scrollContainers.forEach(e=>e.addEventListener("scroll",g,{capture:!0,passive:!0})),c.current.orientationHandler=()=>{g()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",c.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",c.current.orientationHandler))}return r=g,a=!!t,(0,E.useEffect)(()=>{if(a)return window.addEventListener("scroll",r,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",r,!0)},[r,a]),s=m,(0,E.useEffect)(()=>(window.addEventListener("resize",s),()=>void window.removeEventListener("resize",s)),[s]),(0,E.useEffect)(()=>{v(),_()},[t,g,m]),(0,E.useEffect)(()=>v,[]),[e=>{e&&e!==c.current.element&&(v(),c.current.element=e,c.current.scrollContainers=function e(t){let n=[];if(!t||t===document.body)return n;let{overflow:i,overflowX:r,overflowY:a}=window.getComputedStyle(t);return[i,r,a].some(e=>"auto"===e||"scroll"===e)&&n.push(t),[...n,...e(t.parentElement)]}(e),_())},l,f]}({scroll:!0,debounce:{scroll:50,resize:0},...i}),A=E.useRef(null),C=E.useRef(null);E.useImperativeHandle(e,()=>A.current);let R=ch(x),[P,I]=E.useState(!1),[L,N]=E.useState(!1);if(P)throw P;if(L)throw L;let U=E.useRef(null);cc(()=>{let e=A.current;w.width>0&&w.height>0&&e&&(U.current||(U.current=he(e)),async function(){await U.current.configure({gl:a,scene:y,events:s,shadows:u,linear:c,flat:h,legacy:d,orthographic:p,frameloop:f,dpr:m,performance:g,raycaster:v,camera:_,size:w,onPointerMissed:(...e)=>null==R.current?void 0:R.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(o?cl(o)?o.current:o:C.current),l&&e.setEvents({compute:(e,t)=>{let n=e[l+"X"],i=e[l+"Y"];t.pointer.set(n/t.size.width*2-1,-(2*(i/t.size.height))+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==b||b(e)}}),U.current.render((0,u9.jsx)(M,{children:(0,u9.jsx)(cf,{set:N,children:(0,u9.jsx)(E.Suspense,{fallback:(0,u9.jsx)(cp,{set:I}),children:null!=t?t:null})})}))}())}),E.useEffect(()=>{let e=A.current;if(e)return()=>hn(e)},[]);let D=o?"none":"auto";return(0,u9.jsx)("div",{ref:C,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:D,...r},...S,children:(0,u9.jsx)("div",{ref:T,style:{width:"100%",height:"100%"},children:(0,u9.jsx)("canvas",{ref:A,style:{display:"block"},children:n})})})}e.s(["Canvas",0,function(e){return(0,u9.jsx)(ci,{children:(0,u9.jsx)(hx,{...e})})}],75056),e.s(["useFrame",0,cz],25234),e.s(["useThree",0,cF],28600)},44208,e=>{"use strict";var t=e.i(1950);e.s(["createPortal",()=>t.o])},24205,e=>{"use strict";var t=e.i(1950);e.s(["applyProps",()=>t.s])},67335,e=>{"use strict";var t=e.i(1950);e.s(["extend",()=>t.e])},60602,e=>{"use strict";var t=e.i(1950);e.s(["useLoader",()=>t.G])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/0t48hzs_6fshe.css b/build/.next/static/chunks/0t48hzs_6fshe.css new file mode 100644 index 0000000..9462fde --- /dev/null +++ b/build/.next/static/chunks/0t48hzs_6fshe.css @@ -0,0 +1 @@ +.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(../media/layers.1220hx8ja1.sy.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(../media/layers-2x.0olxl6i2vnf_c.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(../media/marker-icon.0i9~u_difxrfa.png)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}} diff --git a/build/.next/static/chunks/0tldj~reb5~dn.js b/build/.next/static/chunks/0tldj~reb5~dn.js new file mode 100644 index 0000000..7b4c662 --- /dev/null +++ b/build/.next/static/chunks/0tldj~reb5~dn.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,23755,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});let n=(0,e.r(43369).getDeploymentId)();globalThis.NEXT_DEPLOYMENT_ID=n,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},74575,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getAssetPrefix",{enumerable:!0,get:function(){return o}});let n=e.r(12718);function o(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new n.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?o.createElement("select",{is:r.is}):o.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?o.createElement(l,{is:r.is}):o.createElement(l)}}a[eW]=n,a[eq]=r;e:for(o=n.child;null!==o;){if(5===o.tag||6===o.tag)a.appendChild(o.stateNode);else if(4!==o.tag&&27!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===n)break;for(;null===o.sibling;){if(null===o.return||o.return===n)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}switch(n.stateNode=a,ca(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&is(n)}}return ih(n),n.subtreeFlags&=-0x2000001,ic(n,n.type,null===e?null:e.memoizedProps,n.pendingProps,t),null;case 6:if(e&&null!=n.stateNode)e.memoizedProps!==r&&is(n);else{if("string"!=typeof r&&null===n.stateNode)throw Error(u(166));if(e=et.current,rZ(n)){if(e=n.stateNode,t=n.memoizedProps,r=null,null!==(l=rj))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eW]=n,(e=!!(e.nodeValue===t||null!==r&&!0===r.suppressHydrationWarning||ct(e.nodeValue,t)))||rY(n,!0)}else(e=cs(e).createTextNode(r))[eW]=n,n.stateNode=e}return ih(n),null;case 31:if(t=n.memoizedState,null===e||null!==e.memoizedState){if(r=rZ(n),null!==t){if(null===e){if(!r)throw Error(u(318));if(!(e=null!==(e=n.memoizedState)?e.dehydrated:null))throw Error(u(557));e[eW]=n}else rJ(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;ih(n),e=!1}else t=r0(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=t),e=!0;if(!e){if(256&n.flags)return ae(n),n;return ae(n),null}if(0!=(128&n.flags))throw Error(u(558))}return ih(n),null;case 13:if(r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rZ(n),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(u(318));if(!(l=null!==(l=n.memoizedState)?l.dehydrated:null))throw Error(u(317));l[eW]=n}else rJ(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;ih(n),l=!1}else l=r0(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&n.flags)return ae(n),n;return ae(n),null}}if(ae(n),0!=(128&n.flags))return n.lanes=t,n;return t=null!==r,e=null!==e&&null!==e.memoizedState,t&&(r=n.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),t!==e&&t&&(n.child.flags|=8192),ip(n,n.updateQueue),ih(n),null;case 4:return ea(),null===e&&s2(n.stateNode.containerInfo),n.flags|=0x4000000,ih(n),null;case 10:return r8(n.type),ih(n),null;case 19:if(ar(n),null===(r=n.memoizedState))return ih(n),null;if(l=0!=(128&n.flags),null===(a=r.rendering))if(l)im(r,!1);else{if(0!==uF||null!==e&&0!=(128&e.flags))for(e=n.child;null!==e;){if(null!==(a=al(e))){for(n.flags|=128,im(r,!1),n.updateQueue=e=a.updateQueue,ip(n,e),n.subtreeFlags=0,e=t,t=n.child;null!==t;)rw(t,e),t=t.sibling;return at(n,1&an.current|2),rQ&&rR(n,r.treeForkCount),n.child}e=e.sibling}null!==r.tail&&ev()>uQ&&(n.flags|=128,l=!0,im(r,!1),n.lanes=4194304)}else{if(!l)if(null!==(e=al(a))){if(n.flags|=128,l=!0,n.updateQueue=e=e.updateQueue,ip(n,e),im(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rQ)return ih(n),null}else 2*ev()-r.renderingStartTime>uQ&&0x20000000!==t&&(n.flags|=128,l=!0,im(r,!1),n.lanes=4194304);r.isBackwards?(a.sibling=n.child,n.child=a):(null!==(e=r.last)?e.sibling=a:n.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(t=e;null!==t;){if(null!==t.alternate){t=!1;break e}t=t.sibling}t=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ev(),e.sibling=null,a=an.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!t||rQ?at(n,a):(t=a,J(l4,n),J(an,t),null===l6&&(l6=n)),rQ&&rR(n,r.treeForkCount),e}return ih(n),null;case 22:case 23:return ae(n),l3(),r=null!==n.memoizedState,null!==e?null!==e.memoizedState!==r&&(n.flags|=8192):r&&(n.flags|=8192),r?0!=(0x20000000&t)&&0==(128&n.flags)&&(ih(n),6&n.subtreeFlags&&(n.flags|=8192)):ih(n),null!==(t=n.updateQueue)&&ip(n,t.retryQueue),t=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),r=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(r=n.memoizedState.cachePool.pool),r!==t&&(n.flags|=2048),null!==e&&Z(lb),null;case 24:return t=null,null!==e&&(t=e.memoizedState.cache),n.memoizedState.cache!==t&&(n.flags|=2048),r8(lu),ih(n),null;case 25:return null;case 30:return n.flags|=0x2000000,ih(n),null}throw Error(u(156,n.tag))}(n.alternate,n,uD);if(null!==t){uC=t;return}if(null!==(n=n.sibling)){uC=n;return}uC=n=e}while(null!==n)0===uF&&(uF=5)}function sg(e,n){do{var t=function(e,n){switch(rB(n),n.tag){case 1:return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return r8(lu),ea(),0!=(65536&(e=n.flags))&&0==(128&e)?(n.flags=-65537&e|128,n):null;case 26:case 27:case 5:return ei(n),null;case 31:if(null!==n.memoizedState){if(ae(n),null===n.alternate)throw Error(u(340));rJ()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 13:if(ae(n),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(u(340));rJ()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return ar(n),65536&(e=n.flags)?(n.flags=-65537&e|128,null!==(e=n.memoizedState)&&(e.rendering=null,e.tail=null),n.flags|=4,n):null;case 4:return ea(),null;case 10:return r8(n.type),null;case 22:case 23:return ae(n),l3(),null!==e&&Z(lb),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 24:return r8(lu),null;default:return null}}(e.alternate,e);if(null!==t){t.flags&=32767,uC=t;return}if(null!==(t=e.return)&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!n&&null!==(e=e.sibling)){uC=e;return}uC=e=t}while(null!==e)uF=6,uC=null}function sv(e,n,t,r,l,a,o,i,s,c,f,d){e.cancelPendingCommit=null;do sx();while(0!==uK)if(0!=(6&ux))throw Error(u(327));if(null!==n){if(n===e.current)throw Error(u(177));e===uN&&(uC=uN=null,uP=0),uG=n,uY=e,uX=t,uJ=l,u0=r,function(e,n,t,r,l,a,o){var i,u=n.lanes|n.childLanes;if(uZ=u,!function(e,n,t,r,l,a){var o=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var i=e.entanglements,u=e.expirationTimes,s=e.hiddenUpdates;for(t=o&~t;0fp){i.length=o;break}d=new Promise(cP.bind(d)),i.push(d)}}}return 0g&&(o=g,g=h,h=o);var v=t$(i,h),y=t$(i,g);if(v&&y&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var b=f.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),h>g?(p.addRange(b),p.extend(y.node,y.offset)):(b.setEnd(y.node,y.offset),p.addRange(b))}}}}for(f=[],p=i;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof i.focus&&i.focus(),i=0;it?32:t,W.T=null,t=uJ,uJ=null;var a=uY,o=uX;if(uK=0,uG=uY=null,uX=0,0!=(6&ux))throw Error(u(331));var i=ux;if(ux|=4,uk(a.current),up(a,a.current,o,t),ux=i,sV(0,!1),eN&&"function"==typeof eN.onPostCommitFiberRoot)try{eN.onPostCommitFiberRoot(ex,a)}catch(e){}return!0}finally{q.p=l,W.T=r,sE(e,n)}}function sC(e,n,t){n=rz(t,n),n=oA(e.stateNode,n,2),null!==(e=lQ(e,n,2))&&(eA(e,2),sU(e))}function sP(e,n,t){if(3===e.tag)sC(e,e,t);else for(;null!==n;){if(3===n.tag){sC(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===uq||!uq.has(r))){e=rz(t,e),null!==(r=lQ(n,t=oR(2),2))&&(oU(t,r,n,e),eA(r,2),sU(r));break}}n=n.return}}function sz(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new uE;var l=new Set;r.set(n,l)}else void 0===(l=r.get(n))&&(l=new Set,r.set(n,l));l.has(t)||(uO=!0,l.add(t),e=sT.bind(null,e,n,t),n.then(e,e))}function sT(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,uN===e&&(uP&t)===t&&(4===uF||3===uF&&(0x3c00000&uP)===uP&&300>ev()-uj?0==(2&ux)&&sa(e,0):uA|=t,uU===uP&&(uU=0)),sU(e)}function s_(e,n){0===n&&(n=eI()),null!==(e=rp(e,n))&&(eA(e,n),sU(e))}function sL(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),s_(e,t)}function sO(e,n){var t=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(u(314))}null!==r&&r.delete(n),s_(e,t)}var sD=null,sF=null,sI=!1,sM=!1,sA=!1,sR=0;function sU(e){e!==sF&&null===e.next&&(null===sF?sD=sF=e:sF=sF.next=e),sM=!0,sI||(sI=!0,cv(function(){0!=(6&ux)?ep(eb,sB):s$()}))}function sV(e,n){if(!sA&&sM){sA=!0;do for(var t=!1,r=sD;null!==r;){if(!n)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var o=r.suspendedLanes,i=r.pingedLanes;a=0xc000095&(a=(1<<31-eC(42|e)+1)-1&(l&~(o&~i)))?0xc000095&a|1:a?2|a:0}0!==a&&(t=!0,sQ(r,a))}else a=uP,0==(3&(a=eD(r,r===uN?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eF(r,a)||(t=!0,sQ(r,a));r=r.next}while(t)sA=!1}}function sB(){s$()}function s$(){sM=sI=!1;var e,n=0;0===sR||((e=window.event)&&"popstate"===e.type?e===cp||(cp=e,0):(cp=null,1))||(n=sR);for(var t=ev(),r=null,l=sD;null!==l;){var a=l.next,o=sj(l,t);0===o?(l.next=null,null===r?sD=a:r.next=a,null===a&&(sF=r)):(r=l,(0!==n||0!=(3&o))&&(sM=!0)),l=a}0!==uK&&5!==uK||sV(n,!1),0!==sR&&(sR=0)}function sj(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function fs(e,n){return"img"===e&&null!=n.src&&""!==n.src&&null==n.onLoad&&"lazy"!==n.loading}function fc(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function ff(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fd(e,n){"function"==typeof n.decode&&(e.imgCount++,n.complete||(e.imgBytes+=ff(n),e.suspenseyImages.push(n)),e=fg.bind(e),n.decode().then(e,e))}var fp=0;function fm(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fy(e,e.stylesheets);else if(e.unsuspend){var n=e.unsuspend;e.unsuspend=null,n()}}}function fh(){this.count--,fm(this)}function fg(){this.imgCount--,fm(this)}var fv=null;function fy(e,n){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fv=new Map,n.forEach(fb,e),fv=null,fh.call(e))}function fb(e,n){if(!(4&n.state.loading)){var t=fv.get(e);if(t)var r=t.get(null);else{t=new Map,fv.set(e,t);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;atypeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var f4=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!f4.isDisabled&&f4.supportsFiber)try{ex=f4.inject({bundleType:0,version:"19.3.0-canary-3f0b9e61-20260317",rendererPackageName:"react-dom",currentDispatcherRef:W,reconcilerVersion:"19.3.0-canary-3f0b9e61-20260317"}),eN=f4}catch(e){}}t.createRoot=function(e,n){if(!s(e))throw Error(u(299));var t=!1,r="",l=oO,a=oD,o=oF;return null!=n&&(!0===n.unstable_strictMode&&(t=!0),void 0!==n.identifierPrefix&&(r=n.identifierPrefix),void 0!==n.onUncaughtError&&(l=n.onUncaughtError),void 0!==n.onCaughtError&&(a=n.onCaughtError),void 0!==n.onRecoverableError&&(o=n.onRecoverableError)),n=fS(e,1,!1,null,null,t,r,null,l,a,o,f0),e[eK]=n.current,s2(e),new f1(n)},t.hydrateRoot=function(e,n,t){if(!s(e))throw Error(u(299));var r,l=!1,a="",o=oO,i=oD,c=oF,f=null;return null!=t&&(!0===t.unstable_strictMode&&(l=!0),void 0!==t.identifierPrefix&&(a=t.identifierPrefix),void 0!==t.onUncaughtError&&(o=t.onUncaughtError),void 0!==t.onCaughtError&&(i=t.onCaughtError),void 0!==t.onRecoverableError&&(c=t.onRecoverableError),void 0!==t.formState&&(f=t.formState)),(n=fS(e,1,!0,n,null!=t?t:null,l,a,f,o,i,c,f0)).context=(r=null,rg),t=n.current,(a=lH(l=eB(l=u8()))).callback=null,lQ(t,a,l),t=l,n.current.lanes=t,eA(n,t),sU(n),e[eK]=n.current,s2(e),new f2(n)},t.version="19.3.0-canary-3f0b9e61-20260317"},88014,(e,n,t)=>{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),n.exports=e.r(46480)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/133p65rq~827a.js b/build/.next/static/chunks/133p65rq~827a.js new file mode 100644 index 0000000..81b1115 --- /dev/null +++ b/build/.next/static/chunks/133p65rq~827a.js @@ -0,0 +1,212 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return r}});let i=e.r(32061);function r({reason:e,children:t}){if("u"{"use strict";function i(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return i}})},52157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return s}});let i=e.r(43476),r=e.r(74080),o=e.r(63599),l=e.r(9885),a=e.r(43369);function s({moduleIds:e}){if("u">typeof window)return null;let t=o.workAsyncStorage.getStore();if(void 0===t)return null;let n=[];if(t.reactLoadableManifest&&e){let i=t.reactLoadableManifest;for(let t of e){if(!i[t])continue;let e=i[t].files;n.push(...e)}}if(0===n.length)return null;let m=(0,a.getAssetTokenQuery)();return(0,i.jsx)(i.Fragment,{children:n.map(e=>{let n=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${m}`;return e.endsWith(".css")?(0,i.jsx)("link",{precedence:"dynamic",href:n,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,r.preload)(n,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return m}});let i=e.r(43476),r=e.r(71645),o=e.r(67585),l=e.r(52157);function a(e){return{default:e&&"default"in e?e.default:e}}let s={loader:()=>Promise.resolve(a(()=>null)),loading:null,ssr:!0},m=function(e){let t={...s,...e},n=(0,r.lazy)(()=>t.loader().then(a)),m=t.loading;function c(e){let a=m?(0,i.jsx)(m,{isLoading:!0,pastDelay:!0,error:null}):null,s=!t.ssr||!!t.loading,c=s?r.Suspense:r.Fragment,d=t.ssr?(0,i.jsxs)(i.Fragment,{children:["u"{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return r}});let i=e.r(55682)._(e.r(69093));function r(e,t){let n={};"function"==typeof e&&(n.loader=e);let r={...n,...t};return(0,i.default)({...r,modules:r.loadableGenerated?.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},74528,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(74080);e.s(["default",0,function(){(0,i.preload)("/images/home2-banner-1.webp",{as:"image"});let[e,r]=(0,n.useState)(0);(0,n.useEffect)(()=>{let e=setInterval(()=>{r(e=>+(0===e))},7e3);return()=>clearInterval(e)},[]);let o=e=>{r(e)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .howits-hero-custom-bg.elementor-repeater-item-3264830, + .howits-hero-custom-bg.elementor-repeater-item-6867061 { + background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.1)), url('/images/home2-banner-1.webp') !important; + background-position: center !important; + background-repeat: no-repeat !important; + background-size: cover !important; + } + + .howits-hero-custom-bg.elementor-repeater-item-6867061 { + background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.1)), url('/images/home1-slide-2.webp') !important; + background-position: center !important; + background-repeat: no-repeat !important; + background-size: cover !important; + } + + /* Center alignments for standard content slider elements */ + .elementor-element.elementor-element-6c7cbcb .slide-content { + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + align-items: center !important; + text-align: center !important; + width: 100% !important; + height: 100% !important; + padding: 0 !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-6c7cbcb .slide-content-inner { + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + align-items: center !important; + text-align: center !important; + width: 100% !important; + max-width: 1000px !important; + margin: 0 auto !important; + /* site.css gives the inner content-box sizing + 20px padding, + which makes it 40px wider than its parent and overflows. + Force border-box so width:100% actually fits. */ + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-6c7cbcb .content-slider-item-heading, + .elementor-element.elementor-element-6c7cbcb .content-slider-item-heading .heading-content { + text-align: center !important; + display: block !important; + width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 15px !important; + padding-right: 15px !important; + } + + .elementor-element.elementor-element-6c7cbcb .content-slider-item-text { + display: flex !important; + justify-content: center !important; + width: 100% !important; + margin-top: 23px !important; + } + + .elementor-element.elementor-element-6c7cbcb .text-content { + text-align: center !important; + max-width: 820px !important; + margin: 0 auto !important; + padding-left: 15px !important; + padding-right: 15px !important; + } + + /* Larger, more readable hero subtitle on large/4K screens */ + .elementor-element.elementor-element-6c7cbcb .content-slider-item-text p { + font-size: clamp(16px, 1.35vw, 23px) !important; + line-height: 1.65 !important; + } + + @media (min-width: 1025px) { + /* Match Home's hero frame so the floating navbar sits with the same + breathing space. Home (.elementor-61) frames the hero card at 20px; + this page falls through to the shared kit's 32px base. */ + .elementor-element.elementor-element-741f56c { + padding: 20px !important; + } + .elementor-element.elementor-element-6c7cbcb .owl-carousel.owl-theme .content-item { + height: 800px !important; + min-height: 800px !important; + } + } + + @media (max-width: 1024px) { + .elementor-element.elementor-element-741f56c { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + --padding-top: 0px !important; + --padding-block-start: 0px !important; + padding: 0 10px 10px 10px !important; + overflow: hidden !important; + border-radius: 25px !important; + } + + /* Collapse the stage-outer to the slide height so no empty + black space is left below the hero card on mobile/tablet. */ + .elementor-element.elementor-element-6c7cbcb .owl-stage-outer { + height: 620px !important; + } + + .elementor-element.elementor-element-6c7cbcb .owl-carousel.owl-theme .content-item { + width: 100% !important; + min-height: 620px !important; + height: 620px !important; + border-radius: 25px !important; + overflow: hidden !important; + } + + .elementor-element.elementor-element-6c7cbcb .slide-content { + width: 100% !important; + min-height: 620px !important; + padding-left: 0 !important; + padding-right: 0 !important; + box-sizing: border-box !important; + } + } + + @media (max-width: 767px) { + .elementor-element.elementor-element-741f56c { + width: 100% !important; + max-width: 100% !important; + --padding-top: 0px !important; + --padding-block-start: 0px !important; + padding: 0 10px 10px 10px !important; + border-radius: 22px !important; + } + + .elementor-element.elementor-element-6c7cbcb .owl-stage-outer { + height: 560px !important; + } + + .elementor-element.elementor-element-6c7cbcb .owl-carousel.owl-theme .content-item { + min-height: 560px !important; + height: 560px !important; + border-radius: 22px !important; + } + + /* Center BOTH slides' content. Use the .elementor prefix + + repeater-item classes so these beat the per-slide rules in + site.css (slide 1 has no centering there; slide 2 carries an + asymmetric top margin). */ + .elementor .elementor-element.elementor-element-6c7cbcb .slide-content { + min-height: 560px !important; + padding-left: 0 !important; + padding-right: 0 !important; + align-items: center !important; + justify-content: center !important; + text-align: center !important; + } + + .elementor .elementor-element.elementor-element-6c7cbcb .elementor-repeater-item-3264830 .slide-content-inner, + .elementor .elementor-element.elementor-element-6c7cbcb .elementor-repeater-item-6867061 .slide-content-inner { + margin: 0 auto !important; + width: 100% !important; + max-width: 100% !important; + padding-left: 0 !important; + padding-right: 0 !important; + box-sizing: border-box !important; + align-items: center !important; + text-align: center !important; + } + + .elementor .elementor-element.elementor-element-6c7cbcb .content-slider-item-heading, + .elementor .elementor-element.elementor-element-6c7cbcb .content-slider-item-text, + .elementor .elementor-element.elementor-element-6c7cbcb .text-content { + text-align: center !important; + margin-left: auto !important; + margin-right: auto !important; + } + + /* Smaller, fitting heading so it never overflows the card edge. + site.css forced clamp(38px,11vw,48px) which clipped at 320px. */ + .elementor .elementor-element.elementor-element-6c7cbcb .elementor-repeater-item-3264830 .content-slider-item-heading, + .elementor .elementor-element.elementor-element-6c7cbcb .elementor-repeater-item-6867061 .content-slider-item-heading { + max-width: 100% !important; + font-size: clamp(26px, 8vw, 34px) !important; + line-height: 1.12 !important; + overflow-wrap: break-word !important; + } + + /* Slide counter ("01/02"): keep it bottom-RIGHT, aligned with the + hero text padding (22px) and lifted cleanly off the edge. */ + .elementor .elementor-element.elementor-element-6c7cbcb .slider-footer { + text-align: right !important; + margin-bottom: 24px !important; + } + .elementor .elementor-element.elementor-element-6c7cbcb .slider-footer .slider-pagination { + justify-content: flex-end !important; + margin-left: 22px !important; + margin-right: 22px !important; + } + /* The wide dot navigation eats the right side and shoves "01/02" to + the centre. Hide it on mobile (matching the home hero) so the + counter sits cleanly on the right. */ + .elementor .elementor-element.elementor-element-6c7cbcb .owl-dots { + display: none !important; + } + /* Hide the prev/next arrows on mobile (they overlap the counter) — + slides still auto-rotate, matching the home hero. */ + .elementor .elementor-element.elementor-element-6c7cbcb .owl-nav { + display: none !important; + } + } + `}}),(0,t.jsx)("div",{className:"elementor-element elementor-element-741f56c e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"741f56c","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-6c7cbcb elementor-widget elementor-widget-logico_content_slider","data-id":"6c7cbcb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_content_slider.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-content-slider-widget",children:(0,t.jsx)("div",{className:"content-slider-wrapper",children:(0,t.jsx)("div",{className:"content-slider-container",children:(0,t.jsxs)("div",{className:"content-slider owl-carousel owl-theme nav-view-vertical nav-h-position-right nav-v-position-bottom owl-loaded owl-drag",children:[(0,t.jsx)("div",{className:"owl-stage-outer",style:{position:"relative",overflow:"hidden",height:"800px"},children:(0,t.jsxs)("div",{className:"owl-stage",style:{position:"relative",width:"100%",height:"100%"},children:[(0,t.jsx)("div",{className:`owl-item ${0===e?"active":""}`,style:{position:"relative",width:"100%",opacity:+(0===e),visibility:0===e?"visible":"hidden",transition:"opacity 0.8s ease-in-out, visibility 0.8s ease-in-out",zIndex:0===e?2:1},children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-3264830 slide-style-standard howits-hero-custom-bg",children:(0,t.jsx)("div",{className:"slide-content",children:(0,t.jsxs)("div",{className:"slide-content-inner",children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",children:(0,t.jsxs)("span",{className:"heading-content",children:["One Journey. Complete",(0,t.jsx)("br",{}),"Control."]})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",children:(0,t.jsx)("div",{className:"text-content",children:(0,t.jsx)("p",{children:"See how Doormile connects first, mid, and last mile into a seamless delivery experience powered by MileTruth™ AI."})})})]})})})}),(0,t.jsx)("div",{className:`owl-item ${1===e?"active":""}`,style:{position:"absolute",top:0,left:0,width:"100%",opacity:+(1===e),visibility:1===e?"visible":"hidden",transition:"opacity 0.8s ease-in-out, visibility 0.8s ease-in-out",zIndex:1===e?2:1},children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-6867061 slide-style-standard howits-hero-custom-bg",children:(0,t.jsx)("div",{className:"slide-content",children:(0,t.jsxs)("div",{className:"slide-content-inner",children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",children:(0,t.jsxs)("span",{className:"heading-content",children:["A New Logisitics",(0,t.jsx)("br",{}),"Experience"]})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",children:(0,t.jsx)("div",{className:"text-content",children:(0,t.jsx)("p",{children:"See how Doormile connects first, mid, and last mile into a seamless delivery experience powered by MileTruth™ AI."})})})]})})})})]})}),(0,t.jsxs)("div",{className:"owl-nav",children:[(0,t.jsx)("button",{type:"button",className:"owl-next",onClick:()=>r(e=>+(0===e)),"aria-label":"Next",style:{cursor:"pointer",border:"none",outline:"none"}}),(0,t.jsx)("button",{type:"button",className:"owl-prev",onClick:()=>r(e=>+(0===e)),"aria-label":"Previous",style:{cursor:"pointer",border:"none",outline:"none"}})]}),(0,t.jsx)("div",{className:"slider-footer slider-footer-position-after slider-footer-width-full slider-footer-view-inside",children:(0,t.jsx)("div",{className:"slider-footer-content",children:(0,t.jsxs)("div",{className:"slider-pagination",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"10px"},children:[(0,t.jsxs)("div",{className:"slider-progress-wrapper",style:{marginRight:"35px",display:"flex",flexDirection:"column",alignItems:"flex-start"},children:[(0,t.jsxs)("div",{style:{fontSize:"16px",fontWeight:600,color:"#FFFFFF",marginBottom:"4px"},children:[(0,t.jsx)("span",{className:"slider-progress-current",children:0===e?"01":"02"})," / ",(0,t.jsx)("span",{className:"slider-progress-all",style:{opacity:.6},children:"02"})]}),(0,t.jsx)("div",{style:{width:"80px",height:"2px",background:"rgba(255, 255, 255, 0.2)",position:"relative",borderRadius:"1px",overflow:"hidden"},children:(0,t.jsx)("div",{style:{position:"absolute",left:0===e?"0":"50%",width:"50%",height:"100%",background:"#c01227",transition:"left 0.3s ease"}})})]}),(0,t.jsxs)("div",{className:"owl-dots owl-dots-6c7cbcb",style:{display:"none"},children:[(0,t.jsx)("button",{type:"button",role:"button",className:`owl-dot ${0===e?"active":""}`,onClick:()=>o(0),children:(0,t.jsx)("span",{})}),(0,t.jsx)("button",{type:"button",role:"button",className:`owl-dot ${1===e?"active":""}`,onClick:()=>o(1),children:(0,t.jsx)("span",{})})]})]})})})]})})})})})})})]})}])},16948,e=>{"use strict";var t=e.i(43476);let n=(0,e.i(70703).default)(()=>e.A(19386),{loadableGenerated:{modules:[88493]},ssr:!1,loading:()=>(0,t.jsx)("div",{style:{minHeight:"100vh"},"aria-hidden":!0})});e.s(["default",0,function(){return(0,t.jsx)(n,{})}])},19386,e=>{e.v(t=>Promise.all(["static/chunks/0b561qo91.1jg.js","static/chunks/04vqjcwjasc-3.js","static/chunks/0_54tjq7o59~u.js","static/chunks/0o27ue53hohz_.js","static/chunks/0zozt9p9-3srt.css"].map(t=>e.l(t))).then(()=>t(88493)))}]); \ No newline at end of file diff --git a/build/.next/static/chunks/13ci0umlwh11-.css b/build/.next/static/chunks/13ci0umlwh11-.css new file mode 100644 index 0000000..cc54688 --- /dev/null +++ b/build/.next/static/chunks/13ci0umlwh11-.css @@ -0,0 +1,6 @@ +@font-face{font-family:Manrope;font-style:normal;font-weight:200;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:200;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope;font-style:normal;font-weight:200;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope;font-style:normal;font-weight:300;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_67dc055e-module__BHrBnq__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_67dc055e-module__BHrBnq__variable{--font-manrope:"Manrope", "Manrope Fallback"} +@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_2e42c3c6-module__3Wl9rq__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_2e42c3c6-module__3Wl9rq__variable{--font-space-grotesk:"Space Grotesk", "Space Grotesk Fallback"} +@font-face{font-family:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Syne Fallback;src:local(Arial);ascent-override:93.93%;descent-override:27.93%;line-gap-override:0.0%;size-adjust:98.47%}.syne_ef5854ac-module__2TJB3a__className{font-family:Syne,Syne Fallback;font-style:normal}.syne_ef5854ac-module__2TJB3a__variable{--font-syne:"Syne", "Syne Fallback"} +@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_2770e922-module__TdA3fW__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_2770e922-module__TdA3fW__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"} +@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5dbe1e89-module__i9oJOa__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5dbe1e89-module__i9oJOa__variable{--font-inter:"Inter", "Inter Fallback"} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}.\@container{container-type:inline-size}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}.\!hidden{display:none!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-full{width:100%;height:100%}.h-full{height:100%}.w-full{width:100%}.flex-shrink,.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[shimmer-sweep_6s_infinite_linear\]{animation:6s linear infinite shimmer-sweep}.resize{resize:both}.columns-4{columns:4}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.overflow-hidden{overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[linear-gradient\(110deg\,\#ffffff\,45\%\,\#c01227\,55\%\,\#ffffff\)\]{background-image:linear-gradient(110deg,#fff,45%,#c01227,55%,#fff)}.bg-\[length\:250\%_100\%\]{background-size:250% 100%}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.text-wrap{text-wrap:wrap}.text-transparent{color:#0000}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}html{scroll-behavior:smooth}.body-container{overflow:visible!important}:root{--space-section:clamp(40px, 5vw, 64px);--space-section-lg:clamp(52px, 6vw, 80px);--space-hero-gap:clamp(36px, 4.5vw, 64px);--dm-mobile-gutter:10px}.dm-section{padding-top:var(--space-section)!important;padding-bottom:var(--space-section)!important}.dm-section-lg{padding-top:var(--space-section-lg)!important;padding-bottom:var(--space-section-lg)!important}.elementor-86 .elementor-element.elementor-element-88745f4{margin-top:var(--space-hero-gap)!important}.elementor.elementor-61 .elementor-element.elementor-element-30fd9d1,.elementor.elementor-61 .elementor-element.elementor-element-b62c0b3,.elementor.elementor-61 .elementor-element.elementor-element-89a0ca1,.elementor.elementor-61 .elementor-element.elementor-element-88745f4,.elementor.elementor-61 .elementor-element.elementor-element-bbc6760,.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc{margin-top:var(--space-section)!important;margin-bottom:0!important}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth iframe{pointer-events:none}*,:before,:after{font-family:var(--font-manrope), "Manrope", system-ui, -apple-system, sans-serif}:not(i):not(svg):not(path):not(canvas):not(.fa):not(.fas):not(.far):not(.fab):not([class*=fa-]):not([class*=eicon-]):not([class*=fontello]){font-family:var(--font-manrope), "Manrope", system-ui, -apple-system, sans-serif!important}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}@media (min-width:1025px){#masthead .elementor-element.elementor-element-466de1b{padding:0 28px!important;top:5px!important}#masthead .elementor-element.elementor-element-e052838{background:0 0!important;border-radius:28px!important;margin-left:1.4%!important}#masthead .elementor-element.elementor-element-d681ece{align-items:center!important;min-height:104px!important}#masthead .elementor-element.elementor-element-472172e{padding-top:18px!important;padding-bottom:18px!important}#masthead .elementor-element.elementor-element-846e53d .hfe-site-logo .hfe-site-logo-container img{width:190px!important;height:auto!important;margin-left:24px!important}#masthead .elementor-element.elementor-element-e44ee7e,#masthead .elementor-element.elementor-element-f961133{padding-top:14px!important;padding-bottom:14px!important}#masthead .elementor-element.elementor-element-0b7bf6f>.elementor-widget-container{border-radius:22px!important;align-items:center!important;height:58px!important;padding:0 42px!important;display:flex!important}#masthead .elementor-element.elementor-element-0b7bf6f .header-menu-container .main-menu>li>a{white-space:nowrap!important;height:auto!important;min-height:auto!important;padding:6px 14px!important;font-size:15px!important;line-height:1.2!important}#masthead .header-menu-container .main-menu{gap:8px!important}#masthead .elementor-element.elementor-element-cabdb09 a.header-button{border-radius:24px!important;min-width:185px!important;min-height:58px!important;padding:0 34px!important;font-size:18px!important;line-height:58px!important}#masthead .elementor-element.elementor-element-466de1b.dm-header-scrolled{border-radius:24px!important;width:auto!important;top:15px!important;left:20px!important;right:20px!important}}.dm-contact-section{color:#fff;background:#1f1f1f;grid-template-columns:minmax(0,1fr) minmax(420px,48%);min-height:720px;margin:0;display:grid;position:relative;overflow:hidden}.dm-contact-left{min-width:0;padding:clamp(48px,5vw,76px) clamp(28px,5vw,72px);position:relative;overflow:hidden}.dm-contact-map{z-index:0;opacity:.34;pointer-events:none;-webkit-user-select:none;user-select:none;width:min(980px,112%);max-width:none;position:absolute;bottom:-1%;left:-5%}.dm-contact-kicker,.dm-contact-title,.dm-contact-copy,.dm-contact-info{z-index:1;position:relative}.dm-contact-kicker{color:#fff;margin:0 0 clamp(44px,5vw,64px);font-size:clamp(16px,1.2vw,20px);font-weight:600;line-height:1.2}.dm-contact-title{color:#fff;letter-spacing:0;text-transform:uppercase;max-width:850px;margin:0;font-size:clamp(44px,5.2vw,86px);font-weight:400;line-height:1.18}.dm-contact-copy{color:#ffffffeb;margin:clamp(36px,4.5vw,58px) 0 0;font-size:clamp(18px,1.55vw,26px);font-weight:400;line-height:1.45}.dm-contact-info{grid-template-columns:minmax(180px,.85fr) minmax(260px,1.45fr);gap:clamp(32px,5vw,74px);max-width:860px;margin-top:clamp(72px,7vw,114px);display:grid}.dm-contact-info-item h3{color:#fff;margin:0 0 32px;font-size:clamp(18px,1.5vw,25px);font-weight:800;line-height:1.2}.dm-contact-info-item p{color:#fff;margin:0;font-size:clamp(17px,1.35vw,24px);font-weight:500;line-height:1.6}.dm-contact-card{color:#1b1b1b;background:#fff;border-radius:34px 34px 0 0;align-self:stretch;min-width:0;margin:22px 34px 0 0;padding:clamp(72px,7vw,132px) clamp(42px,7.2vw,150px) clamp(50px,5.5vw,82px)}.dm-contact-card h3{color:#1b1b1b;letter-spacing:0;margin:0 0 clamp(44px,5vw,68px);font-size:clamp(34px,2.6vw,45px);font-weight:800;line-height:1.1}.dm-contact-form{flex-direction:column;gap:28px;display:flex}.dm-contact-form label{margin:0;display:block}.dm-contact-form label>span{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dm-contact-form input,.dm-contact-form textarea{color:#1b1b1b;width:100%;box-shadow:none;background:#fff;border:1.5px solid #a9a9a9;border-radius:14px;outline:none;margin:0;font-family:inherit;font-size:clamp(17px,1.05vw,20px);font-weight:500;line-height:1.4;transition:border-color .2s,box-shadow .2s}.dm-contact-form input{height:72px;padding:0 28px}.dm-contact-form textarea{resize:vertical;min-height:250px;padding:24px 28px}.dm-contact-form input::placeholder,.dm-contact-form textarea::placeholder{color:#9c9c9c;opacity:1}.dm-contact-form input:focus,.dm-contact-form textarea:focus{border-color:#c01227;box-shadow:0 0 0 3px #c012271c}.dm-contact-status{margin:-6px 0 0;font-size:15px;font-weight:700;line-height:1.4}.dm-contact-status-success{color:#247a3d}.dm-contact-status-error{color:#c01227}.dm-contact-submit{color:#2d2d2d;cursor:pointer;background:#fff;border:1.5px solid #e31d32;border-radius:14px;align-self:flex-start;align-items:stretch;height:72px;margin-top:26px;padding:0;font-family:inherit;font-size:clamp(16px,1.02vw,19px);font-weight:800;line-height:1;transition:transform .2s,border-color .2s,color .2s;display:inline-flex;overflow:hidden}.dm-contact-submit span:first-child{justify-content:center;align-items:center;min-width:220px;padding:0 34px;display:inline-flex}.dm-contact-submit-icon{background:#c01227;width:70px;min-width:70px;display:inline-flex;position:relative}.dm-contact-submit-icon:before,.dm-contact-submit-icon:after{content:"";background:#fff;position:absolute}.dm-contact-submit-icon:before{transform-origin:100%;width:28px;height:3px;top:35px;left:23px;transform:rotate(-45deg)}.dm-contact-submit-icon:after{background:0 0;border-top:3px solid #fff;border-right:3px solid #fff;width:16px;height:16px;top:25px;right:25px}.dm-contact-submit:hover,.dm-contact-submit:focus-visible{color:#111;border-color:#c01227;transform:translateY(-1px)}.dm-contact-submit:disabled{cursor:wait;opacity:.72}@media (max-width:1200px){.dm-contact-section{grid-template-columns:1fr}.dm-contact-left{min-height:640px}.dm-contact-card{border-radius:28px;margin:0 28px 40px}}@media (max-width:720px){.dm-contact-left{min-height:auto;padding:42px 20px 58px}.dm-contact-title{font-size:clamp(38px,12vw,58px)}.dm-contact-info{grid-template-columns:1fr;gap:42px;margin-top:54px}.dm-contact-info-item h3{margin-bottom:18px}.dm-contact-card{border-radius:28px;margin:0 20px 28px;padding:28px 20px 24px}.dm-contact-card h3{margin-bottom:24px}.dm-contact-form{gap:18px}.dm-contact-form input{height:56px;padding:0 18px}.dm-contact-form textarea{min-height:170px;padding:18px}.dm-contact-submit{width:100%;height:60px}.dm-contact-submit span:first-child{flex:auto;min-width:0;padding:0 20px}.dm-contact-submit-icon{width:60px;min-width:60px}}.industry-solutions-grid{grid-template-columns:repeat(3,1fr);gap:30px;width:100%;margin:30px 0 0;display:grid}@media (max-width:1024px){.industry-solutions-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.industry-solutions-grid{grid-template-columns:1fr}.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc{--padding-left:0px!important;--padding-right:0px!important;box-sizing:border-box!important;padding-left:0!important;padding-right:0!important}.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc>.e-con-inner{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}}@media (max-width:767px){.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc>.e-con-inner{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}.elementor.elementor-61 .elementor-element.elementor-element-d602f7f{box-sizing:border-box;--padding-left:20px!important;--padding-right:20px!important;width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:20px!important;padding-right:20px!important}.elementor.elementor-61 .elementor-element.elementor-element-f64bd88,.elementor.elementor-61 .elementor-element.elementor-element-5ed2dbb,.elementor.elementor-61 .elementor-element.elementor-element-6829276{box-sizing:border-box;--padding-left:0px!important;--padding-right:0px!important;--margin-left:0px!important;--margin-right:0px!important;width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}.elementor.elementor-61 .elementor-element.elementor-element-6829276{--e-con-grid-template-columns:minmax(0, 1fr)!important;--grid-justify-content:stretch!important;--justify-items:stretch!important;grid-template-columns:minmax(0,1fr)!important;justify-content:stretch!important;justify-items:stretch!important;min-width:0!important}.elementor.elementor-61 .industry-solutions-grid,.elementor.elementor-61 .industry-card-link{width:100%;min-width:0;max-width:100%}.elementor.elementor-61 .industry-solutions-grid{margin-left:0!important;margin-right:0!important}.elementor.elementor-61 .elementor-element.elementor-element-89a0ca1,.elementor.elementor-86 .elementor-element.elementor-element-c2c601a,.elementor.elementor-104 .elementor-element.elementor-element-c70681e{--padding-left:var(--dm-mobile-gutter)!important;--padding-right:var(--dm-mobile-gutter)!important;padding-left:var(--dm-mobile-gutter)!important;padding-right:var(--dm-mobile-gutter)!important;box-sizing:border-box!important}.elementor.elementor-61 .elementor-element.elementor-element-89a0ca1>.e-con-inner,.elementor.elementor-86 .elementor-element.elementor-element-c2c601a>.e-con-inner,.elementor.elementor-104 .elementor-element.elementor-element-c70681e>.e-con-inner{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}.elementor.elementor-61 .elementor-element.elementor-element-89a0ca1>.e-con-inner>.e-con,.elementor.elementor-86 .elementor-element.elementor-element-c2c601a>.e-con-inner>.e-con,.elementor.elementor-104 .elementor-element.elementor-element-c70681e>.e-con-inner>.e-con{--padding-left:0px!important;--padding-right:0px!important;box-sizing:border-box!important;width:100%!important;max-width:100%!important;padding-left:0!important;padding-right:0!important}.comparison-section .container{width:calc(100% - (var(--dm-mobile-gutter) * 2))!important;max-width:calc(100% - (var(--dm-mobile-gutter) * 2))!important;box-sizing:border-box!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}.wcd-inner{box-sizing:border-box!important;width:100%!important;max-width:100%!important;padding-left:0!important;padding-right:0!important}}.industry-card-link{background:#121212;border-radius:30px;height:600px;text-decoration:none;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s;display:block;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000001f}.industry-card-link:after{content:"";z-index:6;pointer-events:none;border:1px solid #ffffff14;border-radius:30px;transition:border-color .4s;position:absolute;inset:0}@keyframes shimmer-sweep{0%{background-position:200%}to{background-position:-200%}}.industry-card-link:before{content:"";z-index:7;pointer-events:none;background:linear-gradient(90deg,#fff0 0%,#ffffff2e 50%,#fff0 100%);width:60%;height:100%;position:absolute;top:0;left:0;transform:translate(-150%)skew(-25deg)}.industry-card-link:hover:before{animation:1.2s cubic-bezier(.2,.8,.2,1) forwards shimmer-sweep}.industry-card-link:hover{transform:translateY(-5px);box-shadow:0 20px 40px #c0122740}.industry-card-link:hover:after{border-color:#ffffff40}.industry-card-bg{z-index:1;transition:transform .6s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0}.industry-card-link:hover .industry-card-bg{transform:scale(1.04)}.industry-card-overlay{z-index:2;background:linear-gradient(#0000 0%,#0000004d 50%,#000000d9 100%);transition:opacity .4s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0}.industry-card-link:hover .industry-card-overlay{opacity:0}.industry-card-hover-bg{z-index:3;opacity:0;background:linear-gradient(#d71428cc 0%,#c01227e0 100%);transition:opacity .4s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0}.industry-card-link:hover .industry-card-hover-bg{opacity:1}.industry-card-default-content{z-index:4;opacity:1;transition:opacity .3s,transform .3s;position:absolute;bottom:40px;left:24px;transform:translateY(0)}.industry-card-link:hover .industry-card-default-content{opacity:0;transform:translateY(10px)}.industry-card-default-title{color:#fff!important;letter-spacing:-.3px!important;text-transform:none!important;font-size:22px!important;font-weight:700!important;line-height:1.2!important;font-family:var(--font-manrope), "Manrope", system-ui, -apple-system, sans-serif!important;margin:0!important}.industry-card-hover-content{z-index:5;opacity:0;pointer-events:none;flex-direction:column;justify-content:space-between;padding:40px 24px;transition:opacity .4s cubic-bezier(.2,.8,.2,1),transform .4s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;inset:0;transform:translateY(6px)}.industry-card-link:hover .industry-card-hover-content{opacity:1;pointer-events:auto;transform:translateY(0)}.industry-card-hover-top{flex-direction:column;gap:20px;display:flex}.industry-card-hover-top:before{content:"";background:#ffffff40;width:100%;height:1px;margin-bottom:5px;display:block}.industry-card-description{color:#fff!important;letter-spacing:-.2px!important;font-size:18px!important;font-weight:600!important;line-height:1.4!important;font-family:var(--font-manrope), "Manrope", system-ui, -apple-system, sans-serif!important;margin:0!important}.industry-card-section-title{color:#fff!important;letter-spacing:1.5px!important;text-transform:uppercase!important;opacity:.9!important;font-size:12px!important;font-weight:800!important;font-family:var(--font-manrope), "Manrope", system-ui, -apple-system, sans-serif!important;margin-bottom:10px!important}.industry-card-list{flex-direction:column!important;gap:6px!important;margin:0!important;padding:0!important;list-style:none!important;display:flex!important}.industry-card-list-item{opacity:0;transition:opacity .3s cubic-bezier(.2,.8,.2,1),transform .3s cubic-bezier(.2,.8,.2,1);transform:translateY(5px);color:#ffffffe6!important;font-size:15px!important;line-height:1.4!important;font-family:var(--font-manrope), "Manrope", system-ui, -apple-system, sans-serif!important;padding-left:18px!important;position:relative!important}.industry-card-link:hover .industry-card-list-item{opacity:1;transform:translateY(0)}.industry-card-list-item.bullet-1{transition-delay:40ms}.industry-card-list-item.bullet-2{transition-delay:80ms}.industry-card-list-item.bullet-3{transition-delay:.12s}.industry-card-list-item.bullet-4{transition-delay:.16s}.industry-card-list-item.bullet-5{transition-delay:.2s}.industry-card-list-item.bullet-6{transition-delay:.24s}.industry-card-list-item:before{content:""!important;background-color:#fff!important;border-radius:50%!important;width:6px!important;height:6px!important;position:absolute!important;top:7px!important;left:0!important}.industry-card-hover-bottom{align-items:center;gap:15px;display:flex}.industry-card-hover-icon{color:#c01227;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:transform .4s cubic-bezier(.2,.8,.2,1),background-color .3s,color .3s;display:flex;box-shadow:0 4px 10px #0000001a}.industry-card-link:hover .industry-card-hover-icon{color:#c01227;background-color:#fff;transform:scale(1.08)translateY(-2px)}.industry-card-hover-title{color:#fff!important;font-size:24px!important;font-weight:700!important;font-family:var(--font-manrope), "Manrope", system-ui, -apple-system, sans-serif!important;text-transform:none!important;letter-spacing:-.5px!important;margin:0!important}.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc{display:flex}.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc>.e-con-inner{box-sizing:border-box;flex-direction:column;width:100%;max-width:1480px;margin-left:auto;margin-right:auto;display:flex;padding-left:clamp(20px,4vw,50px)!important;padding-right:clamp(20px,4vw,50px)!important}.dm-section-container{box-sizing:border-box;width:100%;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}@media (max-width:1024px){.dm-section-container{padding-left:var(--dm-mobile-gutter,10px);padding-right:var(--dm-mobile-gutter,10px)}}@media (min-width:1025px){.wings-hero-page.elementor-element-741f56c,.af-hero-page.elementor-element-741f56c{--padding-top:20px;--padding-right:20px;--padding-bottom:20px;--padding-left:20px;padding:20px!important}}.custom-standard-hero-container{box-sizing:border-box!important;flex-direction:column!important;width:100%!important;max-width:100%!important;margin:0 auto!important;padding:20px!important;display:flex!important;position:relative!important}.custom-standard-hero-card{width:100%!important;height:800px!important;min-height:800px!important;box-shadow:none!important;background-position:50%!important;background-repeat:no-repeat!important;background-size:cover!important;border-radius:25px!important;justify-content:center!important;align-items:center!important;margin:0!important;display:flex!important;position:relative!important;overflow:hidden!important}.custom-standard-hero-card:before{content:""!important;background:var(--hero-overlay,linear-gradient(to bottom, #00000073 0%, #000000c7 55%, #000000f2 100%))!important;z-index:1!important;position:absolute!important;inset:0!important}.custom-standard-hero-card>*{z-index:2!important;position:relative!important}@media (max-width:1024px){.custom-standard-hero-container{padding:0 10px 10px!important}}@media (max-width:840px){.custom-standard-hero-card{border-radius:22px!important;height:600px!important;min-height:600px!important}body .elementor .elementor-element.elementor-element-741f56c,body .custom-standard-hero-container,body .miletruth-hero .elementor-element.elementor-element-86f3204{width:100%!important;max-width:100%!important;padding:0 var(--dm-mobile-gutter) var(--dm-mobile-gutter) var(--dm-mobile-gutter)!important;--padding-top:0px!important;--padding-right:var(--dm-mobile-gutter)!important;--padding-bottom:var(--dm-mobile-gutter)!important;--padding-left:var(--dm-mobile-gutter)!important;--padding-block-start:0px!important;box-sizing:border-box!important;border-radius:0!important;margin-top:0!important;margin-bottom:0!important;overflow:visible!important}body .elementor .elementor-element.elementor-element-6c7cbcb .owl-stage-outer,body .custom-standard-hero-card,body .miletruth-hero .miletruth-hero-container{box-sizing:border-box!important;border-radius:25px!important;width:100%!important;height:600px!important;min-height:600px!important;margin-top:0!important;margin-bottom:0!important;overflow:hidden!important}body .elementor .elementor-element.elementor-element-6c7cbcb .owl-carousel.owl-theme .content-item,body .elementor .elementor-element.elementor-element-6c7cbcb .content-item,body .miletruth-hero .slide-content{height:600px!important;min-height:600px!important}body .elementor .elementor-element.elementor-element-741f56c+*,body .custom-standard-hero-container+*,body .elementor-63.miletruth-hero+*{margin-top:0!important}}@media (max-width:480px){body .elementor .elementor-element.elementor-element-6c7cbcb .owl-stage-outer,body .custom-standard-hero-card,body .miletruth-hero .miletruth-hero-container{border-radius:25px!important;height:520px!important;min-height:520px!important;margin-top:7px!important}body .elementor .elementor-element.elementor-element-6c7cbcb .owl-carousel.owl-theme .content-item,body .elementor .elementor-element.elementor-element-6c7cbcb .content-item,body .miletruth-hero .slide-content{height:520px!important;min-height:520px!important}body .miletruth-hero .miletruth-hero-container{padding-top:60px!important;padding-bottom:60px!important}}@media (max-width:1024px){.elementor-element.elementor-element-741f56c{--padding-top:0px!important;--padding-block-start:0px!important;padding-top:0!important}.miletruth-hero-container{margin-top:0!important}.elementor-86 #women-entrepreneurship.elementor-element-bbc6760,.elementor-86 .comparison-section,.elementor-86 .elementor-element.elementor-element-bbc6760:not(#women-entrepreneurship),.elementor-86 .elementor-element.elementor-element-c2c601a,.elementor-59 .elementor-element.elementor-element-bbc6760,.elementor-104 .elementor-element.elementor-element-c70681e{margin-top:var(--space-section)!important;margin-bottom:0!important}.elementor-59 .elementor-element.elementor-element-3b4a7cc{margin-top:var(--space-hero-gap)!important;margin-bottom:0!important}.elementor-86 .elementor-element.elementor-element-88745f4:first-of-type{margin-top:var(--space-hero-gap)!important}.elementor-86 .elementor-element.elementor-element-88745f4~.elementor-element.elementor-element-88745f4{margin-top:var(--space-section)!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false} diff --git a/build/.next/static/chunks/14-blkg1qzgwa.js b/build/.next/static/chunks/14-blkg1qzgwa.js new file mode 100644 index 0000000..cbd9244 --- /dev/null +++ b/build/.next/static/chunks/14-blkg1qzgwa.js @@ -0,0 +1,702 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18566,(e,t,i)=>{t.exports=e.r(76562)},82637,e=>{"use strict";var t=e.i(43476),i=e.i(71645);let n=(0,i.createContext)(null);e.s(["HeaderUIProvider",0,function({children:e}){let[l,o]=(0,i.useState)(!1),[a,r]=(0,i.useState)(!1),s=(0,i.useCallback)(()=>{o(e=>!e),r(!1)},[]),d=(0,i.useCallback)(()=>{r(e=>!e),o(!1)},[]),c=(0,i.useCallback)(()=>{o(!1),r(!1)},[]);return(0,t.jsx)(n.Provider,{value:{isMenuOpen:l,isSidebarOpen:a,toggleMenu:s,toggleSidebar:d,closeAll:c},children:e})},"useHeaderUI",0,function(){let e=(0,i.useContext)(n);if(!e)throw Error("useHeaderUI must be used inside ");return e}])},3374,e=>{"use strict";var t=e.i(43476),i=e.i(71645),n=e.i(22016),l=e.i(57688),o=e.i(18566),a=e.i(82637);let r={"/":"home","/how-it-works":"how-it-works","/miletruth":"miletruth","/solutions":"solutions","/about":"about","/doormile-wings":"doormile-wings","/empowerment":"entarpreneurship","/express":"express","/about-us":"about","/blog":"blogs","/contact":"contact","/privacy-policy":"privacy-policy","/terms-of-service":"terms-of-service","/cookie-policy":"cookie-policy"},s={home:["home"],"how-it-works":["how-it-works","how-its-works"],miletruth:["miletruth"],solutions:["solutions"],"doormile-wings":["doormile-wings"],entarpreneurship:["entarpreneurship"],blogs:["blogs"],contact:["contact"],"privacy-policy":["privacy-policy"],"terms-of-service":["terms-of-service"],"cookie-policy":["cookie-policy"],company:["blogs","how-it-works","about"]};e.s(["default",0,function(){let e=(0,o.usePathname)(),{isMenuOpen:d,isSidebarOpen:c,toggleMenu:m,toggleSidebar:h,closeAll:p}=(0,a.useHeaderUI)(),u="/"===e,g=r[e]??"";e.startsWith("/blog/")&&(g="blogs");let f=e=>(s[e]??[]).includes(g)?" active":"",x=(t,i,n,l=!1)=>{if(l&&C(),e!==i)return;t.preventDefault();let o=`${i}#${n}`;`${window.location.pathname}${window.location.hash}`!==o&&window.history.pushState(null,"",o),requestAnimationFrame(()=>{let e;(e=document.getElementById(n))?e.scrollIntoView({behavior:"smooth",block:"start"}):window.scrollTo({top:0,behavior:"smooth"})})},[w,b]=(0,i.useState)(!1),[v,y]=(0,i.useState)(!1),[j,k]=(0,i.useState)(!1),[N,_]=(0,i.useState)(!1),C=()=>{_(!1),p()};(0,i.useEffect)(()=>{let e=requestAnimationFrame(()=>{b(!0)});return()=>cancelAnimationFrame(e)},[]),(0,i.useEffect)(()=>{let e=null,t=()=>{null===e&&(e=requestAnimationFrame(()=>{y(window.scrollY>50),e=null}))};return t(),window.addEventListener("scroll",t),()=>{window.removeEventListener("scroll",t),null!==e&&cancelAnimationFrame(e)}},[]);let S=["elementor-element","elementor-element-466de1b","e-con-full","sticky-container-on","e-flex","cut-corner-no","e-con","e-parent","header-hide-until-scroll",w?"header-visible-scrolled":"",v?"dm-header-scrolled":""].filter(Boolean).join(" ");return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("header",{id:"masthead",itemScope:!0,itemType:"https://schema.org/WPHeader",children:[(0,t.jsx)("p",{className:"main-title bhf-hidden",itemProp:"headline",children:(0,t.jsx)(n.default,{href:"/",title:"Doormile",rel:"home",children:"Doormile"})}),(0,t.jsx)("div",{"data-elementor-type":"wp-post","data-elementor-id":"5180",className:"elementor elementor-5180",children:(0,t.jsxs)("div",{className:S,"data-id":"466de1b","data-element_type":"container","data-settings":'{"position":"absolute"}',style:u&&!w?{opacity:0,visibility:"hidden"}:void 0,children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-e052838 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"e052838","data-element_type":"container",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-d681ece e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"d681ece","data-element_type":"container",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-472172e e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"472172e","data-element_type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-2f31137 elementor-hidden-laptop elementor-hidden-tablet_extra elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile elementor-widget elementor-widget-logico_slide_sidebar","data-id":"2f31137","data-element_type":"widget","data-widget_type":"logico_slide_sidebar.default",children:(0,t.jsxs)("div",{className:"elementor-widget-container",children:[(0,t.jsx)("div",{className:"logico-slide-sidebar-widget",children:(0,t.jsx)("div",{className:"dropdown-trigger","data-id":"2f31137",onClick:h,children:(0,t.jsx)("span",{className:"dropdown-trigger-icon"})})}),(0,t.jsxs)("div",{style:{zIndex:1e5},className:`slide-sidebar-wrapper slide-sidebar-position-left${c?" active":""}`,id:"side-panel-2f31137",children:[(0,t.jsx)("div",{className:"slide-sidebar-close",onClick:p}),(0,t.jsxs)("div",{className:"slide-sidebar",children:[(0,t.jsx)("div",{className:"slide-sidebar-header",children:(0,t.jsx)("figure",{className:"wp-block-image size-full is-resized",children:(0,t.jsx)(l.default,{width:305,height:58,src:"/images/doormile-logo.png",alt:"Doormile logo",className:"wp-image-5851",style:{width:"210px",height:"auto"},sizes:"(max-width: 305px) 100vw, 305px"})})}),(0,t.jsx)("div",{className:"slide-sidebar-content",tabIndex:0,role:"region","aria-label":"Menu content",children:(0,t.jsx)("div",{id:"block-37",className:"widget widget_block",children:(0,t.jsx)("div",{className:"widget-wrapper",children:(0,t.jsxs)("div",{className:"dm-block-group is-layout-constrained dm-block-group-is-layout-constrained",children:[(0,t.jsx)("div",{className:"wp-block-title",children:(0,t.jsx)("h6",{className:"wp-block-heading has-text-font-font-family",style:{fontSize:"18px",fontStyle:"normal",fontWeight:700,letterSpacing:"0px",textTransform:"none"},children:"Address"})}),(0,t.jsx)("h6",{className:"wp-block-heading has-text-font-font-family",style:{fontSize:"14px",fontStyle:"normal",fontWeight:700,letterSpacing:"0px",textTransform:"none"},children:"Hyderabad"}),(0,t.jsxs)("p",{children:["5th Floor, Vision Ultima,",(0,t.jsx)("br",{}),"Street No.3, Jayabheri Enclave,",(0,t.jsx)("br",{}),"Gachibowli, Hyderabad,",(0,t.jsx)("br",{}),"Telangana 500032."]}),(0,t.jsx)("div",{style:{height:"12px"},"aria-hidden":"true",className:"wp-block-spacer"}),(0,t.jsx)("h6",{className:"wp-block-heading has-text-font-font-family",style:{fontSize:"14px",fontStyle:"normal",fontWeight:700,letterSpacing:"0px",textTransform:"none"},children:"Coimbatore"}),(0,t.jsxs)("p",{children:["Mayflower Valencia,",(0,t.jsx)("br",{}),"Near Nava India Bus Stop,",(0,t.jsx)("br",{}),"Avinashi Road,",(0,t.jsx)("br",{}),"Udayampalayam,",(0,t.jsx)("br",{}),"Tamil Nadu 641037."]}),(0,t.jsx)("div",{style:{height:"12px"},"aria-hidden":"true",className:"wp-block-spacer"}),(0,t.jsx)("h6",{className:"wp-block-heading has-text-font-font-family",style:{fontSize:"14px",fontStyle:"normal",fontWeight:700,letterSpacing:"0px",textTransform:"none"},children:"Bengaluru"}),(0,t.jsxs)("p",{children:["C612, 6th Floor,",(0,t.jsx)("br",{}),"Trifecta Starlight,",(0,t.jsx)("br",{}),"ITPL Road,",(0,t.jsx)("br",{}),"Garudacharapalya,",(0,t.jsx)("br",{}),"Mahadevapura,",(0,t.jsx)("br",{}),"Bangalore 560048,",(0,t.jsx)("br",{}),"Karnataka, India."]}),(0,t.jsx)("div",{style:{height:"3px"},"aria-hidden":"true",className:"wp-block-spacer"}),(0,t.jsx)("div",{className:"wp-block-title",children:(0,t.jsx)("h6",{className:"wp-block-heading has-text-font-font-family",style:{fontSize:"18px",fontStyle:"normal",fontWeight:700,letterSpacing:"0px",textTransform:"none"},children:"Contact Us"})}),(0,t.jsx)("p",{children:"Tel : +91 86886 97941"}),(0,t.jsx)("div",{style:{height:"3px"},"aria-hidden":"true",className:"wp-block-spacer"}),(0,t.jsx)("div",{className:"wp-block-title",children:(0,t.jsx)("h6",{className:"wp-block-heading has-text-font-font-family",style:{fontSize:"18px",fontStyle:"normal",fontWeight:700,letterSpacing:"0px",textTransform:"none"},children:"Email"})}),(0,t.jsx)("p",{children:(0,t.jsx)("a",{href:"mailto:care@doormile.com","data-wplink-edit":"true",children:"care@doormile.com"})}),(0,t.jsx)("div",{style:{height:"3px"},"aria-hidden":"true",className:"wp-block-spacer"}),(0,t.jsxs)("ul",{className:"wp-block-social-links has-icon-color is-style-logos-only has-background is-layout-flex wp-block-social-links-is-layout-flex",style:{backgroundColor:"#1f1f1f"},children:[(0,t.jsx)("li",{style:{color:"#ffffff"},className:"wp-social-link wp-social-link-facebook has-white-color wp-block-social-link",children:(0,t.jsxs)("a",{rel:"noopener nofollow",target:"_blank",href:"https://www.facebook.com/",className:"wp-block-social-link-anchor",children:[(0,t.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",children:(0,t.jsx)("path",{d:"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"})}),(0,t.jsx)("span",{className:"wp-block-social-link-label screen-reader-text",children:"Facebook"})]})}),(0,t.jsx)("li",{style:{color:"#ffffff"},className:"wp-social-link wp-social-link-x has-white-color wp-block-social-link",children:(0,t.jsxs)("a",{rel:"noopener nofollow",target:"_blank",href:"https://x.com/",className:"wp-block-social-link-anchor",children:[(0,t.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",children:(0,t.jsx)("path",{d:"M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z"})}),(0,t.jsx)("span",{className:"wp-block-social-link-label screen-reader-text",children:"X"})]})}),(0,t.jsx)("li",{style:{color:"#ffffff"},className:"wp-social-link wp-social-link-linkedin has-white-color wp-block-social-link",children:(0,t.jsxs)("a",{rel:"noopener nofollow",target:"_blank",href:"https://www.linkedin.com/",className:"wp-block-social-link-anchor",children:[(0,t.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",children:(0,t.jsx)("path",{d:"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"})}),(0,t.jsx)("span",{className:"wp-block-social-link-label screen-reader-text",children:"LinkedIn"})]})}),(0,t.jsx)("li",{style:{color:"#ffffff"},className:"wp-social-link wp-social-link-youtube has-white-color wp-block-social-link",children:(0,t.jsxs)("a",{rel:"noopener nofollow",target:"_blank",href:"https://www.youtube.com/",className:"wp-block-social-link-anchor",children:[(0,t.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",children:(0,t.jsx)("path",{d:"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"})}),(0,t.jsx)("span",{className:"wp-block-social-link-label screen-reader-text",children:"YouTube"})]})})]})]})})})}),(0,t.jsx)("div",{className:"slide-sidebar-cta",children:(0,t.jsx)("div",{className:"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex",children:(0,t.jsx)("div",{className:"wp-block-button is-style-simple is-style-theme",children:(0,t.jsx)(n.default,{href:"/contact",className:"wp-block-button__link wp-element-button",style:{borderRadius:"10px"},children:"Get in touch"})})})})]})]})]})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-846e53d elementor-widget elementor-widget-site-logo","data-id":"846e53d","data-element_type":"widget","data-widget_type":"site-logo.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"hfe-site-logo",children:(0,t.jsx)(n.default,{"data-elementor-open-lightbox":"",className:"elementor-clickable",href:"/",children:(0,t.jsx)("div",{className:"hfe-site-logo-set",children:(0,t.jsxs)("div",{className:"hfe-site-logo-container",children:[(0,t.jsx)(l.default,{width:748,height:100,className:"hfe-site-logo-img logo-desktop elementor-animation-",src:"/images/doormile-white.png",alt:"doormile-logo",priority:!0}),(0,t.jsx)(l.default,{width:748,height:100,className:"hfe-site-logo-img logo-mobile elementor-animation-",src:"/images/doormile-black.png",alt:"doormile-logo",priority:!0})]})})})})})})]}),(0,t.jsx)("div",{className:"elementor-element elementor-element-e44ee7e e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"e44ee7e","data-element_type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-0b7bf6f logico-breakpoint-laptop elementor-widget__width-auto elementor-widget elementor-widget-logico_navigation_menu","data-id":"0b7bf6f","data-element_type":"widget","data-widget_type":"logico_navigation_menu.default",children:(0,t.jsxs)("div",{className:"elementor-widget-container",children:[(0,t.jsx)("div",{className:"header-menu-container",children:(0,t.jsx)("nav",{children:(0,t.jsxs)("ul",{id:"menu-main-menu",className:"main-menu",children:[(0,t.jsx)("li",{id:"menu-item-10508",className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10508${f("home")}`,children:(0,t.jsx)(n.default,{href:"/#home",onClick:e=>x(e,"/","home"),children:"Home"})}),(0,t.jsx)("li",{id:"menu-item-10509",className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10509${f("doormile-wings")}`,children:(0,t.jsx)(n.default,{href:"/doormile-wings",prefetch:!0,children:"Wings"})}),(0,t.jsx)("li",{id:"menu-item-10510",className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10510${f("miletruth")}`,children:(0,t.jsx)(n.default,{href:"/miletruth#miletruth",onClick:e=>x(e,"/miletruth","miletruth"),children:"MileTruth™ AI"})}),(0,t.jsx)("li",{id:"menu-item-10511",className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10511${f("solutions")}`,children:(0,t.jsx)(n.default,{href:"/solutions",prefetch:!0,children:"Solutions"})}),(0,t.jsx)("li",{id:"menu-item-10513",className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10513${f("entarpreneurship")}`,children:(0,t.jsx)(n.default,{href:"/empowerment",prefetch:!0,children:"Entrepreneurship"})}),(0,t.jsxs)("li",{id:"menu-item-10535",className:`menu-item menu-item-type-custom menu-item-has-children menu-item-10535${f("company")}`,onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),onKeyDown:e=>{"Escape"===e.key&&(k(!1),e.currentTarget.querySelector(":scope > a")?.focus())},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||k(!1)},children:[(0,t.jsx)("a",{href:"#","aria-haspopup":"true","aria-expanded":j,onFocus:()=>k(!0),onClick:e=>{e.preventDefault(),k(e=>!e)},children:"Company"}),(0,t.jsxs)("ul",{className:"dm-solutions-dropdown",children:[(0,t.jsx)("li",{className:"about"===g?"dm-child-active":"",children:(0,t.jsx)(n.default,{href:"/about-us#about",onClick:e=>{k(!1),x(e,"/about-us","about")},children:"About"})}),(0,t.jsx)("li",{className:"blogs"===g?"dm-child-active":"",children:(0,t.jsx)(n.default,{href:"/blog#blogs",onClick:e=>{k(!1),x(e,"/blog","blogs")},children:"Blogs"})}),(0,t.jsx)("li",{className:"how-it-works"===g?"dm-child-active":"",children:(0,t.jsx)(n.default,{href:"/how-it-works#how-it-works",onClick:e=>{k(!1),x(e,"/how-it-works","how-it-works")},children:"How It Works"})})]})]})]})})}),(0,t.jsx)("div",{className:"menu-trigger","data-id":"0b7bf6f",onClick:()=>{_(!1),m()},children:(0,t.jsx)("span",{className:"menu-trigger-icon",children:(0,t.jsxs)("span",{className:"hamburger",children:[(0,t.jsx)("span",{}),(0,t.jsx)("span",{}),(0,t.jsx)("span",{})]})})}),(0,t.jsxs)("div",{style:{zIndex:1e5},className:`mobile-header-menu-container${d?" active":""}`,id:"mobile-header-0b7bf6f",children:[(0,t.jsx)("div",{className:"mobile-header-row",children:(0,t.jsxs)("div",{className:"header-icons-container",children:[(0,t.jsx)("div",{className:"header-icon login-logout",children:(0,t.jsx)("a",{href:"#",title:"Login/Register",className:"link-login"})}),(0,t.jsx)("div",{className:"header-icon menu-close",onClick:C,children:(0,t.jsx)("span",{className:"menu-close-icon"})})]})}),(0,t.jsx)("nav",{children:(0,t.jsxs)("ul",{id:"menu-main-menu-1",className:"main-menu",children:[(0,t.jsx)("li",{className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10508${f("home")}`,children:(0,t.jsx)(n.default,{href:"/#home",onClick:e=>x(e,"/","home",!0),children:"Home"})}),(0,t.jsx)("li",{className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10509${f("doormile-wings")}`,children:(0,t.jsx)(n.default,{href:"/doormile-wings",prefetch:!0,onClick:C,children:"Wings"})}),(0,t.jsx)("li",{className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10510${f("miletruth")}`,children:(0,t.jsx)(n.default,{href:"/miletruth#miletruth",onClick:e=>x(e,"/miletruth","miletruth",!0),children:"MileTruth™ AI"})}),(0,t.jsx)("li",{className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10511${f("solutions")}`,children:(0,t.jsx)(n.default,{href:"/solutions",prefetch:!0,onClick:C,children:"Solutions"})}),(0,t.jsx)("li",{className:`menu-item menu-item-type-custom menu-item-object-custom menu-item-10513${f("entarpreneurship")}`,children:(0,t.jsx)(n.default,{href:"/empowerment",prefetch:!0,onClick:C,children:"Entrepreneurship"})}),(0,t.jsxs)("li",{className:`menu-item menu-item-type-custom menu-item-10535 dm-mobile-solutions${f("company")}${N?" dm-accordion-open":""}`,children:[(0,t.jsxs)("div",{className:"dm-mobile-solutions-row",children:[(0,t.jsx)("a",{href:"#",onClick:e=>{e.preventDefault(),_(e=>!e)},children:"Company"}),(0,t.jsx)("button",{type:"button",className:"dm-mobile-solutions-toggle","aria-label":N?"Close Company menu":"Open Company menu","aria-haspopup":"true","aria-expanded":N,onClick:()=>_(e=>!e),children:(0,t.jsx)("span",{className:"dm-accordion-chevron","aria-hidden":"true"})})]}),(0,t.jsxs)("ul",{className:"dm-mobile-solutions-panel",children:[(0,t.jsx)("li",{className:"about"===g?"dm-child-active":"",children:(0,t.jsx)(n.default,{href:"/about-us#about",onClick:e=>x(e,"/about-us","about",!0),children:"About"})}),(0,t.jsx)("li",{className:"blogs"===g?"dm-child-active":"",children:(0,t.jsx)(n.default,{href:"/blog#blogs",onClick:e=>x(e,"/blog","blogs",!0),children:"Blogs"})}),(0,t.jsx)("li",{className:"how-it-works"===g?"dm-child-active":"",children:(0,t.jsx)(n.default,{href:"/how-it-works#how-it-works",onClick:e=>x(e,"/how-it-works","how-it-works",!0),children:"How It Works"})})]})]})]})}),(0,t.jsxs)("div",{className:"header-mobile-contacts",children:[(0,t.jsxs)("div",{className:"contact-item contact-item-phone",children:[(0,t.jsx)("span",{className:"contact-item-label",children:"Phone"}),(0,t.jsx)("div",{className:"contact-item-value",children:(0,t.jsx)("p",{children:"Tel : +91 86886 97941"})})]}),(0,t.jsxs)("div",{className:"contact-item contact-item-email",children:[(0,t.jsx)("span",{className:"contact-item-label",children:"Email"}),(0,t.jsx)("div",{className:"contact-item-value",children:(0,t.jsx)("p",{children:(0,t.jsx)("a",{href:"mailto:care@doormile.com","data-wplink-edit":"true",children:"care@doormile.com"})})})]})]}),(0,t.jsx)("div",{className:"header-mobile-socials",children:(0,t.jsxs)("ul",{className:"mobile-menu-socials wrapper-socials",children:[(0,t.jsx)("li",{children:(0,t.jsx)("a",{href:"https://www.facebook.com/",target:"_blank","aria-label":"Facebook",rel:"noreferrer",children:(0,t.jsx)("svg",{"aria-hidden":"true",width:"18",height:"18",viewBox:"0 0 320 512",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",children:(0,t.jsx)("path",{d:"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"})})})}),(0,t.jsx)("li",{children:(0,t.jsx)("a",{href:"https://x.com/",target:"_blank","aria-label":"X (Twitter)",rel:"noreferrer",children:(0,t.jsx)("svg",{"aria-hidden":"true",width:"18",height:"18",viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",children:(0,t.jsx)("path",{d:"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"})})})}),(0,t.jsx)("li",{children:(0,t.jsx)("a",{href:"https://www.linkedin.com/",target:"_blank","aria-label":"LinkedIn",rel:"noreferrer",children:(0,t.jsx)("svg",{"aria-hidden":"true",width:"18",height:"18",viewBox:"0 0 448 512",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",children:(0,t.jsx)("path",{d:"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"})})})}),(0,t.jsx)("li",{children:(0,t.jsx)("a",{href:"https://www.youtube.com/",target:"_blank","aria-label":"YouTube",rel:"noreferrer",children:(0,t.jsx)("svg",{"aria-hidden":"true",width:"18",height:"18",viewBox:"0 0 576 512",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",children:(0,t.jsx)("path",{d:"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"})})})})]})}),(0,t.jsx)("div",{className:"header-mobile-button",children:(0,t.jsx)(n.default,{className:"logico-alter-button",href:"/contact",children:"Get in Touch"})})]})]})})})]})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-f961133 e-con-full elementor-hidden-laptop elementor-hidden-tablet_extra elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"f961133","data-element_type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-cabdb09 elementor-widget elementor-widget-logico_header_button","data-id":"cabdb09","data-element_type":"widget","data-widget_type":"logico_header_button.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"header-button-container",children:(0,t.jsx)(n.default,{href:"/contact",className:"header-button header-button-animation-fade",children:"Contact Us"})})})})})]})})]}),(0,t.jsx)("style",{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:` + /* ── Off-canvas menu: full-height flex column ── + Header (logo) at top, scrollable content in the middle, and the + "Get in touch" CTA pinned at the bottom — so the panel stays + usable however much content (e.g. multiple office addresses) it + holds. Scoped to #side-panel-2f31137; no other sidebar is touched. + Width, colors, the slide-in animation, and open/close behaviour + (driven by the .active class on the wrapper) are all unchanged. */ + #side-panel-2f31137 .slide-sidebar { + display: flex !important; + flex-direction: column !important; + height: 100% !important; + padding: 0 !important; /* the three sections own their padding */ + overflow: hidden !important; /* scrolling lives on the content area */ + } + /* Fit the *visible* viewport. The panel height is calc(100vh - 20px), + but on mobile 100vh is the larger, URL-bar-inclusive height, which + pushed the bottom of the scroll list + the CTA below the fold and + made scrolling appear broken. dvh tracks the actually-visible area; + vh is kept as a fallback for older browsers. */ + #side-panel-2f31137.slide-sidebar-wrapper { + height: calc(100vh - 20px); + height: calc(100dvh - 20px) !important; + } + #side-panel-2f31137 .slide-sidebar-header { + flex: 0 0 auto; + padding: 52px 36px 18px; /* top clears the floating close button */ + text-align: center; /* centre the logo */ + } + #side-panel-2f31137 .slide-sidebar-header figure { + margin: 0; + text-align: center; + } + #side-panel-2f31137 .slide-sidebar-header img { + display: inline-block; /* centred by the header's text-align */ + } + #side-panel-2f31137 .slide-sidebar-content { + flex: 1 1 auto; + min-height: 0; /* let the flex child shrink so it can scroll */ + overflow-y: auto; + overflow-x: hidden; + -webkit-overflow-scrolling: touch; /* momentum scroll on iOS */ + overscroll-behavior: contain; /* don't chain scroll to the page */ + padding: 18px 60px 8px; /* top gap below the logo header */ + } + #side-panel-2f31137 .slide-sidebar-content:focus-visible { + outline: none; /* container is scroll-focusable, not a control */ + } + #side-panel-2f31137 .slide-sidebar-cta { + flex: 0 0 auto; + padding: 16px 60px 36px; + } + /* Compact, readable address blocks (tighter line + lead-in than the + default 1.75em body spacing). */ + #side-panel-2f31137 .slide-sidebar-content p { + line-height: 1.5; + margin-top: 4px; + } + /* Larger social icons — the logos-only block style renders them at 18px. */ + #side-panel-2f31137 .wp-block-social-links.is-style-logos-only .wp-block-social-link a svg { + width: 26px !important; + height: 26px !important; + } + + #masthead .elementor-element.elementor-element-466de1b { + position: absolute !important; + top: 5px !important; + left: 0 !important; + right: 0 !important; + width: auto !important; + transition: background-color 0.25s ease, box-shadow 0.25s ease, padding 0.25s ease !important; + z-index: 10000 !important; + } + + /* .e-con's --padding-* falls through two competing stylesheets and lands at 10px locally + (vs 0 in production). Zero out the pill wrappers so the navbar matches prod height (~122px). */ + #masthead .elementor-element.elementor-element-e052838, + #masthead .elementor-element.elementor-element-d681ece { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + @media (min-width: 1025px) { + #masthead { + position: relative; + z-index: 10000; + } + + /* Production pins the wrapper via Elementor sticky-effects JS (not shipped here). + Force position:fixed once scrolled past 50px so the header stays in viewport. */ + #masthead .elementor-element.elementor-element-466de1b.dm-header-scrolled { + position: fixed !important; + background: rgba(26, 26, 26, 0.92) !important; + -webkit-backdrop-filter: blur(14px) !important; + backdrop-filter: blur(14px) !important; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22) !important; + top: 0 !important; + } + + #masthead .elementor-element.elementor-element-466de1b.dm-header-scrolled .elementor-element.elementor-element-e052838 { + background: transparent !important; + } + } + + /* ── Desktop navbar layout (3-section balanced grid) ── + The earlier Mac-M1 fix used justify-content:space-between, which + on wide screens flung the logo and nav to opposite edges and + left a large asymmetric gap between them. Replace it with a + responsive three-column grid so the nav stays optically centred + with equal space on both sides, the logo group sits left and the + Contact button right — proportional at every desktop width. + + The logo group (472172e) and nav (e44ee7e) are nested inside + e052838 › d681ece, while the Contact button (f961133) is their + uncle. Those two wrappers carry no visual styling on desktop + (their background/padding live only in the <1024px mobile block), + so display:contents flattens them and promotes all three logical + sections to be direct items of one header grid. The grid only + applies >=1025px, leaving the mobile pill layout untouched. */ + @media (min-width: 1025px) { + #masthead .elementor-element.elementor-element-466de1b { + display: grid !important; + grid-template-columns: 1fr auto 1fr !important; + align-items: center !important; + column-gap: clamp(16px, 2vw, 32px) !important; + /* Equal left/right safe areas pull the logo and Contact + button inward off the viewport edges. Because the inset + is symmetric, the 1fr side columns shrink equally and the + centred nav does not shift. */ + padding-inline: clamp(24px, 3vw, 48px) !important; + /* Consistent top/bottom breathing room inside the bar; with + align-items:center every section stays vertically centred. */ + padding-block: clamp(8px, 1vw, 16px) !important; + } + + #masthead .elementor-element.elementor-element-e052838, + #masthead .elementor-element.elementor-element-d681ece { + display: contents !important; + } + + /* navbar-left: menu/grid icon + logo */ + #masthead .elementor-element.elementor-element-472172e { + justify-self: start !important; + display: flex !important; + align-items: center !important; + gap: clamp(16px, 1.5vw, 28px) !important; + flex: 0 0 auto !important; + } + + /* Logo never shrinks — keeps a clean edge against the nav. */ + #masthead .elementor-element.elementor-element-846e53d { + flex-shrink: 0 !important; + } + + /* navbar-center: navigation menu, optically centred. */ + #masthead .elementor-element.elementor-element-e44ee7e { + justify-self: center !important; + display: flex !important; + align-items: center !important; + } + + /* navbar-right: Contact button, aligned to the right edge. */ + #masthead .elementor-element.elementor-element-f961133 { + justify-self: end !important; + } + } + + #masthead .header-menu-container .main-menu > li.active > a:before { + background-color: #ffffff !important; + opacity: 1 !important; + } + + #masthead .header-menu-container .main-menu > li.active > a { + color: #ffffff !important; + } + + #masthead .header-menu-container .main-menu > li > a:focus, + #masthead .header-menu-container .main-menu > li > a:focus-visible { + outline: none !important; + box-shadow: none !important; + } + + /* Responsive logo adjustment on mobile/tablet */ + @media (max-width: 1024px) { + #masthead .elementor-element.elementor-element-466de1b { + top: 18px !important; + } + #masthead .elementor-element.elementor-element-846e53d .hfe-site-logo .hfe-site-logo-container img { + width: 150px !important; + height: auto !important; + margin-left: 20px !important; + } + #masthead .header-menu-container { + display: none !important; + } + #masthead .menu-trigger { + display: block !important; + } + + /* Sticky header on scroll for mobile/tablet too — the desktop + rule lived only in the min-width:1025px block, so on phones the + absolutely-positioned navbar scrolled away with the page. Pin it + to the top once scrolled past 50px, matching desktop behaviour. */ + #masthead .elementor-element.elementor-element-466de1b.dm-header-scrolled { + position: fixed !important; + top: 18px !important; + left: 0 !important; + right: 0 !important; + } + + #masthead .elementor-element.elementor-element-e052838 { + margin-left: 0px !important; + margin-right: 0px !important; + border-radius: 16px !important; + } + } + + @media (max-width: 480px) { + #masthead .elementor-element.elementor-element-846e53d .hfe-site-logo .hfe-site-logo-container img { + width: 150px !important; + margin-left: 8px !important; + } + } + + /* The theme reveals the mobile slide-in menu via Elementor's + body[data-elementor-device-mode="mobile"] rules, which are set by + Elementor's frontend JS — that JS isn't shipped in this Next port, + so the panel stayed display:none and the hamburger opened nothing. + Restore it with the same 1024px breakpoint the nav already switches + at. The panel sits off-screen (right:-320px) until .active slides + it in, matching production behaviour. */ + @media (max-width: 1024px) { + #masthead .elementor-widget-logico_navigation_menu .mobile-header-menu-container { + display: block !important; + } + } + + /* The bundled 'fontello' subset is missing the search (\\e85c) and + close (\\e845) glyphs, so those two icons render as empty tofu + boxes. Replace them with inline SVGs via CSS masks so they paint + in the current text colour (matching the working cart/user icons) + and respond to hover. */ + #masthead .header-icon.search-link .search-trigger-icon::before, + #masthead .header-icon.menu-close .menu-close-icon::before { + content: "" !important; + display: block; + width: 1em; + height: 1em; + background-color: currentColor; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-size: contain; + mask-size: contain; + } + #masthead .header-icon.search-link .search-trigger-icon::before { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.5' y1='16.5' x2='21' y2='21'/%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='16.5' y1='16.5' x2='21' y2='21'/%3E%3C/svg%3E"); + } + #masthead .header-icon.menu-close .menu-close-icon::before { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='5' y1='5' x2='19' y2='19'/%3E%3Cline x1='19' y1='5' x2='5' y2='19'/%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='5' y1='5' x2='19' y2='19'/%3E%3Cline x1='19' y1='5' x2='5' y2='19'/%3E%3C/svg%3E"); + } + + /* ── Company dropdown (desktop) / accordion (mobile) ── + Company (Blogs + How It Works) is a non-navigating parent — + its trigger is a plain anchor with no href target, only a + dropdown toggle. Class names below (.dm-solutions-dropdown, + .dm-mobile-solutions*) are unchanged from when this same + component/markup belonged to Solutions, reusing site.css's dead + .menu-item-has-children chevron (fontello glyph, already + coloured white for this exact header widget) instead of + inventing a new arrow. Desktop opens on hover/focus; mobile is a + height-collapsing accordion controlled by the chevron button. */ + @media (min-width: 1025px) { + #masthead .header-menu-container nav { + display: flex; + align-items: center; + } + + #masthead .header-menu-container .main-menu { + display: inline-flex !important; + align-items: center; + gap: 16px !important; + margin: 0 !important; + line-height: 1; + } + + #masthead .header-menu-container .main-menu > li { + display: flex; + align-items: center; + margin-right: 0 !important; + } + + #masthead .header-menu-container .main-menu > li > a { + display: inline-flex !important; + align-items: center; + justify-content: center; + padding-top: 0 !important; + padding-bottom: 0 !important; + min-height: 48px; + line-height: 1.2 !important; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children { + position: relative; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children:after { + content: ""; + position: absolute; + top: 100%; + left: 50%; + width: 100%; + min-width: 360px; + height: 24px; + transform: translateX(-50%); + pointer-events: auto; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown { + position: absolute; + top: 100%; + left: 50%; + transform: translate(-50%, 34px); + width: 240px; + min-width: 240px; + margin: 0; + padding: 12px; + list-style: none; + background: linear-gradient(180deg, rgba(31, 31, 31, 0.98) 0%, rgba(18, 18, 18, 0.98) 100%); + -webkit-backdrop-filter: blur(20px); + backdrop-filter: blur(20px); + box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.08); + border: 1px solid rgba(255, 255, 255, 0.09); + border-radius: 18px; + opacity: 0; + visibility: hidden; + pointer-events: none; + transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s; + z-index: 20; + } + + /* .main-menu li:not(:last-of-type) (site.css) is a descendant + selector that also matches these nested
  • s, pushing every + row but the last 12px to the right. Cancel it here. */ + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li { + margin-right: 0 !important; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li + li { + margin-top: 10px; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li > a { + display: flex; + align-items: center; + justify-content: flex-start; + gap: 10px; + height: 48px; + padding: 0 16px; + border-radius: 10px; + /* Hardcoded rather than var(--logico-dark-text-color): that + variable is only overridden to white inside a few unrelated + scoped contexts (e.g. #side-panel-2f31137) and otherwise + falls back to the sitewide light-theme value (#111111), + which would be invisible on this dark glass panel. */ + color: rgba(255, 255, 255, 0.85); + font-family: var(--font-manrope), "Manrope", sans-serif; + font-size: 15px; + font-weight: 600; + line-height: 1.25; + letter-spacing: normal; + white-space: nowrap; + text-decoration: none; + transition: background-color 0.25s ease, color 0.25s ease, padding-left 0.25s ease; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li > a:before { + content: ""; + width: 11px; + height: 11px; + margin-left: -16px; + flex: 0 0 11px; + background-color: #c01227; + opacity: 0; + transform: translateX(-10px); + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12 12 4'/%3E%3Cpath d='M5 4h7v7'/%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12 12 4'/%3E%3Cpath d='M5 4h7v7'/%3E%3C/svg%3E"); + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-size: contain; + mask-size: contain; + transition: opacity 0.25s ease-in-out, transform 0.25s ease-in-out, background-color 0.25s ease-in-out; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li > a:hover, + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li > a:focus-visible { + background-color: rgba(255, 255, 255, 0.08); + color: #ffffff; + padding-left: 22px; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li > a:hover:before, + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li > a:focus-visible:before { + opacity: 1; + transform: translateX(0); + background-color: #c01227; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children .dm-solutions-dropdown li.dm-child-active > a { + color: #ffffff; + font-weight: 700; + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children > a[aria-expanded="true"] ~ .dm-solutions-dropdown { + opacity: 1; + visibility: visible; + pointer-events: auto; + transform: translate(-50%, 24px); + } + + #masthead .header-menu-container .main-menu > li.menu-item-has-children > a[aria-expanded="true"]:after { + transform: rotate(180deg); + } + + /* Outlines are globally suppressed for .main-menu>li>a above; + restore a visible focus ring scoped only to this trigger. */ + #masthead .header-menu-container .main-menu > li.menu-item-has-children > a:focus-visible { + outline: 2px solid var(--logico-dark-text-color, #ffffff); + outline-offset: 6px; + border-radius: 4px; + } + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions-row { + display: flex !important; + align-items: center; + justify-content: space-between; + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions-row > a { + display: block; + flex: 1 1 auto; + padding: 0.75em 0; + color: var(--logico-default-text-color); + text-decoration: none; + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions-toggle { + display: inline-flex; + align-items: center; + justify-content: center; + width: 44px; + height: 44px; + margin: 0; + padding: 0; + flex: 0 0 44px; + border: 0; + background: transparent; + color: var(--logico-default-text-color); + cursor: pointer; + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions-toggle:focus-visible { + outline: 2px solid currentColor; + outline-offset: 2px; + border-radius: 4px; + } + + #masthead .mobile-header-menu-container .dm-accordion-chevron { + display: inline-block; + width: 0.7em; + height: 0.7em; + flex: 0 0 auto; + background-color: currentColor; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-size: contain; + mask-size: contain; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); + transition: transform 0.3s ease; + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions.dm-accordion-open .dm-accordion-chevron { + transform: rotate(180deg); + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions-panel { + max-height: 0; + overflow: hidden; + list-style: none; + margin: 0; + padding: 0; + padding-left: 18px; + transition: max-height 0.3s ease; + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions.dm-accordion-open .dm-mobile-solutions-panel { + max-height: 160px; + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions-panel > li { + font-size: 0.9em; + } + + /* .mobile-header-menu-container ul.main-menu>li>a (site.css) only + matches direct children of .main-menu, so these nested links + fall through to the sitewide generic underlined-anchor default. + Restore the plain sibling-item look explicitly. */ + #masthead .mobile-header-menu-container .dm-mobile-solutions-panel > li > a { + display: block; + padding: 0.35em 0; + color: var(--logico-default-text-color); + text-decoration: none; + } + + /* A vendor li:before rule (checkmark bullet, likely intended for a + feature-list style elsewhere) leaks through here since the reset + at .mobile-header-menu-container ul.main-menu>li:before only + matches direct children of .main-menu, not this nested li. + Suppress it on both the
  • and — these child rows aren't + top-level nav items and shouldn't carry any bullet/indicator. */ + #masthead .mobile-header-menu-container .dm-mobile-solutions-panel > li:before, + #masthead .mobile-header-menu-container .dm-mobile-solutions-panel > li > a:before { + content: none !important; + display: none !important; + } + + #masthead .mobile-header-menu-container .dm-mobile-solutions-panel > li.dm-child-active > a { + color: var(--logico-light-text-color); + text-decoration: underline; + } + `}})]})}])},95187,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var n={callServer:function(){return o.callServer},createServerReference:function(){return r.createServerReference},findSourceMapURL:function(){return a.findSourceMapURL}};for(var l in n)Object.defineProperty(i,l,{enumerable:!0,get:n[l]});let o=e.r(32120),a=e.r(92245),r=e.r(35326)},58234,e=>{"use strict";var t=e.i(43476),i=e.i(71645),n=e.i(22016),l=e.i(57688),o=e.i(95187);let a=(0,o.createServerReference)("40275f0c2193420edd4a0270f91d8fd12134ede38f",o.callServer,void 0,o.findSourceMapURL,"sendEmailAction");var r=e.i(2018);e.s(["default",0,function(){let e={"--grid-column-gap":"52px","--grid-row-gap":"18px",columnGap:"52px",rowGap:"18px"},[o,s]=(0,i.useState)(!1),[d,c]=(0,i.useState)({fullName:"",email:"",subject:"",message:""}),[m,h]=(0,i.useState)("idle");(0,i.useEffect)(()=>{let e=()=>{window.scrollY>300?s(!0):s(!1)};return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)},[]);let p=e=>{let{name:t,value:i}=e.target;c(e=>({...e,[t]:i})),("success"===m||"error"===m)&&h("idle")},u=async e=>{e.preventDefault(),h("submitting");try{let e=await a(d);e.success?(h("success"),c({fullName:"",email:"",subject:"",message:""})):(console.error("Failed to submit contact form:",e.error),h("error"))}catch(e){console.error("Error submitting contact form:",e),h("error")}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .logico-form-field.dm-field-filled .logico-label-wrapper>label { + font-size: 14px; + top: -14px; + color: var(--logico-dark-text-color); + } + .logico-form-field.dm-field-filled .logico-label-placeholder .logico-label-placeholder-text:before { + right: 100%; + left: initial; + } + .logico-form-field.dm-field-filled .logico-label-placeholder .logico-label-placeholder-text:after { + left: 100%; + right: initial; + } + `}}),(0,t.jsx)("footer",{"data-rocket-location-hash":"1eeca93394c4fc14089e9d12a2a92e22",itemScope:!0,itemType:"https://schema.org/WPFooter",id:"colophon",role:"contentinfo",children:(0,t.jsx)("div",{className:"footer-width-fixer",children:(0,t.jsx)("div",{"data-elementor-type":"wp-post","data-elementor-id":"6585",className:"elementor elementor-6585",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-3cd920c e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"3cd920c","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-b29b8fc e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"b29b8fc","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',children:(0,t.jsxs)("div",{className:"e-con-inner",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-ef6fa6d e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"ef6fa6d","data-element_type":"container","data-e-type":"container",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-9990148 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"9990148","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-8899bdf elementor-absolute elementor-widget elementor-widget-image","data-id":"8899bdf","data-element_type":"widget","data-e-type":"widget","data-settings":'{"_position":"absolute"}',"data-widget_type":"image.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)(l.default,{width:965,height:474,src:"/images/bg-map.png",className:"attachment-full size-full wp-image-1148",alt:""})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-a0e7516 elementor-widget elementor-widget-logico_heading","data-id":"a0e7516","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"/ get in touch /"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-687d944 elementor-widget elementor-widget-logico_heading","data-id":"687d944","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)(r.ScrollReveal,{delay:.1,duration:.8,yOffset:25,children:(0,t.jsx)("h3",{className:"logico-title",style:{color:"white"},children:"We are always ready to help you and answer your questions"})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-670d1b2 elementor-widget elementor-widget-text-editor","data-id":"670d1b2","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"Connecting businesses with fast, secure, smart deliveries."})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-2631b42 e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"2631b42","data-element_type":"container","data-e-type":"container",children:(0,t.jsxs)("div",{className:"e-con-inner",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-df89993 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"df89993","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-69b6892 elementor-widget elementor-widget-logico_heading","data-id":"69b6892","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"logico-title dm-foot-label",children:[(0,t.jsx)("svg",{className:"dm-foot-ic",width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"})}),(0,t.jsx)("span",{children:"Contact"})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-87be926 elementor-widget elementor-widget-text-editor","data-id":"87be926","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"Tel : +91 86886 97941"})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-f5d8e63 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"f5d8e63","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-774e540 elementor-widget elementor-widget-logico_heading","data-id":"774e540","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"logico-title dm-foot-label",children:[(0,t.jsxs)("svg",{className:"dm-foot-ic",width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"}),(0,t.jsx)("circle",{cx:"12",cy:"10",r:"3"})]}),(0,t.jsx)("span",{children:"Address"})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-9c1cf03 elementor-widget elementor-widget-text-editor","data-id":"9c1cf03","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:"5th Floor, Vision Ultima, Street No.3, Jayabheri Enclave, Gachibowli, Hyderabad, Telangana 500032."})})})]})]})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-645be8d e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child","data-id":"645be8d","data-element_type":"container","data-e-type":"container",children:(0,t.jsxs)("div",{className:"e-con-inner",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-a96d151 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"a96d151","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-37e647f elementor-widget elementor-widget-logico_heading","data-id":"37e647f","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"logico-title dm-foot-label",children:[(0,t.jsxs)("svg",{className:"dm-foot-ic",width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,t.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2"}),(0,t.jsx)("path",{d:"m22 7-10 5L2 7"})]}),(0,t.jsx)("span",{children:"Email"})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-ba67644 elementor-widget elementor-widget-text-editor","data-id":"ba67644","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:(0,t.jsx)("a",{href:"mailto:care@doormile.com",children:"care@doormile.com"})})})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-9ba4b82 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"9ba4b82","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-e9a5d79 elementor-widget elementor-widget-logico_heading","data-id":"e9a5d79","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"logico-title dm-foot-label",children:[(0,t.jsxs)("svg",{className:"dm-foot-ic",width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,t.jsx)("circle",{cx:"18",cy:"5",r:"3"}),(0,t.jsx)("circle",{cx:"6",cy:"12",r:"3"}),(0,t.jsx)("circle",{cx:"18",cy:"19",r:"3"}),(0,t.jsx)("line",{x1:"8.59",y1:"13.51",x2:"15.42",y2:"17.49"}),(0,t.jsx)("line",{x1:"15.41",y1:"6.51",x2:"8.59",y2:"10.49"})]}),(0,t.jsx)("span",{children:"Social"})]})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-a6bccba elementor-shape-square elementor-grid-0 elementor-widget elementor-widget-social-icons","data-id":"a6bccba","data-element_type":"widget","data-e-type":"widget","data-widget_type":"social-icons.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-social-icons-wrapper elementor-grid",role:"list",style:e,children:[(0,t.jsx)("span",{className:"elementor-grid-item",role:"listitem",style:{padding:"0 15px"},children:(0,t.jsxs)("a",{className:"elementor-icon elementor-social-icon elementor-social-icon-linkedin-in elementor-repeater-item-38e1bcc",href:"https://www.linkedin.com",target:"_blank",rel:"noopener noreferrer",children:[(0,t.jsx)("span",{className:"elementor-screen-only",children:"LinkedIn"}),(0,t.jsx)("svg",{"aria-hidden":"true",className:"e-font-icon-svg e-fab-linkedin-in",viewBox:"0 0 448 512",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"})})]})}),(0,t.jsx)("span",{className:"elementor-grid-item",role:"listitem",style:{padding:"0 15px"},children:(0,t.jsxs)("a",{className:"elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-b0d5e1f",href:"https://www.youtube.com",target:"_blank",rel:"noopener noreferrer",children:[(0,t.jsx)("span",{className:"elementor-screen-only",children:"YouTube"}),(0,t.jsx)("svg",{"aria-hidden":"true",className:"e-font-icon-svg e-fab-youtube",viewBox:"0 0 576 512",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"})})]})})]})})})]})]})})]}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-a5c503d e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"a5c503d","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-535776a elementor-widget elementor-widget-logico_heading","data-id":"535776a","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-title",children:"Get in Touch"})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-0e6fedf elementor-widget elementor-widget-logico_wpforms","data-id":"0e6fedf","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_wpforms.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-wpforms-widget",children:(0,t.jsx)("div",{className:"wpforms-container wpforms-render-modern",id:"wpforms-369",children:(0,t.jsxs)("form",{id:"wpforms-form-369",className:"wpforms-validate wpforms-form",onSubmit:u,children:[(0,t.jsxs)("div",{className:"wpforms-field-container",children:[(0,t.jsxs)("div",{className:`wpforms-field-wrapper logico-form-field${d.fullName?" dm-field-filled":""}`,children:[(0,t.jsxs)("div",{className:"logico-label-wrapper",style:{marginBottom:"12px"},children:[(0,t.jsx)("div",{className:"logico-label-placeholder",children:(0,t.jsx)("div",{className:"logico-label-placeholder-text",children:"Full name"})}),(0,t.jsx)("label",{className:"wpforms-field-label",htmlFor:"footer-field-name",children:"Full name"})]}),(0,t.jsx)("input",{type:"text",id:"footer-field-name",className:"wpforms-field-large",name:"fullName",value:d.fullName,onChange:p,required:!0})]}),(0,t.jsxs)("div",{className:`wpforms-field-wrapper logico-form-field${d.email?" dm-field-filled":""}`,children:[(0,t.jsxs)("div",{className:"logico-label-wrapper",style:{marginBottom:"12px"},children:[(0,t.jsx)("div",{className:"logico-label-placeholder",children:(0,t.jsx)("div",{className:"logico-label-placeholder-text",children:"Email"})}),(0,t.jsx)("label",{className:"wpforms-field-label",htmlFor:"footer-field-email",children:"Email"})]}),(0,t.jsx)("input",{type:"email",id:"footer-field-email",className:"wpforms-field-large",name:"email",value:d.email,onChange:p,required:!0})]}),(0,t.jsxs)("div",{className:`wpforms-field-wrapper logico-form-field${d.subject?" dm-field-filled":""}`,children:[(0,t.jsxs)("div",{className:"logico-label-wrapper",style:{marginBottom:"12px"},children:[(0,t.jsx)("div",{className:"logico-label-placeholder",children:(0,t.jsx)("div",{className:"logico-label-placeholder-text",children:"Subject"})}),(0,t.jsx)("label",{className:"wpforms-field-label",htmlFor:"footer-field-subject",children:"Subject"})]}),(0,t.jsx)("input",{type:"text",id:"footer-field-subject",className:"wpforms-field-large",name:"subject",value:d.subject,onChange:p,required:!0})]}),(0,t.jsxs)("div",{className:`wpforms-field-wrapper logico-form-field${d.message?" dm-field-filled":""}`,children:[(0,t.jsxs)("div",{className:"logico-label-wrapper",style:{marginBottom:"12px"},children:[(0,t.jsx)("div",{className:"logico-label-placeholder",children:(0,t.jsx)("div",{className:"logico-label-placeholder-text",children:"Message"})}),(0,t.jsx)("label",{className:"wpforms-field-label",htmlFor:"footer-field-message",children:"Message"})]}),(0,t.jsx)("textarea",{id:"footer-field-message",className:"wpforms-field-large",name:"message",value:d.message,onChange:p,required:!0})]})]}),(0,t.jsxs)("div",{className:"wpforms-submit-container",children:[(0,t.jsx)("button",{type:"submit",id:"wpforms-submit-369",className:"logico-alter-button wpforms-submit",disabled:"submitting"===m,children:"submitting"===m?"Sending...":"Send a message"}),"success"===m&&(0,t.jsx)("div",{style:{marginTop:"16px",color:"#4CAF50",fontSize:"14px",fontWeight:"bold"},children:"Message sent successfully!"}),"error"===m&&(0,t.jsx)("div",{style:{color:"#f44336",marginTop:"10px",fontSize:"14px"},children:"Failed to send message. Please try again."})]})]})})})})})]})]}),(0,t.jsx)("div",{className:"elementor-element elementor-element-e183a77 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"e183a77","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-5219697 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5219697","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-e6af8aa elementor-widget__width-initial elementor-widget elementor-widget-logico_heading","data-id":"e6af8aa","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)(r.ScrollReveal,{delay:.1,duration:.8,yOffset:25,children:(0,t.jsxs)("h2",{className:"logico-title",children:["Delivered ",(0,t.jsx)("span",{style:{color:"#c01227"},children:"on time"})," with no hassle."]})})})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-ba22941 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"ba22941","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-54629ca elementor-widget-divider--view-line elementor-widget elementor-widget-divider","data-id":"54629ca","data-element_type":"widget","data-e-type":"widget","data-widget_type":"divider.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"elementor-divider",children:(0,t.jsx)("span",{className:"elementor-divider-separator"})})})})}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-3f1ba7a e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3f1ba7a","data-element_type":"container","data-e-type":"container",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-64e2e81 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"64e2e81","data-element_type":"container","data-e-type":"container",children:[(0,t.jsx)("div",{className:"elementor-element elementor-element-b5c897d elementor-widget elementor-widget-image","data-id":"b5c897d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"image.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)(n.default,{href:"/",children:(0,t.jsx)(l.default,{width:748,height:184,src:"/images/logo-slogan.png",style:{width:"280px",height:"auto"},className:"attachment-full size-full wp-image-5851",alt:"Doormile Tagline"})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-e4e6486 elementor-shape-square elementor-grid-0 elementor-widget elementor-widget-social-icons","data-id":"e4e6486","data-element_type":"widget","data-e-type":"widget","data-widget_type":"social-icons.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("div",{className:"elementor-social-icons-wrapper elementor-grid",role:"list",style:e,children:[(0,t.jsx)("span",{className:"elementor-grid-item",role:"listitem",style:{padding:"0 15px"},children:(0,t.jsxs)("a",{className:"elementor-icon elementor-social-icon elementor-social-icon-linkedin-in",href:"https://www.linkedin.com",target:"_blank",rel:"noopener noreferrer",children:[(0,t.jsx)("span",{className:"elementor-screen-only",children:"LinkedIn"}),(0,t.jsx)("svg",{"aria-hidden":"true",className:"e-font-icon-svg e-fab-linkedin-in",viewBox:"0 0 448 512",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"})})]})}),(0,t.jsx)("span",{className:"elementor-grid-item",role:"listitem",style:{padding:"0 15px"},children:(0,t.jsxs)("a",{className:"elementor-icon elementor-social-icon elementor-social-icon-youtube",href:"https://www.youtube.com",target:"_blank",rel:"noopener noreferrer",children:[(0,t.jsx)("span",{className:"elementor-screen-only",children:"YouTube"}),(0,t.jsx)("svg",{"aria-hidden":"true",className:"e-font-icon-svg e-fab-youtube",viewBox:"0 0 576 512",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"})})]})})]})})})]}),(0,t.jsx)("div",{className:"elementor-element elementor-element-5b73dd3 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5b73dd3","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-b2507df elementor-widget elementor-widget-logico_custom_navigation_menu","data-id":"b2507df","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_custom_navigation_menu.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("ul",{className:"logico-custom-menu-widget",children:[(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/miletruth",children:"MileTruth™"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/how-it-works",children:"How It Works"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/solutions",children:"Use Cases"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/contact",children:"Request Demo"})})]})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-451f15c e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"451f15c","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-a219b7d elementor-widget elementor-widget-logico_custom_navigation_menu","data-id":"a219b7d","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_custom_navigation_menu.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("ul",{className:"logico-custom-menu-widget",children:[(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/doormile-wings",children:"Doormile Wings"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/about-us",children:"About Us"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/about-us#women-entrepreneurship",children:"Women entrepreneurship"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/blog",children:"Blog"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/contact",children:"Contact"})})]})})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-44a1f5d e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"44a1f5d","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-189484a elementor-widget elementor-widget-logico_custom_navigation_menu","data-id":"189484a","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_custom_navigation_menu.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsxs)("ul",{className:"logico-custom-menu-widget",children:[(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/privacy-policy",children:"Privacy Policy"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/terms-of-service",children:"Terms of Service"})}),(0,t.jsx)("li",{children:(0,t.jsx)(n.default,{href:"/cookie-policy",children:"Cookie Policy"})})]})})})})]})]})})})})})}),(0,t.jsx)("div",{className:`footer-scroll-top ${o?"active":""}`,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})},style:{cursor:"pointer"}}),(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .elementor-6585 .elementor-element.elementor-element-e6af8aa .logico-title, + .elementor-6585 .elementor-element.elementor-element-3f1ba7a .logico-title, + .elementor-6585 .elementor-element.elementor-element-3f1ba7a .logico-custom-menu-widget { + font-family: var(--font-manrope), system-ui, -apple-system, "Segoe UI", sans-serif; + } + /* Prevent footer custom navigation menu items from wrapping on hover, + which causes layout shifts, height changes, and cursor flickering loops. */ + .elementor-6585 .logico-custom-menu-widget li a { + white-space: nowrap !important; + } + /* The divider widget is a flex child that should grow via Elementor's + --container-widget-flex-grow variable, but the base rule wiring that + variable to flex-grow lives in elementor-frontend.css (not loaded). */ + .elementor-6585 .elementor-element.elementor-element-54629ca { + flex-grow: 1; + width: 100%; + } + .elementor-6585 .elementor-element.elementor-element-54629ca .elementor-divider-separator { + display: block; + border-top: var(--divider-border-width, 1px) var(--divider-border-style, solid) var(--divider-color, #CBCBCB); + } + + /* Production renders footer social icons at ~25px; ours default to 50px because the + base Elementor icon-size rule (font-size + SVG width:1em) is in elementor-frontend.css + which isn't loaded. Match prod for both upper (a6bccba) and lower (e4e6486) groups. */ + .elementor-6585 .elementor-element.elementor-element-a6bccba .elementor-social-icon, + .elementor-6585 .elementor-element.elementor-element-e4e6486 .elementor-social-icon { + font-size: 16px; + } + .elementor-6585 .elementor-element.elementor-element-a6bccba .elementor-social-icon svg, + .elementor-6585 .elementor-element.elementor-element-e4e6486 .elementor-social-icon svg { + width: 25px; + height: 25px; + } + + /* Compact footer link columns on phones (<=480px). The kit only sets + column --width at min-width:481px, so below that all four blocks + fall back to 100% and stack into one very tall column. Put the + logo+social full-width on top, then lay the three link groups out + in a 2-up grid (matching the tablet 47% intent) so the footer is + roughly half as tall. */ + /* Inline icon beside each contact label (Call Center / Our Location / + Email / Social network). */ + .elementor-6585 .dm-foot-label { + display: inline-flex !important; + align-items: center; + gap: 8px; + } + .elementor-6585 .dm-foot-label .dm-foot-ic { + flex: 0 0 auto; + color: #C01227; + } + + /* ── Compact mobile contact footer (<=600px) ── + On phones the upper contact section stacked into one very tall + column with 50px margins between every block. Tighten the heading, + collapse those stack margins, and pair Email + Social side-by-side + (both are short) so the footer is far shorter without losing the + full-width address readability. */ + @media (max-width: 600px) { + /* Trim the band's oversized top/bottom padding on phones. */ + .elementor-6585 .elementor-element.elementor-element-b29b8fc > .e-con-inner { + padding-top: 40px !important; + padding-bottom: 40px !important; + } + .elementor-6585 .elementor-element.elementor-element-687d944 .logico-title { + font-size: clamp(24px, 6.6vw, 32px) !important; + line-height: 1.2 !important; + } + .elementor-6585 .dm-foot-label .dm-foot-ic { width: 14px; height: 14px; } + /* The Call Center / Our Location group carries a 10px side padding + the Email / Social group doesn't, leaving its labels indented + 10px out of line with everything else — zero it so all four + contact blocks share the same left edge as the heading. */ + .elementor-6585 .elementor-element.elementor-element-2631b42 { + padding-left: 0 !important; + padding-right: 0 !important; + } + /* All four contact blocks stack in one left-aligned column with a + consistent gap (Social network sits below Email). */ + .elementor-6585 .elementor-element.elementor-element-2631b42, + .elementor-6585 .elementor-element.elementor-element-f5d8e63, + .elementor-6585 .elementor-element.elementor-element-645be8d, + .elementor-6585 .elementor-element.elementor-element-9ba4b82 { + margin-top: 22px !important; + } + .elementor-6585 .elementor-element.elementor-element-645be8d > .e-con-inner { + flex-direction: column !important; + gap: 0 !important; + align-items: stretch !important; + } + .elementor-6585 .elementor-element.elementor-element-a96d151, + .elementor-6585 .elementor-element.elementor-element-9ba4b82 { + width: 100% !important; + } + } + + @media (max-width: 480px) { + .elementor-6585 .elementor-element.elementor-element-3f1ba7a { + display: flex !important; + flex-direction: row !important; + flex-wrap: wrap !important; + gap: 36px 16px !important; + } + .elementor-6585 .elementor-element.elementor-element-64e2e81 { + flex: 0 0 100% !important; + width: 100% !important; + } + .elementor-6585 .elementor-element.elementor-element-5b73dd3, + .elementor-6585 .elementor-element.elementor-element-451f15c, + .elementor-6585 .elementor-element.elementor-element-44a1f5d { + flex: 1 1 calc(50% - 8px) !important; + width: calc(50% - 8px) !important; + min-width: 0 !important; + } + /* Allow long links (e.g. "Women entrepreneurship") to wrap inside + the narrow columns instead of overflowing. */ + .elementor-6585 .logico-custom-menu-widget li a { + white-space: normal !important; + } + /* Trim the large social-icons top gap so the brand block stays tight. */ + .elementor-6585 .elementor-element.elementor-element-e4e6486 > .elementor-widget-container { + margin-top: 24px !important; + } + } + `}})]})}],58234)},67989,e=>{"use strict";var t=e.i(71645),i=e.i(18566);let n="wp-singular page-template-default page wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-kit-5 elementor-page",l={"/":`home-page ${n} page-id-61 elementor-page-61 is-home-page`,"/how-it-works":"wp-singular page-template-default page page-id-59 wp-theme-logico wp-child-theme-logico-child theme-logico ehf-header ehf-footer ehf-template-logico ehf-stylesheet-logico-child logico-front-end logico-theme-style-rounded elementor-default elementor-page elementor-page-59","/miletruth":`${n} page-id-59 elementor-page-59`,"/solutions":`${n} page-id-59 elementor-page-59`,"/about-us":`home ${n} page-id-59 elementor-page-59`,"/empowerment":`home ${n} page-id-59 elementor-page-59`,"/blog":`${n} page-id-59 elementor-page-59`,"/contact":`${n} page-id-59 elementor-page-59`};e.s(["default",0,function(){let e=(0,i.usePathname)();return(0,t.useEffect)(()=>{document.body.className=l[e]??n},[e]),null}],67989)},92260,e=>{"use strict";var t=e.i(43476),i=e.i(82637);e.s(["default",0,function(){let{isMenuOpen:e,isSidebarOpen:n,closeAll:l}=(0,i.useHeaderUI)();return(0,t.jsx)("div",{className:`body-overlay${e||n?" active":""}`,onClick:l})}])},48064,e=>{"use strict";var t=e.i(43476),i=e.i(71645),n=e.i(18566),l=e.i(89970),o=e.i(83495);e.s(["default",0,function({children:e}){let a=(0,n.usePathname)(),r=()=>{o.ScrollTrigger.getAll().forEach(e=>{e.vars&&"block-deco"===e.vars.id&&e.kill()});let e=window.innerHeight||document.documentElement.clientHeight;document.querySelectorAll(".block-decoration").forEach(t=>{o.ScrollTrigger.create({id:"block-deco",trigger:t,start:"top 92%",onEnter:()=>{setTimeout(()=>{t.classList.add("animated")},150)},onEnterBack:()=>{setTimeout(()=>{t.classList.add("animated")},150)},onLeave:()=>{t.classList.remove("animated")},onLeaveBack:()=>{t.classList.remove("animated")}});let i=t.getBoundingClientRect();i.top0&&t.classList.add("animated")})};return(0,i.useEffect)(()=>{let e;l.default.registerPlugin(o.ScrollTrigger),l.default.defaults({ease:"power3.out",duration:.8}),o.ScrollTrigger.config({ignoreMobileResize:!0}),r();let t=()=>{r(),o.ScrollTrigger.refresh(!0)};window.addEventListener("load",t);let i=()=>{clearTimeout(e),e=setTimeout(()=>{r(),o.ScrollTrigger.refresh(!0)},200)};return window.addEventListener("resize",i),()=>{clearTimeout(e),window.removeEventListener("load",t),window.removeEventListener("resize",i),o.ScrollTrigger.getAll().forEach(e=>e.kill())}},[]),(0,i.useEffect)(()=>{let e=()=>{r(),o.ScrollTrigger.refresh(!0)};e();let t=[setTimeout(e,100),setTimeout(e,400),setTimeout(e,800),setTimeout(e,1500)];return()=>{t.forEach(clearTimeout)}},[a]),(0,t.jsx)(t.Fragment,{children:e})}])},26290,e=>{"use strict";var t=e.i(71645),i=e.i(18566),n=e.i(89970),l=e.i(83495),o=e.i(92599);let a=["/how-it-works"];e.s(["default",0,function(){let e=(0,i.usePathname)();return(0,t.useEffect)(()=>{let t,i=a.some(t=>e===t||e.startsWith(`${t}/`)),r=window.matchMedia("(prefers-reduced-motion: reduce)").matches,s=window.matchMedia("(hover: hover) and (pointer: fine)").matches;if(i||r||!s){if(window.location.hash){let e=()=>{try{let e=document.querySelector(window.location.hash);e&&e.scrollIntoView()}catch(e){console.warn(e)}};e(),t=setTimeout(e,100)}else window.scrollTo(0,0);return()=>{t&&clearTimeout(t)}}n.default.registerPlugin(l.ScrollTrigger);let d="/miletruth"===e||e.startsWith("/miletruth/"),c=new o.default(d?{lerp:.13,wheelMultiplier:1.3,touchMultiplier:1.6,orientation:"vertical",gestureOrientation:"vertical",smoothWheel:!0}:{duration:1.05,easing:e=>Math.min(1,1.001-Math.pow(2,-10*e)),orientation:"vertical",gestureOrientation:"vertical",smoothWheel:!0});if(window.location.hash){let e=()=>{try{let e=document.querySelector(window.location.hash);e&&c.scrollTo(e,{immediate:!0})}catch(e){console.warn(e)}};e(),t=setTimeout(e,100)}else c.scrollTo(0,{immediate:!0}),window.scrollTo(0,0);c.on("scroll",l.ScrollTrigger.update);let m=e=>c.raf(1e3*e);return n.default.ticker.add(m),n.default.ticker.lagSmoothing(0),l.ScrollTrigger.refresh(),()=>{t&&clearTimeout(t),n.default.ticker.remove(m),c.destroy()}},[e]),null}])},8971,e=>{"use strict";var t=e.i(43476),i=e.i(71645),n=e.i(57688),l=e.i(18566);function o(e){return`${e.pathname}${e.search}`}e.s(["default",0,function(){let e=(0,l.usePathname)(),[a,r]=(0,i.useState)("hidden"),s=(0,i.useRef)("hidden"),d=(0,i.useRef)(0),c=(0,i.useRef)(null),m=(0,i.useRef)(null),h=(0,i.useRef)(null),p=(0,i.useRef)(null),u=e=>{s.current=e,r(e)},g=e=>{e.current&&(clearTimeout(e.current),e.current=null)},f=()=>{if(c.current=null,g(p),"hidden"===s.current||"hiding"===s.current)return;let e=Math.max(0,420-(performance.now()-d.current));g(h),h.current=setTimeout(()=>{u("hiding"),h.current=setTimeout(()=>u("hidden"),360)},e)};return((0,i.useEffect)(()=>{m.current=`${e}${window.location.search}`,f()},[e]),(0,i.useEffect)(()=>{let e=(e,t=!1)=>{(t||e!==o(new URL(window.location.href)))&&(c.current!==e||"visible"!==s.current)&&(c.current=e,g(h),g(p),d.current=performance.now(),u("visible"),p.current=setTimeout(()=>{f()},800))},t=t=>{if(t.defaultPrevented||0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let i=t.target?.closest("a[href]");if(!i||!(i instanceof HTMLAnchorElement))return;let n=(e=>{let t=e.getAttribute("href");if(!t||t.startsWith("#")||e.target&&"_self"!==e.target||e.hasAttribute("download")||/^(mailto:|tel:|sms:|javascript:)/i.test(t))return null;let i=new URL(t,window.location.href);if(i.origin!==window.location.origin)return null;let n=new URL(window.location.href);return i.pathname===n.pathname&&i.search===n.search?null:o(i)})(i);n&&e(n)},i=window.history.pushState,n=window.history.replaceState,l=t=>{t!==o(new URL(window.location.href))&&window.setTimeout(()=>{e(t,!0)},0)};window.history.pushState=function(...e){let t=e[2];if("string"==typeof t||t instanceof URL){let e=new URL(t,window.location.href);e.origin===window.location.origin&&l(o(e))}return i.apply(this,e)},window.history.replaceState=function(...e){let t=e[2];if("string"==typeof t||t instanceof URL){let e=new URL(t,window.location.href);e.origin===window.location.origin&&l(o(e))}return n.apply(this,e)};let a=()=>{let t=o(new URL(window.location.href));t!==m.current&&e(t,!0)};return document.addEventListener("click",t,!0),window.addEventListener("popstate",a),()=>{document.removeEventListener("click",t,!0),window.removeEventListener("popstate",a),window.history.pushState=i,window.history.replaceState=n,g(h),g(p)}},[]),"hidden"===a)?null:(0,t.jsxs)("div",{className:`dm-loader${"hiding"===a?" is-hiding":""}`,role:"status","aria-live":"polite","aria-label":"Loading",onTransitionEnd:e=>{"opacity"===e.propertyName&&"hiding"===a&&(r("hidden"),s.current="hidden")},children:[(0,t.jsx)("div",{className:"dm-loader__pulse",children:(0,t.jsx)(n.default,{src:"/images/preloader.png",alt:"Doormile",width:325,height:239,priority:!0,className:"dm-loader__logo"})}),(0,t.jsx)("style",{children:` + .dm-loader { + position: fixed; + inset: 0; + z-index: 100000; + display: grid; + place-items: center; + background: #000; + opacity: 1; + transition: opacity 0.32s ease; + will-change: opacity; + } + .dm-loader.is-hiding { opacity: 0; pointer-events: none; } + .dm-loader__pulse { animation: dmLoaderPulse 1.5s linear infinite; display: grid; place-items: center; } + .dm-loader__logo { display: block; margin: 0 auto; width: clamp(120px, 32vw, 180px); height: auto; } + @keyframes dmLoaderPulse { + 50% { transform: scale(0.85); } + 100% { transform: scale(1); } + } + @media (prefers-reduced-motion: reduce) { + .dm-loader__pulse { animation: none; } + } + `})]})}])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/144so~-zgdm9_.css b/build/.next/static/chunks/144so~-zgdm9_.css new file mode 100644 index 0000000..0e24e67 --- /dev/null +++ b/build/.next/static/chunks/144so~-zgdm9_.css @@ -0,0 +1,2 @@ +.WingsHowItWorks-module__yyfdHG__section{background:linear-gradient(#fbfaf7 0%,#f5f2ec 100%);border-radius:30px;margin-bottom:40px;margin-left:24px;margin-right:24px;padding:clamp(56px,7vw,96px) 0 clamp(80px,8vw,120px);position:relative;overflow:hidden}.WingsHowItWorks-module__yyfdHG__sectionShell{box-sizing:border-box;width:100%;max-width:1420px;margin:0 auto;padding:0 5vw;position:relative}@media (max-width:1024px){.WingsHowItWorks-module__yyfdHG__sectionShell{padding:0 24px}}.WingsHowItWorks-module__yyfdHG__headerRow{justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:clamp(48px,6vw,88px);display:flex}.WingsHowItWorks-module__yyfdHG__header{text-align:left;max-width:780px;margin:0}.WingsHowItWorks-module__yyfdHG__eyebrow{letter-spacing:1.5px;text-transform:lowercase;color:#14120f80;margin-bottom:22px;font-size:12px;font-weight:700}.WingsHowItWorks-module__yyfdHG__title{margin:0;letter-spacing:-.01em!important;text-transform:uppercase!important;color:#17140f!important;font-size:clamp(32px,4.6vw,68px)!important;font-weight:800!important;line-height:1.02!important}.WingsHowItWorks-module__yyfdHG__progress{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:10px;margin-top:4px;display:flex}.WingsHowItWorks-module__yyfdHG__progressCount{letter-spacing:.5px;color:#17140f;white-space:nowrap;font-size:13px;font-weight:700}.WingsHowItWorks-module__yyfdHG__progressTrack{background:#17140f1f;border-radius:2px;width:110px;height:2px;position:relative;overflow:hidden}.WingsHowItWorks-module__yyfdHG__progressFill{background:#c8102e;height:100%;transition:width .5s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0}.WingsHowItWorks-module__yyfdHG__flow{align-items:stretch;width:100%;display:flex}.WingsHowItWorks-module__yyfdHG__step{cursor:pointer;border-left:1px solid #17140f24;flex:1 1 0;grid-template-rows:auto 1fr auto;min-width:0;min-height:clamp(200px,18vw,260px);padding:0 32px;display:grid;position:relative}.WingsHowItWorks-module__yyfdHG__step:first-child{border-left:none;padding-left:0}.WingsHowItWorks-module__yyfdHG__step:last-child{padding-right:0}.WingsHowItWorks-module__yyfdHG__step:focus-visible{outline-offset:8px;border-radius:4px;outline:2px solid #c8102e8c}.WingsHowItWorks-module__yyfdHG__stepTop{align-items:flex-start;gap:8px;display:flex}.WingsHowItWorks-module__yyfdHG__stepNum{letter-spacing:-.02em;color:#0000;-webkit-text-stroke:1.5px #17140f38;font-size:clamp(44px,5.1vw,92px);font-weight:800;line-height:.85;transition:-webkit-text-stroke-color .4s,filter .4s}.WingsHowItWorks-module__yyfdHG__stepActive .WingsHowItWorks-module__yyfdHG__stepNum{-webkit-text-stroke-color:#c8102e;filter:drop-shadow(0 0 14px #c8102e2e)}.WingsHowItWorks-module__yyfdHG__stepTag{letter-spacing:2px;text-transform:uppercase;color:#17140f66;align-items:center;gap:6px;margin-top:6px;font-size:10.5px;font-weight:700;transition:color .4s;display:flex}.WingsHowItWorks-module__yyfdHG__stepIcon{color:inherit;justify-content:center;align-items:center;display:flex}.WingsHowItWorks-module__yyfdHG__stepActive .WingsHowItWorks-module__yyfdHG__stepTag{color:#c8102e}.WingsHowItWorks-module__yyfdHG__stepBottom{align-self:end;max-width:280px}.WingsHowItWorks-module__yyfdHG__stepTitle{text-transform:none!important;color:#17140f!important;margin:0 0 10px!important;font-size:19px!important;font-weight:700!important;line-height:1.3!important}.WingsHowItWorks-module__yyfdHG__stepDesc{color:#17140f8c;margin:0;font-size:13.5px;line-height:1.65}@media (min-width:1200px){.WingsHowItWorks-module__yyfdHG__step:nth-child(4) .WingsHowItWorks-module__yyfdHG__stepBottom,.WingsHowItWorks-module__yyfdHG__step:nth-child(5) .WingsHowItWorks-module__yyfdHG__stepBottom{min-height:102px}}@media (max-width:1024px){.WingsHowItWorks-module__yyfdHG__headerRow{flex-direction:column;align-items:flex-start;gap:24px}.WingsHowItWorks-module__yyfdHG__progress{align-items:flex-start}.WingsHowItWorks-module__yyfdHG__flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 28px;display:grid}.WingsHowItWorks-module__yyfdHG__step{border-left:none;flex:none;min-height:0;padding:0;display:block}.WingsHowItWorks-module__yyfdHG__stepBottom{max-width:none;margin-top:24px}.WingsHowItWorks-module__yyfdHG__step:nth-child(n+3){border-top:1px solid #17140f24;padding-top:28px}.WingsHowItWorks-module__yyfdHG__flow>.WingsHowItWorks-module__yyfdHG__step:last-child{grid-column:1/-1}}@media (max-width:600px){.WingsHowItWorks-module__yyfdHG__section{margin-left:var(--dm-mobile-gutter,10px);margin-right:var(--dm-mobile-gutter,10px);padding-top:44px;padding-bottom:44px}.WingsHowItWorks-module__yyfdHG__sectionShell{padding-left:10px;padding-right:10px}.WingsHowItWorks-module__yyfdHG__flow{flex-direction:column;display:flex}.WingsHowItWorks-module__yyfdHG__step{padding:28px 0}.WingsHowItWorks-module__yyfdHG__step:first-child{padding-top:0}.WingsHowItWorks-module__yyfdHG__step:not(:first-child){border-top:1px solid #17140f24}.WingsHowItWorks-module__yyfdHG__step:last-child{padding-bottom:0}} +.WingsInfrastructure-module__akH2-q__section{padding:var(--space-section-lg,100px) 0;background:#09090b;border-radius:30px;margin-bottom:30px;margin-left:24px;margin-right:24px;position:relative;overflow:hidden}.WingsInfrastructure-module__akH2-q__section:before{content:"";aspect-ratio:1;filter:blur(8px);pointer-events:none;z-index:0;background:radial-gradient(circle,#ffffff0d 0%,#c8102e0d 40%,#0000 68%);width:58%;animation:14s ease-in-out infinite alternate WingsInfrastructure-module__akH2-q__infraGlowDrift;position:absolute;top:-18%;left:50%;transform:translate(-50%)}.WingsInfrastructure-module__akH2-q__section:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(120% 90% at 50% 0,#0000 50%,#00000080 100%);position:absolute;inset:0}@keyframes WingsInfrastructure-module__akH2-q__infraGlowDrift{0%{opacity:.7;transform:translate(-52%)translateY(0)}to{opacity:1;transform:translate(-48%)translateY(10px)}}@media (prefers-reduced-motion:reduce){.WingsInfrastructure-module__akH2-q__section:before{animation:none}}.WingsInfrastructure-module__akH2-q__sectionShell{box-sizing:border-box;z-index:1;width:100%;max-width:1420px;margin:0 auto;padding:0 5vw;position:relative}@media (max-width:1024px){.WingsInfrastructure-module__akH2-q__sectionShell{padding:0 24px}}.WingsInfrastructure-module__akH2-q__header{text-align:center;width:100%;max-width:700px;margin:0 auto 56px}.WingsInfrastructure-module__akH2-q__eyebrow{letter-spacing:2px;text-transform:uppercase;color:#ffffff73;margin-bottom:16px;font-size:13px;font-weight:700}.WingsInfrastructure-module__akH2-q__title{margin:0;letter-spacing:-.03em!important;text-transform:none!important;color:#fff!important;font-size:clamp(28px,3.2vw,46px)!important;font-weight:800!important;line-height:1.15!important}.WingsInfrastructure-module__akH2-q__grid{align-items:flex-start;width:100%;display:flex}.WingsInfrastructure-module__akH2-q__card{border-left:1px solid #ffffff17;flex:1 1 0;min-width:0;padding:0 30px;transition:border-color .4s}.WingsInfrastructure-module__akH2-q__card:first-child{border-left:none;padding-left:0}.WingsInfrastructure-module__akH2-q__icon{color:#ffffff8c;border:1px solid #ffffff24;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:26px;transition:border-color .4s,color .4s,background-color .4s,box-shadow .4s;display:flex}.WingsInfrastructure-module__akH2-q__card:hover .WingsInfrastructure-module__akH2-q__icon{color:#fff;background:#c8102e1f;border-color:#c8102e8c;box-shadow:0 0 18px #c8102e47}.WingsInfrastructure-module__akH2-q__cardTitle{margin:0 0 10px;transition:color .4s;text-transform:none!important;color:#ffffffd1!important;font-size:17px!important;font-weight:700!important;line-height:1.3!important}.WingsInfrastructure-module__akH2-q__card:hover .WingsInfrastructure-module__akH2-q__cardTitle{color:#fff!important}.WingsInfrastructure-module__akH2-q__cardDesc{color:#ffffff73;margin:0;font-size:16px;line-height:1.6;transition:color .4s}.WingsInfrastructure-module__akH2-q__card:hover .WingsInfrastructure-module__akH2-q__cardDesc{color:#ffffff9e}@media (max-width:1024px){.WingsInfrastructure-module__akH2-q__section{padding:var(--space-section,64px) 0}.WingsInfrastructure-module__akH2-q__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 28px;display:grid}.WingsInfrastructure-module__akH2-q__card{border-left:none;padding:0}.WingsInfrastructure-module__akH2-q__card:nth-child(n+3){border-top:1px solid #ffffff17;padding-top:28px}}@media (max-width:600px){.WingsInfrastructure-module__akH2-q__section{margin-left:var(--dm-mobile-gutter,10px);margin-right:var(--dm-mobile-gutter,10px);padding-top:44px;padding-bottom:44px}.WingsInfrastructure-module__akH2-q__sectionShell{padding-left:10px;padding-right:10px}.WingsInfrastructure-module__akH2-q__grid{flex-direction:column;display:flex}.WingsInfrastructure-module__akH2-q__card{padding:28px 0}.WingsInfrastructure-module__akH2-q__card:first-child{padding-top:0}.WingsInfrastructure-module__akH2-q__card:not(:first-child){border-top:1px solid #ffffff17}.WingsInfrastructure-module__akH2-q__card:last-child{padding-bottom:0}} diff --git a/build/.next/static/chunks/14_678uuyq.tf.js b/build/.next/static/chunks/14_678uuyq.tf.js new file mode 100644 index 0000000..40b2a9f --- /dev/null +++ b/build/.next/static/chunks/14_678uuyq.tf.js @@ -0,0 +1,2 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12718,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},64893,(e,t,r)=>{"use strict";var n=e.r(74080),a={stream:!0},l=Object.prototype.hasOwnProperty;function u(t){var r=e.r(t);return"function"!=typeof r.then||"fulfilled"===r.status?null:(r.then(function(e){r.status="fulfilled",r.value=e},function(e){r.status="rejected",r.reason=e}),r)}var i=new WeakSet,o=new WeakSet;function c(){}function s(t){for(var r=t[1],n=[],a=0;af||35===f||114===f||120===f?(h=f,f=3,c++):(h=0,f=3);continue;case 2:44===(g=o[c++])?f=4:p=p<<4|(96o.length&&(g=-1)}var E=o.byteOffset+c;if(-1{"use strict";t.exports=e.r(64893)},35326,(e,t,r)=>{"use strict";t.exports=e.r(21413)},76963,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return a}});var n,a=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68391,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={REDIRECT_ERROR_CODE:function(){return u},isRedirectError:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(76963),u="NEXT_REDIRECT";function i(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,a=t.slice(2,-2).join(";"),i=Number(t.at(-2));return r===u&&("replace"===n||"push"===n)&&"string"==typeof a&&!isNaN(i)&&i in l.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90809,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var a={__proto__:null},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=l?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(a,u,i):a[u]=e[u]}return a.default=e,r&&r.set(e,a),a}},21768,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return u},FLIGHT_HEADERS:function(){return _},NEXT_ACTION_NOT_FOUND_HEADER:function(){return S},NEXT_ACTION_REVALIDATED_HEADER:function(){return O},NEXT_DID_POSTPONE_HEADER:function(){return v},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return s},NEXT_HTML_REQUEST_ID_HEADER:function(){return T},NEXT_INSTANT_PREFETCH_HEADER:function(){return p},NEXT_INSTANT_TEST_COOKIE:function(){return y},NEXT_IS_PRERENDER_HEADER:function(){return P},NEXT_REQUEST_ID_HEADER:function(){return b},NEXT_REWRITTEN_PATH_HEADER:function(){return R},NEXT_REWRITTEN_QUERY_HEADER:function(){return m},NEXT_ROUTER_PREFETCH_HEADER:function(){return o},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return c},NEXT_ROUTER_STALE_TIME_HEADER:function(){return E},NEXT_ROUTER_STATE_TREE_HEADER:function(){return i},NEXT_RSC_UNION_QUERY:function(){return g},NEXT_URL:function(){return d},RSC_CONTENT_TYPE_HEADER:function(){return h},RSC_HEADER:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="rsc",u="next-action",i="next-router-state-tree",o="next-router-prefetch",c="next-router-segment-prefetch",s="next-hmr-refresh",f="__next_hmr_refresh_hash__",d="next-url",h="text/x-component",p="next-instant-navigation-testing-prefetch",y="next-instant-navigation-testing",_=[l,i,o,s,c],g="_rsc",E="x-nextjs-stale-time",v="x-nextjs-postponed",R="x-nextjs-rewritten-path",m="x-nextjs-rewritten-query",P="x-nextjs-prerender",S="x-nextjs-action-not-found",b="x-nextjs-request-id",T="x-nextjs-html-request-id",O="x-action-revalidated";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39470,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},51191,(e,t,r)=>{"use strict";function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},26935,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},82604,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return l.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return i},getBotType:function(){return s},isBot:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(26935),u=/Googlebot(?!-)|Googlebot$/i,i=l.HTML_LIMITED_BOT_UA_RE.source;function o(e){return l.HTML_LIMITED_BOT_UA_RE.test(e)}function c(e){return u.test(e)||o(e)}function s(e){return u.test(e)?"dom":o(e)?"html":void 0}},8372,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return u},GlobalLayoutRouterContext:function(){return o},LayoutRouterContext:function(){return i},MissingSlotContext:function(){return s},TemplateContext:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(55682)._(e.r(71645)),u=l.default.createContext(null),i=l.default.createContext(null),o=l.default.createContext(null),c=l.default.createContext(null),s=l.default.createContext(new Set)},88540,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a,l={ACTION_HMR_REFRESH:function(){return f},ACTION_NAVIGATE:function(){return o},ACTION_REFRESH:function(){return i},ACTION_RESTORE:function(){return c},ACTION_SERVER_ACTION:function(){return d},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return h},ScrollBehavior:function(){return p}};for(var u in l)Object.defineProperty(r,u,{enumerable:!0,get:l[u]});let i="refresh",o="navigate",c="restore",s="server-patch",f="hmr-refresh",d="server-action";var h=((n={}).AUTO="auto",n.FULL="full",n),p=((a={})[a.Default=0]="Default",a[a.NoScroll=1]="NoScroll",a);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64245,(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},41538,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return c},dispatchGestureState:function(){return f},refreshOnInstantNavigationUnlock:function(){return o},useActionQueue:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(90809)._(e.r(71645)),u=e.r(64245);e.r(88540);let i=null;function o(){}function c(e){if(null===i)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});i(e)}let s=null;function f(e){if(null===s)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});s(e)}function d(e){let[t,r]=l.default.useState(e.state),[n,a]=(0,l.useOptimistic)(t);"u">typeof window&&(s=a),"u">typeof window&&(i=t=>e.dispatch(t,r));let o=(0,l.useMemo)(()=>n,[n]);return(0,u.isThenable)(o)?(0,l.use)(o):o}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},32120,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return u}});let n=e.r(71645),a=e.r(88540),l=e.r(41538);async function u(e,t){return new Promise((r,u)=>{(0,n.startTransition)(()=>{(0,l.dispatchAppRouterAction)({type:a.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:u})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92245,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},13258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},NOT_FOUND_SEGMENT_KEY:function(){return d},PAGE_SEGMENT_KEY:function(){return s},addSearchParamsIfPageSegment:function(){return o},computeSelectedLayoutSegment:function(){return c},getSegmentValue:function(){return l},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,a=[]){let u;if(n)u=t[1][r];else{let e=t[1];u=e.children??Object.values(e)[0]}if(!u)return a;let i=l(u[0]);return!i||i.startsWith(s)?a:(a.push(i),e(u,r,!1,a))}},isGroupSegment:function(){return u},isParallelRouteSegment:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e){return Array.isArray(e)?e[1]:e}function u(e){return"("===e[0]&&e.endsWith(")")}function i(e){return e.startsWith("@")&&"@children"!==e}function o(e,t){if(e.includes(s)){let e=JSON.stringify(t);return"{}"!==e?s+"?"+e:s}return e}function c(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let s="__PAGE__",f="__DEFAULT__",d="/_not-found"},67764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return i},ROOT_SEGMENT_REQUEST_KEY:function(){return u},appendSegmentRequestKeyPart:function(){return c},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentRequestKeyPart:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(13258),u="",i="/_head";function o(e){if("string"==typeof e)return e.startsWith(l.PAGE_SEGMENT_KEY)?l.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0];return"$"+e[2]+"$"+f(t)}function c(e,t,r){return e+"/"+("children"===t?r:`@${f(t)}/${r}`)}let s=/^[a-zA-Z0-9\-_@]+$/;function f(e){return s.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return`__next${e.replace(/\//g,".")}.txt`}},33906,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return d},getCacheKeyForDynamicParam:function(){return h},getParamValueFromCacheKey:function(){return y},getRenderedPathname:function(){return c},getRenderedSearch:function(){return o},parseDynamicParamFromURLPart:function(){return f},urlSearchParamsToParsedUrlQuery:function(){return _},urlToUrlWithoutFlightMarker:function(){return p}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(13258),u=e.r(67764),i=e.r(21768);function o(e){let t=e.headers.get(i.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:p(new URL(e.url)).search}function c(e){return e.headers.get(i.NEXT_REWRITTEN_PATH_HEADER)??p(new URL(e.url)).pathname}function s(e){try{return encodeURIComponent(decodeURIComponent(e))}catch{return e}}function f(e,t,r){switch(e){case"c":return rs(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?s(e.slice(n)):s(e)):[]}case"oc":return rs(e)):null;case"d":if(r>=t.length)return"";return s(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return s(t[r].slice(n))}default:return""}}function d(e){return!(e===u.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(l.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==l.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function h(e,t){return"string"==typeof e?(0,l.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function p(e){let t=new URL(e);return t.searchParams.delete(i.NEXT_RSC_UNION_QUERY),t}function y(e,t){return"c"===t||"oc"===t?e.split("/"):e}function _(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},50590,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return c},getFlightDataPartsFromPath:function(){return o},getNextFlightSegmentPath:function(){return s},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(13258),u=e.r(33906),i=e.r(51191);function o(e){let[t,r,n,a]=e.slice(-4),l=e.slice(0,-4);return{pathToSegment:l.slice(0,-1),segmentPath:l,segment:l[l.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:a,isRootRender:4===e.length}}function c(e,t){let r=(0,u.getRenderedPathname)(e),n=(0,u.getRenderedSearch)(e),a=(0,i.createHrefFromUrl)(new URL(location.href)),l=t.f[0],o=l[0],c={c:a.split("/"),q:n,i:t.i,f:[[function e(t,r,n,a){let l,i,o=t[0];if("string"==typeof o)l=o,i=(0,u.doesStaticSegmentAppearInURL)(o);else{let e=o[0],t=o[2],c=o[3],s=(0,u.parseDynamicParamFromURLPart)(t,n,a);l=[e,(0,u.getCacheKeyForDynamicParam)(s,r),t,c],i=!0}let c=i?a+1:a,s=t[1],f={};for(let t in s){let a=s[t];f[t]=e(a,r,n,c)}return[l,f,null,t[3],t[4]]}(o,n,r.split("/").filter(e=>""!==e),0),l[1],l[2],l[2]]],m:t.m,G:t.G,S:t.S,h:t.h};return t.b&&(c.b=t.b),c}function s(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>o(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){let[r,n,a,u,i]=t,o=function(e){if("string"==typeof e)return e.startsWith(l.PAGE_SEGMENT_KEY+"?")?l.PAGE_SEGMENT_KEY:e;let[t,r,n]=e;return[t,r,n,null]}(r),c={};for(let[t,r]of Object.entries(n))c[t]=e(r);let s=[o,c];return u&&(s[2]=null,s[3]=u),void 0!==i&&(s[4]=i),s}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},19921,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return l},hexHash:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e){let t=5381;for(let r=0;r>>0}function u(e){return l(e).toString(36).slice(0,5)}},86051,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={computeCacheBustingSearchParam:function(){return s},computeLegacyCacheBustingSearchParam:function(){return f}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(19921),u=new TextEncoder;function i(e){return void 0===e?"0":Array.isArray(e)?e.join(","):e}function o(e,t,r,n){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===n?null:[e??"0",i(t),i(r),i(n)].join(",")}async function c(e){var t=new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256",u.encode(e))).subarray(0,12);let r="";for(let e=0;e{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return o},setCacheBustingSearchParamWithHash:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(86051),u=e.r(21768);async function i(e){return"function"==typeof globalThis.crypto?.subtle?.digest?(0,l.computeCacheBustingSearchParam)(e[u.NEXT_ROUTER_PREFETCH_HEADER],e[u.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],e[u.NEXT_ROUTER_STATE_TREE_HEADER],e[u.NEXT_URL]):(0,l.computeLegacyCacheBustingSearchParam)(e[u.NEXT_ROUTER_PREFETCH_HEADER],e[u.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],e[u.NEXT_ROUTER_STATE_TREE_HEADER],e[u.NEXT_URL])}let o=async(e,t)=>{c(e,await i(t))},c=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${u.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${u.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${u.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},32992,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getNavigationBuildId:function(){return i},setNavigationBuildId:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="";function u(e){l=e}function i(){return l}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63416,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return _},APP_DIR_ALIAS:function(){return V},CACHE_ONE_YEAR_SECONDS:function(){return j},DOT_NEXT_ALIAS:function(){return k},ESLINT_DEFAULT_DIRS:function(){return ei},GSP_NO_RETURNED_VALUE:function(){return et},GSSP_COMPONENT_MEMBER_ERROR:function(){return ea},GSSP_NO_RETURNED_VALUE:function(){return er},HTML_CONTENT_TYPE_HEADER:function(){return u},INFINITE_CACHE:function(){return M},INSTRUMENTATION_HOOK_FILENAME:function(){return x},JSON_CONTENT_TYPE_HEADER:function(){return i},MATCHED_PATH_HEADER:function(){return s},MIDDLEWARE_FILENAME:function(){return D},MIDDLEWARE_LOCATION_REGEXP:function(){return I},NEXT_BODY_SUFFIX:function(){return v},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return N},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return S},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return C},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return w},NEXT_CACHE_TAGS_HEADER:function(){return m},NEXT_CACHE_TAG_MAX_ITEMS:function(){return O},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return g},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return E},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return R},NEXT_QUERY_PARAM_PREFIX:function(){return o},NEXT_RESUME_HEADER:function(){return b},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return T},NON_STANDARD_NODE_ENV:function(){return el},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return f},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return d},PROXY_FILENAME:function(){return F},PROXY_LOCATION_REGEXP:function(){return U},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return H},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return q},RSC_ACTION_PROXY_ALIAS:function(){return $},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return K},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return G},RSC_MOD_REF_PROXY_ALIAS:function(){return B},RSC_SEGMENTS_DIR_SUFFIX:function(){return h},RSC_SEGMENT_SUFFIX:function(){return p},RSC_SUFFIX:function(){return y},SERVER_PROPS_EXPORT_ERROR:function(){return ee},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Q},SERVER_PROPS_SSG_CONFLICT:function(){return J},SERVER_RUNTIME:function(){return eo},SSG_FALLBACK_EXPORT_ERROR:function(){return eu},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return z},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return Z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return l},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return en},WEBPACK_LAYERS:function(){return ef},WEBPACK_RESOURCE_QUERIES:function(){return ed},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ec}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="text/plain",u="text/html; charset=utf-8",i="application/json; charset=utf-8",o="nxtP",c="nxtI",s="x-matched-path",f="x-prerender-revalidate",d="x-prerender-revalidate-if-generated",h=".segments",p=".segment.rsc",y=".rsc",_=".action",g=".json",E=".meta",v=".body",R="x-nextjs-deployment-id",m="x-next-cache-tags",P="x-next-revalidated-tags",S="x-next-revalidate-tag-token",b="next-resume",T="x-next-resume-state-length",O=128,A=256,w=1024,N="_N_T_",C="_N_RP_",j=31536e3,M=0xfffffffe,D="middleware",I=`(?:src/)?${D}`,F="proxy",U=`(?:src/)?${F}`,x="instrumentation",L="private-next-pages",k="private-dot-next",H="private-next-root-dir",V="private-next-app-dir",B="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",$="private-next-rsc-server-reference",K="private-next-rsc-cache-wrapper",G="private-next-rsc-track-dynamic-import",q="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",z="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Q="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",J="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",Z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",ee="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",et="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",er="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",en="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ea="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",el='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',eu="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ei=["app","pages","components","lib","src"],eo={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ec=12,es={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ef={...es,GROUP:{builtinReact:[es.reactServerComponents,es.actionBrowser],serverOnly:[es.reactServerComponents,es.actionBrowser,es.instrument,es.middleware],neutralTarget:[es.apiNode,es.apiEdge],clientOnly:[es.serverSideRendering,es.appPagesBrowser],bundled:[es.reactServerComponents,es.actionBrowser,es.serverSideRendering,es.appPagesBrowser,es.shared,es.instrument,es.middleware],appPages:[es.reactServerComponents,es.serverSideRendering,es.appPagesBrowser,es.actionBrowser]}},ed={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},6372,(e,t,r)=>{"use strict";function n(e){return(e.then(a),"fulfilled"!==e.status)?null:e.value}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"readVaryParams",{enumerable:!0,get:function(){return n}});let a=()=>{}},22744,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PrefetchHint",{enumerable:!0,get:function(){return a}});var n,a=((n={})[n.HasRuntimePrefetch=1]="HasRuntimePrefetch",n[n.SubtreeHasInstant=2]="SubtreeHasInstant",n[n.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",n[n.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",n[n.IsRootLayout=16]="IsRootLayout",n[n.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",n[n.InlinedIntoChild=64]="InlinedIntoChild",n[n.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",n[n.HeadOutlined=256]="HeadOutlined",n)},56019,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"matchSegment",{enumerable:!0,get:function(){return n}});let n=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},77048,(e,t,r)=>{"use strict";function n(e,t){let r=new URL(e);return{pathname:r.pathname,search:r.search,nextUrl:t}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createCacheKey",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},9396,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a,l,u={FetchStrategy:function(){return s},NavigationResultTag:function(){return o},PrefetchPriority:function(){return c}};for(var i in u)Object.defineProperty(r,i,{enumerable:!0,get:u[i]});var o=((n={})[n.MPA=0]="MPA",n[n.Success=1]="Success",n[n.NoOp=2]="NoOp",n[n.Async=3]="Async",n),c=((a={})[a.Intent=2]="Intent",a[a.Default=1]="Default",a[a.Background=0]="Background",a),s=((l={})[l.LoadingBoundary=0]="LoadingBoundary",l[l.PPR=1]="PPR",l[l.PPRRuntime=2]="PPRRuntime",l[l.Full=3]="Full",l);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},511,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={Fallback:function(){return u},createCacheMap:function(){return o},deleteFromCacheMap:function(){return h},deleteMapEntry:function(){return p},getFromCacheMap:function(){return c},isValueExpired:function(){return s},setInCacheMap:function(){return f},setSizeInCacheMap:function(){return y}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(73861),u={},i={};function o(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function c(e,t,r,n,a){let o=function e(t,r,n,a,l,o){let c,f;if(null!==a)c=a.value,f=a.parent;else if(l&&o!==i)c=i,f=null;else return null===n.value?n:s(t,r,n.value)?(p(n),null):n;let d=n.map;if(null!==d){let n=d.get(c);if(void 0!==n){let a=e(t,r,n,f,l,c);if(null!==a)return a}let a=d.get(u);if(void 0!==a)return e(t,r,a,f,l,c)}return null}(e,t,r,n,a,0);return null===o||null===o.value?null:((0,l.lruPut)(o),o.value)}function s(e,t,r){return r.staleAt<=e||r.version{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cleanup:function(){return h},deleteFromLru:function(){return f},lruPut:function(){return c},updateLruSize:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(511),u=e.r(77709),i=null,o=0;function c(e){if(i===e)return;let t=e.prev,r=e.next;if(null===r||null===t?(o+=e.size,d()):(t.next=r,r.prev=t),null===i)e.prev=e,e.next=e;else{let t=i.prev;e.prev=t,null!==t&&(t.next=e),e.next=i,i.prev=e}i=e}function s(e,t){let r=e.size;e.size=t,null!==e.next&&(o=o-r+t,d())}function f(e){let t=e.next,r=e.prev;null!==t&&null!==r&&(o-=e.size,e.next=null,e.prev=null,i===e?t===i?i=null:(i=t,r.next=t,t.prev=r):(r.next=t,t.prev=r))}function d(){o<=0x3200000||(0,u.pingPrefetchScheduler)()}function h(){if(!(o<=0x3200000))for(;o>0x2d00000&&null!==i;){let e=i.prev;null!==e&&(0,l.deleteMapEntry)(e)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},77709,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cancelPrefetchTask:function(){return m},isPrefetchTaskDirty:function(){return S},pingPrefetchScheduler:function(){return T},pingPrefetchTask:function(){return N},reschedulePrefetchTask:function(){return P},schedulePrefetchTask:function(){return R},startRevalidationCooldown:function(){return v}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(22744),u=e.r(56019),i=e.r(20896),o=e.r(77048),c=e.r(9396),s=e.r(13258),f=e.r(73861),d="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),h=[],p=0,y=0,_=!1,g=null,E=null;function v(){null!==E&&clearTimeout(E),E=setTimeout(()=>{E=null,T()},300)}function R(e,t,r,n,a,l){let u={key:e,treeAtTimeOfPrefetch:t,routeCacheVersion:(0,i.getCurrentRouteCacheVersion)(),segmentCacheVersion:(0,i.getCurrentSegmentCacheVersion)(),priority:n,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:r,sortId:y++,isCanceled:!1,onInvalidate:a,_heapIndex:-1};return b(u),k(h,u),T(),u}function m(e){e.isCanceled=!0,function(e,t){let r=t._heapIndex;if(-1!==r&&(t._heapIndex=-1,0!==e.length)){let n=e.pop();n!==t&&(e[r]=n,n._heapIndex=r,$(e,n,r))}}(h,e)}function P(e,t,r,n){e.isCanceled=!1,e.phase=1,e.sortId=y++,e.priority=e===g?c.PrefetchPriority.Intent:n,e.treeAtTimeOfPrefetch=t,e.fetchStrategy=r,b(e),-1!==e._heapIndex?B(h,e):k(h,e),T()}function S(e,t,r){return e.routeCacheVersion!==(0,i.getCurrentRouteCacheVersion)()||e.segmentCacheVersion!==(0,i.getCurrentSegmentCacheVersion)()||e.treeAtTimeOfPrefetch!==r||e.key.nextUrl!==t}function b(e){e.priority===c.PrefetchPriority.Intent&&e!==g&&(null!==g&&g.priority!==c.PrefetchPriority.Background&&(g.priority=c.PrefetchPriority.Default,B(h,g)),g=e)}function T(){_||(_=!0,d(C))}function O(e){return null===E&&(e.priority===c.PrefetchPriority.Intent?p<12:p<4)}function A(e){return p++,e.then(e=>null===e?(w(),null):(e.closed.then(w),e.value))}function w(){p--,T()}function N(e){e.isCanceled||-1!==e._heapIndex||(k(h,e),T())}function C(){_=!1;let e=Date.now(),t=H(h);for(;null!==t&&O(t);){t.routeCacheVersion=(0,i.getCurrentRouteCacheVersion)(),t.segmentCacheVersion=(0,i.getCurrentSegmentCacheVersion)();let r=function(e,t){let r=t.key,n=(0,i.readOrCreateRouteCacheEntry)(e,t,r),a=function(e,t,r){switch(r.status){case i.EntryStatus.Empty:A((0,i.fetchRouteOnCacheMiss)(r,t.key)),r.staleAt=e+6e4,r.status=i.EntryStatus.Pending;case i.EntryStatus.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case i.EntryStatus.Rejected:break;case i.EntryStatus.Fulfilled:{let o;if(0!==t.phase)return 2;if(!O(t))return 0;let s=r.tree;switch(o=s.prefetchHints&l.PrefetchHint.SubtreeHasInstant?c.FetchStrategy.PPR:t.fetchStrategy===c.FetchStrategy.PPR?r.supportsPerSegmentPrefetching?c.FetchStrategy.PPR:c.FetchStrategy.LoadingBoundary:t.fetchStrategy){case c.FetchStrategy.PPR:{var n,a,u;if(I(n=e,a=t,u=r,(0,i.readOrCreateSegmentCacheEntry)(n,c.FetchStrategy.PPR,u.metadata),a.key,u.metadata),0===function e(t,r,n,a,u){let o=(0,i.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,u);I(t,r,n,o,r.key,u);let c=a[1],s=u.slots;if(null!==s)for(let a in s){if(!O(r))return 0;let u=s[a],o=u.segment,f=c[a],d=f?.[0];if(0===(void 0!==d&&x(n,o,d)?e(t,r,n,f,u):function e(t,r,n,a){if(a.prefetchHints&l.PrefetchHint.HasRuntimePrefetch)return null===r.spawnedRuntimePrefetches?r.spawnedRuntimePrefetches=new Set([a.requestKey]):r.spawnedRuntimePrefetches.add(a.requestKey),2;let u=(0,i.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,a);if(I(t,r,n,u,r.key,a),null!==a.slots){if(!O(r))return 0;for(let l in a.slots)if(0===e(t,r,n,a.slots[l]))return 0}return 2}(t,r,n,u)))return 0}return 2}(e,t,r,t.treeAtTimeOfPrefetch,s))return 0;let o=t.spawnedRuntimePrefetches;if(null!==o){let n=new Map;M(e,t,r,n,c.FetchStrategy.PPRRuntime);let a=function e(t,r,n,a,l,u){if(l.has(a.requestKey))return D(t,r,n,a,!1,u,c.FetchStrategy.PPRRuntime);let i={},o=a.slots;if(null!==o)for(let a in o){let c=o[a];i[a]=e(t,r,n,c,l,u)}return[a.segment,i,null,null]}(e,t,r,s,o,n);n.size>0&&A((0,i.fetchSegmentPrefetchesUsingDynamicRequest)(t,r,c.FetchStrategy.PPRRuntime,a,n))}return 2}case c.FetchStrategy.Full:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.LoadingBoundary:{let n=new Map;M(e,t,r,n,o);let a=function e(t,r,n,a,u,o,s){let f=a[1],d=u.slots,h={};if(null!==d)for(let a in d){let u=d[a],p=u.segment,y=f[a],_=y?.[0];if(void 0!==_&&x(n,p,_)){let l=e(t,r,n,y,u,o,s);h[a]=l}else switch(s){case c.FetchStrategy.LoadingBoundary:{let e=(u.prefetchHints&(l.PrefetchHint.SegmentHasLoadingBoundary|l.PrefetchHint.SubtreeHasLoadingBoundary))!=0?function e(t,r,n,a,u,o){let s=null===u?"inside-shared-layout":null,f=(0,i.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,a);switch(f.status){case i.EntryStatus.Empty:o.set(a.requestKey,(0,i.upgradeToPendingSegment)(f,c.FetchStrategy.LoadingBoundary)),"refetch"!==u&&(s=u="refetch");break;case i.EntryStatus.Fulfilled:if((a.prefetchHints&l.PrefetchHint.SegmentHasLoadingBoundary)!=0)return(0,i.convertRouteTreeToFlightRouterState)(a);case i.EntryStatus.Pending:case i.EntryStatus.Rejected:}let d={};if(null!==a.slots)for(let l in a.slots){let i=a.slots[l];d[l]=e(t,r,n,i,u,o)}return[a.segment,d,null,s]}(t,r,n,u,null,o):(0,i.convertRouteTreeToFlightRouterState)(u);h[a]=e;break}case c.FetchStrategy.PPRRuntime:{let e=D(t,r,n,u,!1,o,s);h[a]=e;break}case c.FetchStrategy.Full:{let e=D(t,r,n,u,!1,o,s);h[a]=e}}}return[u.segment,h,null,null]}(e,t,r,t.treeAtTimeOfPrefetch,s,n,o);return n.size>0&&A((0,i.fetchSegmentPrefetchesUsingDynamicRequest)(t,r,o,a,n)),2}}}}return 2}(e,t,n);if(0!==a&&""!==r.search){let n=new URL(r.pathname,location.origin),a=(0,o.createCacheKey)(n.href,r.nextUrl),l=(0,i.readOrCreateRouteCacheEntry)(e,t,a);switch(l.status){case i.EntryStatus.Empty:j(t)&&(l.status=i.EntryStatus.Pending,A((0,i.fetchRouteOnCacheMiss)(l,a)));case i.EntryStatus.Pending:case i.EntryStatus.Fulfilled:case i.EntryStatus.Rejected:}}return a}(e,t),n=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,r){case 0:return;case 1:V(h),t=H(h);continue;case 2:1===t.phase?(t.phase=0,B(h,t)):n?(t.priority=c.PrefetchPriority.Background,B(h,t)):V(h),t=H(h);continue}}null===t&&0===p&&(0,f.cleanup)()}function j(e){return e.priority===c.PrefetchPriority.Background||(e.hasBackgroundWork=!0,!1)}function M(e,t,r,n,a){D(e,t,r,r.metadata,!1,n,a===c.FetchStrategy.LoadingBoundary?c.FetchStrategy.Full:a)}function D(e,t,r,n,a,l,u){let o=(0,i.readOrCreateSegmentCacheEntry)(e,u,n),s=null;switch(o.status){case i.EntryStatus.Empty:if(u===c.FetchStrategy.Full&&null!==(0,i.attemptToFulfillDynamicSegmentFromBFCache)(e,o,n))break;s=(0,i.upgradeToPendingSegment)(o,u);break;case i.EntryStatus.Fulfilled:if(o.isPartial&&(0,i.canNewFetchStrategyProvideMoreContent)(o.fetchStrategy,u)){if(u===c.FetchStrategy.Full&&null!==(0,i.attemptToUpgradeSegmentFromBFCache)(e,n))break;s=U(e,n,u)}break;case i.EntryStatus.Pending:case i.EntryStatus.Rejected:(0,i.canNewFetchStrategyProvideMoreContent)(o.fetchStrategy,u)&&(s=U(e,n,u))}let f={};if(null!==n.slots)for(let i in n.slots){let o=n.slots[i];f[i]=D(e,t,r,o,a||null!==s,l,u)}null!==s&&l.set(n.requestKey,s);let d=a||null===s?null:"refetch";return[n.segment,f,null,d]}function I(e,t,r,n,a,l){switch(n.status){case i.EntryStatus.Empty:A((0,i.fetchSegmentOnCacheMiss)(r,(0,i.upgradeToPendingSegment)(n,c.FetchStrategy.PPR),a,l));break;case i.EntryStatus.Pending:switch(n.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:j(t)&&F(e,r,a,l);break;default:n.fetchStrategy}break;case i.EntryStatus.Rejected:switch(n.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:F(e,r,a,l);break;default:n.fetchStrategy}case i.EntryStatus.Fulfilled:}}function F(e,t,r,n){let a=(0,i.readOrCreateRevalidatingSegmentEntry)(e,c.FetchStrategy.PPR,n);switch(a.status){case i.EntryStatus.Empty:A((0,i.fetchSegmentOnCacheMiss)(t,(0,i.upgradeToPendingSegment)(a,c.FetchStrategy.PPR),r,n));case i.EntryStatus.Pending:case i.EntryStatus.Fulfilled:case i.EntryStatus.Rejected:}}function U(e,t,r){let n=(0,i.readOrCreateRevalidatingSegmentEntry)(e,r,t);if(n.status===i.EntryStatus.Empty)return(0,i.upgradeToPendingSegment)(n,r);if((0,i.canNewFetchStrategyProvideMoreContent)(n.fetchStrategy,r)){let n=(0,i.overwriteRevalidatingSegmentCacheEntry)(e,r,t);return(0,i.upgradeToPendingSegment)(n,r)}switch(n.status){case i.EntryStatus.Pending:case i.EntryStatus.Fulfilled:case i.EntryStatus.Rejected:default:return null}}function x(e,t,r){return r===s.PAGE_SEGMENT_KEY?t===(0,s.addSearchParamsIfPageSegment)(s.PAGE_SEGMENT_KEY,Object.fromEntries(new URLSearchParams(e.renderedSearch))):(0,u.matchSegment)(r,t)}function L(e,t){let r=t.priority-e.priority;if(0!==r)return r;let n=t.phase-e.phase;return 0!==n?n:t.sortId-e.sortId}function k(e,t){let r=e.length;e.push(t),t._heapIndex=r,X(e,t,r)}function H(e){return 0===e.length?null:e[0]}function V(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let r=e.pop();return r!==t&&(e[0]=r,r._heapIndex=0,$(e,r,0)),t}function B(e,t){let r=t._heapIndex;-1!==r&&(0===r?$(e,t,0):L(e[r-1>>>1],t)>0?X(e,t,r):$(e,t,r))}function X(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,a=e[r];if(!(L(a,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=a,a._heapIndex=n,n=r}}function $(e,t,r){let n=r,a=e.length,l=a>>>1;for(;nL(l,t))uL(i,l)?(e[n]=i,i._heapIndex=n,e[u]=t,t._heapIndex=u,n=u):(e[n]=l,l._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(uL(i,t)))return;e[n]=i,i._heapIndex=n,e[u]=t,t._heapIndex=u,n=u}}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},56655,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={appendLayoutVaryPath:function(){return s},clonePageVaryPathWithNewSearchParams:function(){return g},finalizeLayoutVaryPath:function(){return f},finalizeMetadataVaryPath:function(){return y},finalizePageVaryPath:function(){return h},getFulfilledRouteVaryPath:function(){return c},getFulfilledSegmentVaryPath:function(){return function e(t,r){return{id:t.id,value:null===t.id||r.has(t.id)?t.value:u.Fallback,parent:null===t.parent?null:e(t.parent,r)}}},getPartialLayoutVaryPath:function(){return d},getPartialPageVaryPath:function(){return p},getRenderedSearchFromVaryPath:function(){return E},getRouteVaryPath:function(){return o},getSegmentVaryPathForRequest:function(){return _}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(9396),u=e.r(511),i=e.r(67764);function o(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:r,parent:null}}}}function c(e,t,r,n){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:n?r:u.Fallback,parent:null}}}}function s(e,t,r){return{id:r,value:t,parent:e}}function f(e,t){return{id:null,value:e,parent:t}}function d(e){return e.parent}function h(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:r}}}function p(e){return e.parent.parent}function y(e,t,r){return{id:null,value:e+i.HEAD_REQUEST_KEY,parent:{id:"?",value:t,parent:r}}}function _(e,t){let r=t.varyPath;if(t.isPage&&e!==l.FetchStrategy.Full&&e!==l.FetchStrategy.PPRRuntime){let e=r.parent.parent;return{id:null,value:r.value,parent:{id:"?",value:u.Fallback,parent:e}}}return r}function g(e,t){let r=e.parent;return{id:null,value:e.value,parent:{id:"?",value:t,parent:r.parent}}}function E(e){let t=e.parent.value;return"string"==typeof t?t:null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},72463,(e,t,r)=>{"use strict";function n(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parsePath",{enumerable:!0,get:function(){return n}})},41858,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(72463);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:l}=(0,n.parsePath)(e);return`${t}${r}${a}${l}`}},38281,(e,t,r)=>{"use strict";function n(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeTrailingSlash",{enumerable:!0,get:function(){return n}})},82823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return l}});let n=e.r(38281),a=e.r(72463),l=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:l}=(0,a.parsePath)(e);return`${(0,n.removeTrailingSlash)(t)}${r}${l}`};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},5550,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addBasePath",{enumerable:!0,get:function(){return l}});let n=e.r(41858),a=e.r(82823);function l(e,t){return(0,a.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},57630,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createPrefetchURL:function(){return o},isExternalURL:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(82604),u=e.r(5550);function i(e){return e.origin!==window.location.origin}function o(e){let t;if((0,l.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,u.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return i(t)?null:t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91949,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return s},getLinkForCurrentNavigation:function(){return p},mountFormInstance:function(){return m},mountLinkInstance:function(){return R},onLinkVisibilityChanged:function(){return S},onNavigationIntent:function(){return b},pingVisibleLinks:function(){return O},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return h},unmountPrefetchableInstance:function(){return P}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(9396),u=e.r(77048),i=e.r(77709),o=e.r(71645),c=null,s={pending:!0},f={pending:!1};function d(e){(0,o.startTransition)(()=>{c?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(s),c=e})}function h(e){c===e&&(c=null)}function p(){return c}let y="function"==typeof WeakMap?new WeakMap:new Map,_=new Set,g="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;S(t.target,e)}},{rootMargin:"200px"}):null;function E(e,t){void 0!==y.get(e)&&P(e),y.set(e,t),null!==g&&g.observe(e)}function v(t){if(!("u">typeof window))return null;{let{createPrefetchURL:r}=e.r(57630);try{return r(t)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${t}' because it cannot be converted to a URL.`),null}}}function R(e,t,r,n,a,l){if(a){let a=v(t);if(null!==a){let t={router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:a.href,setOptimisticLinkStatus:l};return E(e,t),t}}return{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:l}}function m(e,t,r,n){let a=v(t);null===a||E(e,{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:a.href,setOptimisticLinkStatus:null})}function P(e){let t=y.get(e);if(void 0!==t){y.delete(e),_.delete(t);let r=t.prefetchTask;null!==r&&(0,i.cancelPrefetchTask)(r)}null!==g&&g.unobserve(e)}function S(e,t){let r=y.get(e);void 0!==r&&(r.isVisible=t,t?_.add(r):_.delete(r),T(r,l.PrefetchPriority.Default))}function b(e,t){let r=y.get(e);void 0!==r&&void 0!==r&&T(r,l.PrefetchPriority.Intent)}function T(t,r){if("u">typeof window){let n=t.prefetchTask;if(!t.isVisible){null!==n&&(0,i.cancelPrefetchTask)(n);return}let{getCurrentAppRouterState:a}=e.r(99781),l=a();if(null!==l){let e=l.tree;if(null===n){let n=l.nextUrl,a=(0,u.createCacheKey)(t.prefetchHref,n);t.prefetchTask=(0,i.schedulePrefetchTask)(a,e,t.fetchStrategy,r,null)}else(0,i.reschedulePrefetchTask)(n,e,t.fetchStrategy,r)}}}function O(e,t){for(let r of _){let n=r.prefetchTask;if(null!==n&&!(0,i.isPrefetchTaskDirty)(n,e,t))continue;null!==n&&(0,i.cancelPrefetchTask)(n);let a=(0,u.createCacheKey)(r.prefetchHref,e);r.prefetchTask=(0,i.schedulePrefetchTask)(a,t,r.fetchStrategy,l.PrefetchPriority.Default,null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79027,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnknownDynamicStaleTime:function(){return i},computeDynamicStaleAt:function(){return o},invalidateBfCache:function(){return f},readFromBFCache:function(){return y},readFromBFCacheDuringRegularNavigation:function(){return _},updateBFCacheEntryStaleAt:function(){return p},writeHeadToBFCache:function(){return h},writeToBFCache:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(54069),u=e.r(511),i=-1;function o(e,t){return t!==i?e+1e3*t:e+l.DYNAMIC_STALETIME_MS}let c=(0,u.createCacheMap)(),s=0;function f(){"u">typeof window&&s++}function d(e,t,r,n,a,l,i){if("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={discoverKnownRoute:function(){return s},matchKnownRoute:function(){return d},resetKnownRoutes:function(){return h}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(20896),u=e.r(33906),i=e.r(56655);function o(){return{staticChildren:null,dynamicChild:null,dynamicChildParamName:null,dynamicChildParamType:null,pattern:null}}let c=o();function s(e,t,r,n,a,u,i,o,s,d){let h=t.split("/").filter(e=>""!==e),p=h.length>0?h[0]:null,y=h.length>0?h.slice(1):[];if(null!==n){let h=(0,l.fulfillRouteCacheEntry)(e,n,a,u,i,o,s);return d&&(h.hasDynamicRewrite=!0),f(c,a,p,y,h,e,t,r,a,u,i,o,s,d),h}return f(c,a,p,y,null,e,t,r,a,u,i,o,s,d)}function f(e,t,r,n,a,i,c,s,d,h,p,y,_,g){let E,v,R=t.segment,m=null,P=null,S=null;"string"==typeof R?E=(0,u.doesStaticSegmentAppearInURL)(R):(m=R[0],P=R[2],S=R[3],E=!0);let b=e,T=r,O=n;if(E){if(null===m&&r!==R)return null!==a?a:(0,l.writeRouteIntoCache)(i,c,s,d,h,p,y,_);if(null!==m&&null!==P){if(b=function(e,t,r){if(null!==e.dynamicChild)return e.dynamicChild;let n=o();return e.dynamicChild=n,e.dynamicChildParamName=t,e.dynamicChildParamType=r,n}(e,m,P),null!==S)for(let t of(null===e.staticChildren&&(e.staticChildren=new Map),S))e.staticChildren.has(t)||e.staticChildren.set(t,o())}else{null===e.staticChildren&&(e.staticChildren=new Map);let t=e.staticChildren.get(r);void 0===t&&(t=o(),e.staticChildren.set(r,t)),b=t}T=n.length>0?n[0]:null,O=n.length>0?n.slice(1):[]}let A=t.slots,w=null;if(null!==A){for(let e in A){let t=A[e];null===t.refreshState&&(w=f(b,t,T,O,a,i,c,s,d,h,p,y,_,g))}return null!==w?w:null!==a?a:(0,l.writeRouteIntoCache)(i,c,s,d,h,p,y,_)}return null!==b.pattern?(g&&(b.pattern.hasDynamicRewrite=!0),b.pattern):(v=null!==a?a:(0,l.writeRouteIntoCache)(i,c,s,d,h,p,y,_),g&&(v.hasDynamicRewrite=!0),b.pattern=v,v)}function d(e,t){let r=e.split("/").filter(e=>""!==e),n=new Map,a=function e(t,r,n,a){let l=n{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={EntryStatus:function(){return w},attemptToFulfillDynamicSegmentFromBFCache:function(){return ee},attemptToUpgradeSegmentFromBFCache:function(){return et},canNewFetchStrategyProvideMoreContent:function(){return eP},convertReusedFlightRouterStateToRouteTree:function(){return ef},convertRootFlightRouterStateToRouteTree:function(){return es},convertRouteTreeToFlightRouterState:function(){return function e(t){let r={};if(null!==t.slots)for(let n in t.slots)r[n]=e(t.slots[n]);return[t.segment,r,null,null]}},createDetachedSegmentCacheEntry:function(){return J},createMetadataRouteTree:function(){return en},deprecated_requestOptimisticRouteCacheEntry:function(){return G},fetchInlinedSegmentsOnCacheMiss:function(){return ey},fetchRouteOnCacheMiss:function(){return eh},fetchSegmentOnCacheMiss:function(){return ep},fetchSegmentPrefetchesUsingDynamicRequest:function(){return e_},fulfillRouteCacheEntry:function(){return ea},getCurrentRouteCacheVersion:function(){return F},getCurrentSegmentCacheVersion:function(){return U},getStaleAt:function(){return eT},getStaleTimeMs:function(){return A},invalidateEntirePrefetchCache:function(){return x},invalidateRouteCacheEntries:function(){return L},invalidateSegmentCacheEntries:function(){return k},markRouteEntryAsDynamicRewrite:function(){return eu},overwriteRevalidatingSegmentCacheEntry:function(){return z},pingInvalidationListeners:function(){return H},processRuntimePrefetchStream:function(){return eA},readOrCreateRevalidatingSegmentEntry:function(){return W},readOrCreateRouteCacheEntry:function(){return K},readOrCreateSegmentCacheEntry:function(){return Y},readRouteCacheEntry:function(){return V},readSegmentCacheEntry:function(){return B},stripIsPartialByte:function(){return ew},upgradeToPendingSegment:function(){return Z},upsertSegmentEntry:function(){return Q},waitForSegmentCacheEntry:function(){return X},writeDynamicRenderResponseIntoCache:function(){return eE},writeRouteIntoCache:function(){return el},writeStaticStageResponseIntoCache:function(){return eO}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(6372),i=e.r(21768),o=e.r(87288),c=e.r(77709),s=e.r(56655),f=e.r(51191),d=e.r(77048),h=e.r(33906),p=e.r(511),y=e.r(67764),_=e.r(50590),g=e.r(54069),E=e.r(91949),v=e.r(13258),R=e.r(9396),m=e.r(39470),P=e.r(79027),S=e.r(96167),b=e.r(60355),T=e.r(32992),O=e.r(63416);function A(e){return 1e3*Math.max(e,30)}var w=((n={})[n.Empty=0]="Empty",n[n.Pending=1]="Pending",n[n.Fulfilled=2]="Fulfilled",n[n.Rejected=3]="Rejected",n);let N=["",{},null,"metadata-only"],C=(0,p.createCacheMap)(),j=(0,p.createCacheMap)(),M=null,D=0,I=0;function F(){return D}function U(){return I}function x(e,t){D++,I++,(0,E.pingVisibleLinks)(e,t),H(e,t)}function L(e,t){D++,(0,E.pingVisibleLinks)(e,t),H(e,t)}function k(e,t){I++,(0,E.pingVisibleLinks)(e,t),H(e,t)}function H(e,t){if(null!==M){let r=M;for(let n of(M=null,r))(0,c.isPrefetchTaskDirty)(n,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(n)}}function V(e,t){let r=(0,s.getRouteVaryPath)(t.pathname,t.search,t.nextUrl),n=(0,p.getFromCacheMap)(e,D,C,r,!1);return null!==n?n:null}function B(e,t){return(0,p.getFromCacheMap)(e,I,j,t,!1)}function X(e){let t=e.promise;return null===t&&(t=e.promise=(0,m.createPromiseWithResolvers)()),t.promise}function $(){return{canonicalUrl:null,status:0,blockedTasks:null,tree:null,metadata:null,couldBeIntercepted:!0,supportsPerSegmentPrefetching:!1,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:D}}function K(e,t,r){null!==t.onInvalidate&&(null===M?M=new Set([t]):M.add(t));let n=V(e,r);if(null!==n)return n;let a=$(),l=(0,s.getRouteVaryPath)(r.pathname,r.search,r.nextUrl);return(0,p.setInCacheMap)(C,l,a,!1),a}function G(e,t,r){let n=t.search;if(""===n)return null;let a=new URL(t);a.search="";let l=V(e,(0,d.createCacheKey)(a.href,r));if(null===l||2!==l.status)return null;let u=new URL(l.canonicalUrl,t.origin),i=""!==u.search?u.search:n,o=""!==l.renderedSearch?l.renderedSearch:n,c=new URL(l.canonicalUrl,location.origin);return c.search=i,{canonicalUrl:(0,f.createHrefFromUrl)(c),status:2,blockedTasks:null,tree:q(l.tree,o),metadata:q(l.metadata,o),couldBeIntercepted:l.couldBeIntercepted,supportsPerSegmentPrefetching:l.supportsPerSegmentPrefetching,hasDynamicRewrite:l.hasDynamicRewrite,renderedSearch:o,ref:null,size:0,staleAt:l.staleAt,version:l.version}}function q(e,t){let r=null,n=e.slots;if(null!==n)for(let e in r={},n){let a=n[e];r[e]=q(a,t)}return e.isPage?{requestKey:e.requestKey,segment:e.segment,refreshState:e.refreshState,varyPath:(0,s.clonePageVaryPathWithNewSearchParams)(e.varyPath,t),isPage:!0,slots:r,prefetchHints:e.prefetchHints}:{requestKey:e.requestKey,segment:e.segment,refreshState:e.refreshState,varyPath:e.varyPath,isPage:!1,slots:r,prefetchHints:e.prefetchHints}}function Y(e,t,r){let n=B(e,r.varyPath);if(null!==n)return n;let a=(0,s.getSegmentVaryPathForRequest)(t,r),l=J(e);return(0,p.setInCacheMap)(j,a,l,!1),l}function W(e,t,r){var n;let a=(n=r.varyPath,(0,p.getFromCacheMap)(e,I,j,n,!0));if(null!==a)return a;let l=(0,s.getSegmentVaryPathForRequest)(t,r),u=J(e);return(0,p.setInCacheMap)(j,l,u,!0),u}function z(e,t,r){let n=(0,s.getSegmentVaryPathForRequest)(t,r),a=J(e);return(0,p.setInCacheMap)(j,n,a,!0),a}function Q(e,t,r){if((0,p.isValueExpired)(e,I,r))return null;let n=B(e,t);if(null!==n){var a;if(r.fetchStrategy!==n.fetchStrategy&&(a=n.fetchStrategy,!(ar?null:ei(Z(t,R.FetchStrategy.Full),a.rsc,r,!1)}return null}function et(e,t){let r=t.varyPath,n=(0,P.readFromBFCache)(r);if(null!==n){let r=n.navigatedAt+g.STATIC_STALETIME_MS;if(e>r)return null;let a=ei(Z(J(e),R.FetchStrategy.Full),n.rsc,r,!1),l=Q(e,(0,s.getSegmentVaryPathForRequest)(R.FetchStrategy.Full,t),a);if(null!==l&&2===l.status)return l}return null}function er(e){let t=e.blockedTasks;if(null!==t){for(let e of t)(0,c.pingPrefetchTask)(e);e.blockedTasks=null}}function en(e){return{requestKey:y.HEAD_REQUEST_KEY,segment:y.HEAD_REQUEST_KEY,refreshState:null,varyPath:e,isPage:!0,slots:null,prefetchHints:0}}function ea(e,t,r,n,a,l,u){let i=(0,s.getRenderedSearchFromVaryPath)(n)??"";return t.status=2,t.tree=r,t.metadata=en(n),t.staleAt=e+g.STATIC_STALETIME_MS,t.couldBeIntercepted=a,t.canonicalUrl=l,t.renderedSearch=i,t.supportsPerSegmentPrefetching=u,t.hasDynamicRewrite=!1,er(t),t}function el(e,t,r,n,a,l,u,i){let o=ea(e,$(),n,a,l,u,i),c=o.renderedSearch,f=(0,s.getFulfilledRouteVaryPath)(t,c,r,l);return(0,p.setInCacheMap)(C,f,o,!1),o}function eu(e){e.hasDynamicRewrite=!0}function ei(e,t,r,n){return e.status=2,e.rsc=t,e.staleAt=r,e.isPartial=n,null!==e.promise&&(e.promise.resolve(e),e.promise=null),e}function eo(e,t){e.status=3,e.staleAt=t,er(e)}function ec(e,t){e.status=3,e.staleAt=t,null!==e.promise&&(e.promise.resolve(null),e.promise=null)}function es(e,t,r){return ed(e,y.ROOT_SEGMENT_REQUEST_KEY,null,t,r)}function ef(e,t,r,n,a){let l=e.isPage?(0,s.getPartialPageVaryPath)(e.varyPath):(0,s.getPartialLayoutVaryPath)(e.varyPath),u=r[0],i=e.requestKey,o=(0,y.createSegmentRequestKeyPart)(u);return ed(r,(0,y.appendSegmentRequestKeyPart)(i,t,o),l,n,a)}function ed(e,t,r,n,a){let l,u,i,o,c=e[0],f=e[2]??null,d=null!==f?{canonicalUrl:f[0],renderedSearch:f[1]}:null,h=null!==d?d.renderedSearch:n;if(Array.isArray(c)){i=!1;let e=c[1],n=c[0];u=(0,s.appendLayoutVaryPath)(r,e,n),o=(0,s.finalizeLayoutVaryPath)(t,u),l=c}else u=r,t.endsWith(v.PAGE_SEGMENT_KEY)?(i=!0,l=v.PAGE_SEGMENT_KEY,o=(0,s.finalizePageVaryPath)(t,h,u),null===a.metadataVaryPath&&(a.metadataVaryPath=(0,s.finalizeMetadataVaryPath)(t,h,u))):(i=!1,l=c,o=(0,s.finalizeLayoutVaryPath)(t,u));let p=null,_=e[1];for(let e in _){let r=_[e],n=r[0],l=(0,y.createSegmentRequestKeyPart)(n),i=ed(r,(0,y.appendSegmentRequestKeyPart)(t,e,l),u,h,a);null===p?p={[e]:i}:p[e]=i}return{requestKey:t,segment:l,refreshState:d,varyPath:o,isPage:i,slots:p,prefetchHints:e[4]??0}}async function eh(e,t){let r=t.pathname,n=t.search,a=t.nextUrl,l={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_PREFETCH_HEADER]:"1",[i.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:"/_tree"};null!==a&&(l[i.NEXT_URL]=a),eS(l);try{let t,c,d=new URL(r+n,location.origin);if(t=await eR(d,l),c=null!==t&&t.redirected?new URL(t.url):d,!t||!t.ok||204===t.status||!t.body)return eo(e,Date.now()+1e4),null;let g=(0,f.createHrefFromUrl)(c),E=t.headers.get("vary"),A=null!==E&&E.includes(i.NEXT_URL),w=(0,m.createPromiseWithResolvers)(),N="2"===t.headers.get(i.NEXT_DID_POSTPONE_HEADER);if(N){let n,u,{stream:i,size:c}=await em(t.body);w.resolve(),(0,p.setSizeInCacheMap)(e,c);let f=await (0,o.createFromNextReadableStream)(i,l,{allowPartialStream:!0});if((t.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??f.buildId)!==(0,T.getNavigationBuildId)())return eo(e,Date.now()+1e4),null;let d=(0,h.getRenderedPathname)(t),_=(0,h.getRenderedSearch)(t),E={metadataVaryPath:null},R=(n=d.split("/").filter(e=>""!==e),u=y.ROOT_SEGMENT_REQUEST_KEY,function e(t,r,n,a,l,u,i,o){let c,f,d=null,p=t.slots;if(null!==p)for(let t in c=!1,f=(0,s.finalizeLayoutVaryPath)(a,n),d={},p){let r,c,f,_=p[t],g=_.name,E=_.param;if(null!==E){let e=(0,h.parseDynamicParamFromURLPart)(E.type,l,u),t=null!==E.key?E.key:(0,h.getCacheKeyForDynamicParam)(e,"");f=(0,s.appendLayoutVaryPath)(n,t,g),c=[g,t,E.type,E.siblings],r=!0}else f=n,c=g,r=(0,h.doesStaticSegmentAppearInURL)(g);let v=r?u+1:u,R=(0,y.createSegmentRequestKeyPart)(c),m=(0,y.appendSegmentRequestKeyPart)(a,t,R);d[t]=e(_,c,f,m,l,v,i,o)}else a.endsWith(v.PAGE_SEGMENT_KEY)?(c=!0,f=(0,s.finalizePageVaryPath)(a,i,n),null===o.metadataVaryPath&&(o.metadataVaryPath=(0,s.finalizeMetadataVaryPath)(a,i,n))):(c=!1,f=(0,s.finalizeLayoutVaryPath)(a,n));return{requestKey:a,segment:r,refreshState:null,varyPath:f,isPage:c,slots:d,prefetchHints:t.prefetchHints}}(f.tree,u,null,y.ROOT_SEGMENT_REQUEST_KEY,n,0,_,E)),m=E.metadataVaryPath;if(null===m)return eo(e,Date.now()+1e4),null;(0,S.discoverKnownRoute)(Date.now(),r,a,e,R,m,A,g,N,!1)}else{let{stream:n,size:c}=await em(t.body);w.resolve(),(0,p.setSizeInCacheMap)(e,c);let s=await (0,o.createFromNextReadableStream)(n,l,{allowPartialStream:!0});if((t.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??s.b)!==(0,T.getNavigationBuildId)())return eo(e,Date.now()+1e4),null;let f=s.h,d=null!==f?(0,u.readVaryParams)(f):null;!function(e,t,r,n,a,l,u,o,c,s,f){let d=(0,h.getRenderedSearch)(r),p=(0,_.normalizeFlightData)(n.f);if("string"==typeof p||1!==p.length)return eo(a,e+1e4);let y=p[0];if(!y.isRootRender)return eo(a,e+1e4);let g=y.tree,E="1"===r.headers.get(i.NEXT_DID_POSTPONE_HEADER),v={metadataVaryPath:null},R=es(g,d,v),m=v.metadataVaryPath;if(null===m)return eo(a,e+1e4);(0,S.discoverKnownRoute)(e,s,f,a,R,m,l,u,o,!1);let T=(0,b.convertServerPatchToFullTree)(e,g,p,d,P.UnknownDynamicStaleTime);eE(e,t,p,r.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??n.b,E,c,eb(e,r),T,null)}(Date.now(),R.FetchStrategy.LoadingBoundary,t,s,e,A,g,N,d,r,a)}if(!A){let t=(0,s.getFulfilledRouteVaryPath)(r,n,a,A);(0,p.setInCacheMap)(C,t,e,!1)}return{value:null,closed:w.promise}}catch(t){return eo(e,Date.now()+1e4),null}}async function ep(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),l=r.nextUrl,u=n.requestKey,c=u===y.ROOT_SEGMENT_REQUEST_KEY?"/_index":u,f={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_PREFETCH_HEADER]:"1",[i.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:c};null!==l&&(f[i.NEXT_URL]=l),eS(f);try{let e=await eR(a,f);if(!e||!e.ok||204===e.status||"2"!==e.headers.get(i.NEXT_DID_POSTPONE_HEADER)||!e.body)return ec(t,Date.now()+1e4),null;let r=(0,m.createPromiseWithResolvers)(),{stream:l,size:u}=await em(e.body);r.resolve(),(0,p.setSizeInCacheMap)(t,u);let c=await (0,o.createFromNextReadableStream)(l,f,{allowPartialStream:!0});if((e.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??c.buildId)!==(0,T.getNavigationBuildId)())return ec(t,Date.now()+1e4),null;let d=Date.now(),h=d+A(c.staleTime),y=ei(t,c.rsc,h,c.isPartial);c.varyParams;let _=(0,s.getSegmentVaryPathForRequest)(t.fetchStrategy,n);return Q(d,_,y),{value:y,closed:r.promise}}catch(e){return ec(t,Date.now()+1e4),null}}async function ey(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),l=t.nextUrl,u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_PREFETCH_HEADER]:"1",[i.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:"/"+v.PAGE_SEGMENT_KEY};null!==l&&(u[i.NEXT_URL]=l),eS(u);try{let t=await eR(a,u);if(!t||!t.ok||204===t.status||"2"!==t.headers.get(i.NEXT_DID_POSTPONE_HEADER)||!t.body)return eg(n,Date.now()+1e4),null;let l=(0,m.createPromiseWithResolvers)(),{stream:c}=await em(t.body);l.resolve();let s=await (0,o.createFromNextReadableStream)(c,u,{allowPartialStream:!0});if((t.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??s.tree.segment.buildId)!==(0,T.getNavigationBuildId)())return eg(n,Date.now()+1e4),null;let f=Date.now();!function e(t,r,n,a,l){let u=a.segment,i=t+A(u.staleTime),o=l.get(n.requestKey);if(void 0!==o)ei(o,u.rsc,i,u.isPartial);else{let e=Y(t,R.FetchStrategy.PPR,n);0===e.status&&ei(Z(e,R.FetchStrategy.PPR),u.rsc,i,u.isPartial)}if(null!==n.slots&&null!==a.slots)for(let u in n.slots){let i=n.slots[u],o=a.slots[u];void 0!==o&&e(t,r,i,o,l)}}(f,e,r,s.tree,n);let d=f+A(s.head.staleTime),h=e.metadata.requestKey,p=n.get(h);if(void 0!==p)ei(p,s.head.rsc,d,s.head.isPartial);else{let t=Y(f,R.FetchStrategy.PPR,e.metadata);0===t.status&&ei(Z(t,R.FetchStrategy.PPR),s.head.rsc,d,s.head.isPartial)}return eg(n,Date.now()+1e4),{value:null,closed:l.promise}}catch(e){return eg(n,Date.now()+1e4),null}}async function e_(e,t,r,n,a){let l=e.key,c=new URL(t.canonicalUrl,location.origin),s=l.nextUrl;1===a.size&&a.has(t.metadata.requestKey)&&(n=N);let f={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,_.prepareFlightRouterStateForRequest)(n)};switch(null!==s&&(f[i.NEXT_URL]=s),r){case R.FetchStrategy.Full:break;case R.FetchStrategy.PPRRuntime:f[i.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case R.FetchStrategy.LoadingBoundary:f[i.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let e,l=await eR(c,f);if(!l||!l.ok||!l.body)return eg(a,Date.now()+1e4),null;let i=(0,h.getRenderedSearch)(l);if(i!==t.renderedSearch)return eg(a,Date.now()+1e4),null;let s=(0,m.createPromiseWithResolvers)(),E=null,v=null;if(r===R.FetchStrategy.Full){var d,y,g;let t,r;d=l.body,y=s.resolve,g=function(e){if(null===E)return;let t=e/E.length;for(let e of E)(0,p.setSizeInCacheMap)(e,t)},t=0,r=d.getReader(),e=new ReadableStream({async pull(e){for(;;){let{done:n,value:a}=await r.read();if(!n){e.enqueue(a),g(t+=a.byteLength);continue}e.close(),y();return}}})}else{let{stream:t,size:r}=await em(l.body);s.resolve(),e=t,v=r}let[S,T]=await Promise.all([(0,o.createFromNextReadableStream)(e,f,{allowPartialStream:!0}),l.cacheData]),A=S.h,w=null!==A?(0,u.readVaryParams)(A):null,N=Date.now(),C=await eT(N,S.s,l),j=r===R.FetchStrategy.PPRRuntime&&(T?.isResponsePartial??!1),M=l.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??S.b,D=(0,_.normalizeFlightData)(S.f);if("string"==typeof D)return eg(a,Date.now()+1e4),null;let I=(0,b.convertServerPatchToFullTree)(N,n,D,i,P.UnknownDynamicStaleTime);if(E=eE(N,r,D,M,j,w,C,I,a),null!==v&&null!==E&&E.length>0){let e=v/E.length;for(let t of E)(0,p.setSizeInCacheMap)(t,e)}return{value:null,closed:s.promise}}catch(e){return eg(a,Date.now()+1e4),null}}function eg(e,t){let r=[];for(let n of e.values())1===n.status?ec(n,t):2===n.status&&r.push(n);return r}function eE(e,t,r,n,a,l,i,o,c){if(n&&n!==(0,T.getNavigationBuildId)())return null!==c&&eg(c,e+1e4),null;let s=o.routeTree,f=null!==o.metadataVaryPath?en(o.metadataVaryPath):null;for(let n of r){let r=n.seedData;if(null!==r){let l=n.segmentPath,o=s;for(let t=0;t1){t=new Uint8Array(a);let e=0;for(let r of n)t.set(r,e),e+=r.byteLength}else t=new Uint8Array(0);return{stream:new ReadableStream({start(e){e.enqueue(t),e.close()}}),size:a}}function eP(e,t){return ee.close()}),isPartial:!1};let a=n[0],l=35===a||126===a,u=l?n.byteLength>1?n.subarray(1):null:n;return{isPartial:!!l&&126===a,stream:new ReadableStream({start(e){u&&e.enqueue(u)},async pull(e){let r=await t.read();r.done?e.close():e.enqueue(r.value)}})}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},87288,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var a={createFetch:function(){return T},createFromNextReadableStream:function(){return O},decodeStaticStage:function(){return b},fetchServerResponse:function(){return m},processFetch:function(){return P},resolveStaticStageData:function(){return S}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(35326);e.r(12718);let i=e.r(21768),o=e.r(32120),c=e.r(92245),s=e.r(50590),f=e.r(88093),d=e.r(33906),h=e.r(43369),p=e.r(32992),y=e.r(63416);e.r(20896);let _=e.r(79027),g=u.createFromReadableStream,E=u.createFromFetch;function v(e){return(0,d.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let R=!1;async function m(e,t){let{flightRouterState:r,nextUrl:n}=t,a={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,s.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};n&&(a[i.NEXT_URL]=n);try{let t=await T(e,a,"auto",!0),r=(0,d.urlToUrlWithoutFlightMarker)(new URL(t.url)),n=t.redirected?r:e,l=t.headers.get("content-type")||"",u=!!t.headers.get("vary")?.includes(i.NEXT_URL),o=!!t.headers.get(i.NEXT_DID_POSTPONE_HEADER);if(!l.startsWith(i.RSC_CONTENT_TYPE_HEADER)||!t.ok||!t.body)return e.hash&&(r.hash=e.hash),v(r.toString());let c=t.flightResponsePromise;null===c&&(c=O(t.body,a,{allowPartialStream:o}));let[f,h]=await Promise.all([c,t.cacheData]);if((t.headers.get(y.NEXT_NAV_DEPLOYMENT_ID_HEADER)??f.b)!==(0,p.getNavigationBuildId)())return v(t.url);let g=(0,s.normalizeFlightData)(f.f);if("string"==typeof g)return v(g);let E=null!==h?await S(h,f,a):null;return{flightData:g,canonicalUrl:n,renderedSearch:f.q,couldBeIntercepted:u,supportsPerSegmentPrefetching:f.S,postponed:o,dynamicStaleTime:f.d??_.UnknownDynamicStaleTime,staticStageData:E,runtimePrefetchStream:f.p??null,responseHeaders:t.headers,debugInfo:c._debugInfo??null}}catch(t){return R||console.error(`Failed to fetch RSC payload for ${e}. Falling back to browser navigation.`,t),e.toString()}}async function P(e){return{response:e,cacheData:null}}async function S(e,t,r){let{isResponsePartial:n,responseBodyClone:a}=e;if(a){if(!n)return a.cancel(),{response:t,isResponsePartial:!1};if(void 0!==t.l)return{response:await b(a,t.l,r),isResponsePartial:!0};a.cancel()}return null}async function b(e,t,r){var n,a;let l,u;return O((n=e,a=await t,l=n.getReader(),u=a,new ReadableStream({async pull(e){if(u<=0){l.cancel(),e.close();return}let{done:t,value:r}=await l.read();t?e.close():r.byteLength<=u?(e.enqueue(r),u-=r.byteLength):(e.enqueue(r.subarray(0,u)),u=0,l.cancel(),e.close())},cancel(){l.cancel()}})),r,{allowPartialStream:!0})}async function T(e,t,r,a,l){var u,s;let d=(0,h.getDeploymentId)();d&&(t["x-deployment-id"]=d);let p=new URL(e);await (0,f.setCacheBustingSearchParam)(p,t);let y=fetch(p,{credentials:"same-origin",headers:t,priority:r||void 0,signal:l}).then(P),_=y.then(({response:e})=>e),g=a?(u=_,s=t,E(u,{callServer:o.callServer,findSourceMapURL:c.findSourceMapURL,debugChannel:n&&n(s)})):null,v=await _,R=v.redirected,m=new URL(v.url,p);return m.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:m.href,redirected:R,ok:v.ok,headers:v.headers,body:v.body,status:v.status,flightResponsePromise:g,cacheData:y.then(({cacheData:e})=>e)}}function O(e,t,r){return g(e,{callServer:o.callServer,findSourceMapURL:c.findSourceMapURL,debugChannel:n&&n(t),unstable_allowPartialStream:r?.allowPartialStream})}"u">typeof window&&(window.addEventListener("pagehide",()=>{R=!0}),window.addEventListener("pageshow",()=>{R=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48919,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let a=t[0],l=r.segment;if(Array.isArray(a)&&Array.isArray(l)){if(a[0]!==l[0]||a[2]!==l[2])return!0}else if(a!==l)return!0;let u=((t[4]??0)&n.PrefetchHint.IsRootLayout)!=0,i=(r.prefetchHints&n.PrefetchHint.IsRootLayout)!=0;if(u)return!i;if(i)return!0;let o=r.slots,c=t[1];if(null!==o)for(let t in o){let r=o[t],n=c[t];if(void 0===n||e(n,r))return!0}return!1}}});let n=e.r(22744);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94272,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getLastCommittedTree:function(){return u},setLastCommittedTree:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=null;function u(){return l}function i(e){l=e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},95871,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={FreshnessPolicy:function(){return P},createInitialCacheNodeForHydration:function(){return b},isDeferredRsc:function(){return L},spawnDynamicRequests:function(){return D},startPPRNavigation:function(){return T}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(22744),i=e.r(13258),o=e.r(56019),c=e.r(51191),s=e.r(87288),f=e.r(41538),d=e.r(88540),h=e.r(48919),p=e.r(94272),y=e.r(60355),_=e.r(20896),g=e.r(9396),E=e.r(96167),v=e.r(63416),R=e.r(56655),m=e.r(79027);var P=((n={})[n.Default=0]="Default",n[n.Hydration=1]="Hydration",n[n.HistoryTraversal=2]="HistoryTraversal",n[n.RefreshAll=3]="RefreshAll",n[n.HMRRefresh=4]="HMRRefresh",n[n.Gesture=5]="Gesture",n);let S=()=>{};function b(e,t,r,n,a){return O(e,t,null,1,r,n,a,!1,{separateRefreshUrls:null,scrollRef:null})}function T(e,t,r,n,a,l,s,f,d,p,y,g,E){let v={canonicalUrl:(0,c.createHrefFromUrl)(t),renderedSearch:r};return function e(t,r,n,a,l,c,s,f,d,p,y,g,E,v,R,m){var P,S,b;let T,w,M,D,I=a[0],F=A(l);if(!(0,o.matchSegment)(F,I))return!f&&(0,h.isNavigatingToNewRootLayout)(a,l)||F===i.NOT_FOUND_SEGMENT_KEY?null:O(t,l,c,s,d,p,y,E,m);let U=l.slots,x=a[1],L=null!==d?d[1]:null,k=f||(l.prefetchHints&u.PrefetchHint.IsRootLayout)!=0,H=!1;switch(s){case 0:case 2:case 1:case 5:H=!1;break;case 3:case 4:H=!0}let V=null===U;if(void 0===n||H||V&&g){let e=C(t,l,null!==d?d[0]:null,c,p,s,y);M=e.cacheNode,D=e.needsDynamicRequest,void 0!==n&&(M.scrollRef=n.scrollRef)}else{P=!1,M=j((S=n).rsc,P?null:S.prefetchRsc,S.head,P?null:S.prefetchHead,S.scrollRef),D=!1}let B=l.refreshState,X=null!=B?B:R;D&&null!==X&&(b=m,T=X.canonicalUrl,null===(w=b.separateRefreshUrls)?b.separateRefreshUrls=new Set([T]):w.add(T));let $={},K=null,G=!1,q={},Y=null;if(null!==U){let a=void 0!==n?n.slots:null;for(let n in M.slots=Y={},K=new Map,U){let u=U[n],o=x[n];if(void 0===o)return null;let f=null!==L?L[n]:null,d=o[0],h=A(u),R=p;2!==s&&h===i.DEFAULT_SEGMENT_KEY&&d!==i.DEFAULT_SEGMENT_KEY&&(h=A(u=function(e,t,r,n){let a,l,u=n[2];null!=u?(a=u[0],l=u[1]):(a=r.canonicalUrl,l=r.renderedSearch);let i=(0,_.convertReusedFlightRouterStateToRouteTree)(e,t,n,l,{metadataVaryPath:null});return i.refreshState={canonicalUrl:a,renderedSearch:l},i}(l,n,v,o)),f=null,R=null);let P=e(t,r,null!==a?a[n]:void 0,o,u,c,s,k,f??null,R,y,g,E||D,v,X,m);if(null===P)return null;K.set(n,P),Y[n]=P.node;let S=P.route;$[n]=S;let b=P.dynamicRequestTree;null!==b?(G=!0,q[n]=b):q[n]=S}}let W=[A(l),$,null!==X?[X.canonicalUrl,X.renderedSearch]:null,null,l.prefetchHints];return{status:+!D,route:W,node:M,dynamicRequestTree:N(W,q,D,G,E),refreshState:X,children:K}}(e,t,null!==n?n:void 0,a,l,s,f,!1,d,p,y,g,!1,v,null,E)}function O(e,t,r,n,a,l,u,i,o){let c=A(t),s=t.slots,f=null!==a?a[1]:null,d=C(e,t,null!==a?a[0]:null,r,l,n,u),h=d.cacheNode,p=d.needsDynamicRequest;null===s&&function(e,t,r){switch(e){case 0:case 5:case 3:case 4:null===r.scrollRef&&(r.scrollRef={current:!0}),t.scrollRef=r.scrollRef}}(n,h,o);let y={},_=null,g=!1,E={},v=null;if(null!==s)for(let t in h.slots=v={},_=new Map,s){let a=O(e,s[t],r,n,(null!==f?f[t]:null)??null,l,u,i||p,o);_.set(t,a),v[t]=a.node;let c=a.route;y[t]=c;let d=a.dynamicRequestTree;null!==d?(g=!0,E[t]=d):E[t]=c}let R=[c,y,null,null,t.prefetchHints];return{status:+!p,route:R,node:h,dynamicRequestTree:N(R,E,p,g,i),refreshState:null,children:_}}function A(e){if(e.isPage){let t=(0,R.getRenderedSearchFromVaryPath)(e.varyPath);if(null===t)return i.PAGE_SEGMENT_KEY;let r=JSON.stringify(Object.fromEntries(new URLSearchParams(t)));return"{}"!==r?i.PAGE_SEGMENT_KEY+"?"+r:i.PAGE_SEGMENT_KEY}return e.segment}function w(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function N(e,t,r,n,a){let l=null;return r?(l=w(e,t),a||(l[3]="refetch")):l=n?w(e,t):null,l}function C(e,t,r,n,a,l,u){let i,o,c,s=t.isPage;switch(l){case 0:{let r=(0,m.readFromBFCacheDuringRegularNavigation)(e,t.varyPath);if(null!==r)return{cacheNode:j(r.rsc,r.prefetchRsc,r.head,r.prefetchHead),needsDynamicRequest:!1};break}case 1:{let l=s?a:null;return(0,m.writeToBFCache)(e,t.varyPath,r,null,l,null,u),s&&null!==n&&(0,m.writeHeadToBFCache)(e,n,l,null,u),{cacheNode:j(r,null,l,null),needsDynamicRequest:!1}}case 2:let f=(0,m.readFromBFCache)(t.varyPath);if(null!==f){let e=f.rsc,t=!L(e)||"pending"!==e.status;return{cacheNode:j(f.rsc,t?null:f.prefetchRsc,f.head,t?null:f.prefetchHead),needsDynamicRequest:!1}}}let d=null,h=!0,p=(0,_.readSegmentCacheEntry)(e,t.varyPath);if(null!==p)switch(p.status){case _.EntryStatus.Fulfilled:d=p.rsc,h=p.isPartial;break;case _.EntryStatus.Pending:d=(0,_.waitForSegmentCacheEntry)(p).then(e=>null!==e?e.rsc:null),h=p.isPartial;case _.EntryStatus.Empty:case _.EntryStatus.Rejected:}null!==r?(h?(i=d,o=r):(i=null,o=d),c=!1):(h?(i=d,o=k()):(i=null,o=d),c=h);let y=null,g=null,E=s;if(s){let t=null,r=!0;if(null!==n){let a=(0,_.readSegmentCacheEntry)(e,n);if(null!==a)switch(a.status){case _.EntryStatus.Fulfilled:t=a.rsc,r=a.isPartial;break;case _.EntryStatus.Pending:t=(0,_.waitForSegmentCacheEntry)(a).then(e=>null!==e?e.rsc:null),r=a.isPartial;case _.EntryStatus.Empty:case _.EntryStatus.Rejected:}}null!==a?(r?(y=t,g=a):(y=null,g=t),E=!1):(r?(y=t,g=k()):(y=null,g=t),E=r)}return 5!==l&&((0,m.writeToBFCache)(e,t.varyPath,o,i,g,y,u),s&&null!==n&&(0,m.writeHeadToBFCache)(e,n,g,y,u)),{cacheNode:j(o,i,g,y),needsDynamicRequest:c||E}}function j(e,t,r,n,a=null){return{rsc:e,prefetchRsc:t,head:r,prefetchHead:n,slots:null,scrollRef:a}}let M=!1;function D(e,t,r,n,a,l,u){let i=e.dynamicRequestTree;if(null===i){M=!1;return}let o=U(e,i,t,r,n,l),s=a.separateRefreshUrls,f=null;if(null!==s){f=[];let a=(0,c.createHrefFromUrl)(t);for(let t of s)t!==a&&null!==i&&f.push(U(e,i,new URL(t,location.origin),r,n,l))}I(e,r,o,f,l,u).then(S,S)}async function I(e,t,r,n,a,l){var u,i;let o=await (u=r,i=n,new Promise(e=>{let t=t=>{0===t.exitStatus?0==--n&&e(0):e(t.exitStatus)},r=()=>e(2),n=1;u.then(t,r),null!==i&&(n+=i.length,i.forEach(e=>e.then(t,r)))}));switch(0===o&&(o=function e(t,r,n){var a,l,u;let i,o,c;0===t.status?(t.status=2,a=t.node,l=r,u=n,L(o=a.rsc)&&(null===l?o.resolve(null,u):o.reject(l,u)),L(c=a.head)&&c.resolve(null,u),i=null===t.refreshState?1:2):i=0;let s=t.children;if(null!==s)for(let[,t]of s){let a=e(t,r,n);a>i&&(i=a)}return i}(e,null,null)),o){case 0:M=!1;return;case 1:{let n=await r;F(!1,n.url,t,n.seed,e.route,a,l);return}case 2:{let n=await r;F(!0,n.url,t,n.seed,e.route,a,l);return}default:return o}}function F(e,t,r,n,a,l,u){if(null!==l)(0,_.markRouteEntryAsDynamicRewrite)(l);else if(null!==n){let e=n.metadataVaryPath;if(null!==e){let a=Date.now();(0,E.discoverKnownRoute)(a,t.pathname,r,null,n.routeTree,e,!1,(0,c.createHrefFromUrl)(t),!1,!0)}}(0,_.invalidateRouteCacheEntries)(r,a),e=e||M,M=!0;let i=(0,p.getLastCommittedTree)(),o=null!==i&&a!==i?u:"replace",s={type:d.ACTION_SERVER_PATCH,previousTree:a,url:t,nextUrl:r,seed:n,mpa:e,navigateType:o};(0,f.dispatchAppRouterAction)(s)}async function U(e,t,r,n,a,l){try{let u=await (0,s.fetchServerResponse)(r,{flightRouterState:t,nextUrl:n,isHmrRefresh:4===a});if("string"==typeof u)return{exitStatus:2,url:new URL(u,location.origin),seed:null};let i=Date.now(),c=(0,y.convertServerPatchToFullTree)(i,e.route,u.flightData,u.renderedSearch,u.dynamicStaleTime);if(null!==l&&null!==u.staticStageData){let{response:e,isResponsePartial:r}=u.staticStageData;(0,_.getStaleAt)(i,e.s).then(n=>{let a=u.responseHeaders.get(v.NEXT_NAV_DEPLOYMENT_ID_HEADER)??e.b;(0,_.writeStaticStageResponseIntoCache)(i,e.f,a,e.h,n,t,u.renderedSearch,r)}).catch(()=>{})}null!==l&&null!==u.runtimePrefetchStream&&(0,_.processRuntimePrefetchStream)(i,u.runtimePrefetchStream,t,u.renderedSearch).then(e=>{null!==e&&(0,_.writeDynamicRenderResponseIntoCache)(i,g.FetchStrategy.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{});let f=(0,m.computeDynamicStaleAt)(i,u.dynamicStaleTime);return{exitStatus:+!!function e(t,r,n,a,l,u){0===t.status&&null!==n&&(t.status=1,function(e,t,r,n){let a=e.rsc,l=t[0];if(null===l)return;null===a?e.rsc=l:L(a)&&a.resolve(l,n);let u=e.head;L(u)&&u.resolve(r,n)}(t.node,n,a,u),(0,m.updateBFCacheEntryStaleAt)(r.varyPath,l));let i=t.children,c=r.slots,s=null!==n?n[1]:null,f=!1;if(null!==i)if(null!==c)for(let t in c){let r=c[t],n=null!==s?s[t]:null,d=i.get(t);if(void 0===d)f=!0;else{let t=d.route[0],i=A(r);(0,o.matchSegment)(i,t)&&null!=n&&e(d,r,n,a,l,u)&&(f=!0)}}else null!==c&&(f=!0);return f}(e,c.routeTree,c.data,c.head,f,u.debugInfo),url:new URL(u.canonicalUrl,location.origin),seed:c}}catch{return{exitStatus:2,url:r,seed:null}}}let x=Symbol();function L(e){return e&&"object"==typeof e&&e.tag===x}function k(){let e,t,r=[],n=new Promise((r,n)=>{e=r,t=n});return n.status="pending",n.resolve=(t,a)=>{"pending"===n.status&&(n.status="fulfilled",n.value=t,null!==a&&r.push.apply(r,a),e(t))},n.reject=(e,a)=>{"pending"===n.status&&(n.status="rejected",n.reason=e,null!==a&&r.push.apply(r,a),t(e))},n.tag=x,n._debugInfo=r,n}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3372,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},74180,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={compareAppPaths:function(){return o},normalizeAppPath:function(){return i},normalizeRscURL:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(3372),u=e.r(13258);function i(e){return(0,l.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,u.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function o(e,t){let r=e.includes("/@"),n=t.includes("/@");return r&&!n?-1:!r&&n?1:e.localeCompare(t)}function c(e){return e.replace(/\.rsc($|\?)/,"$1")}},91463,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return u},extractInterceptionRouteInformation:function(){return o},isInterceptionRouteAppPath:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(74180),u=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>u.find(t=>e.startsWith(t)))}function o(e){let t,r,n;for(let a of e.split("/"))if(r=u.find(e=>a.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,l.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let a=t.split("/");if(a.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=a.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},34727,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={computeChangedPath:function(){return h},extractPathFromFlightRouterState:function(){return f},extractSourcePageFromFlightRouterState:function(){return d},getSelectedParams:function(){return function e(t,r={}){for(let n of Object.values(t[1])){let t=n[0],a=Array.isArray(t),l=a?t[1]:t;!l||l.startsWith(u.PAGE_SEGMENT_KEY)||(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r}}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(91463),u=e.r(13258),i=e.r(56019),o=e=>"/"===e[0]?e.slice(1):e,c=e=>"string"==typeof e?"children"===e?"":e:e[1];function s(e){return e.reduce((e,t)=>""===(t=o(t))||(0,u.isGroupSegment)(t)?e:`${e}/${t}`,"")||"/"}function f(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===u.DEFAULT_SEGMENT_KEY||l.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t.startsWith(u.PAGE_SEGMENT_KEY))return"";let r=[c(t)],n=e[1]??{},a=n.children?f(n.children):void 0;if(void 0!==a)r.push(a);else for(let[e,t]of Object.entries(n)){if("children"===e)continue;let n=f(t);void 0!==n&&r.push(n)}return s(r)}function d(e){let t=function e(t){let r=(e=>{if("string"==typeof e)return"children"===e?"":e.startsWith(u.PAGE_SEGMENT_KEY)?"page":e;let[t,,r]=e;switch(r){case"c":return`[...${t}]`;case"ci(..)(..)":return`(..)(..)[...${t}]`;case"ci(.)":return`(.)[...${t}]`;case"ci(..)":return`(..)[...${t}]`;case"ci(...)":return`(...)[...${t}]`;case"oc":return`[[...${t}]]`;case"d":default:return`[${t}]`;case"di(..)(..)":return`(..)(..)[${t}]`;case"di(.)":return`(.)[${t}]`;case"di(..)":return`(..)[${t}]`;case"di(...)":return`(...)[${t}]`}})(t[0]);if(r===u.DEFAULT_SEGMENT_KEY)return;if("page"===r)return[r];let n=t[1]??{},a=n.children?e(n.children):void 0;if(void 0!==a)return""===r?a:[o(r),...a];for(let[t,a]of Object.entries(n)){if("children"===t)continue;let n=e(a);if(void 0!==n)return""===r?n:[o(r),...n]}}(e);return t?`/${t.join("/")}`:void 0}function h(e,t){let r=function e(t,r){let[n,a]=t,[u,o]=r,s=c(n),d=c(u);if(l.INTERCEPTION_ROUTE_MARKERS.some(e=>s.startsWith(e)||d.startsWith(e)))return"";if(!(0,i.matchSegment)(n,u))return f(r)??"";for(let t in a)if(o[t]){let r=e(a[t],o[t]);if(null!==r)return`${c(u)}/${r}`}return null}(e,t);return null==r||"/"===r?r:s(r.split("/"))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48277,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isJavaScriptURLString",{enumerable:!0,get:function(){return a}});let n=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function a(e){return n.test(""+e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},81400,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isNavigationLocked:function(){return o},startListeningForInstantNavigationCookie:function(){return l},transitionToCapturedSPA:function(){return u},updateCapturedSPAToTree:function(){return i},waitForNavigationLockIfActive:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(){}function u(e,t){}function i(e,t){}function o(){return!1}async function c(){}e.r(21768),e.r(41538),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},60355,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={completeHardNavigation:function(){return P},completeSoftNavigation:function(){return S},completeTraverseNavigation:function(){return b},convertServerPatchToFullTree:function(){return T},navigate:function(){return g},navigateToKnownRoute:function(){return E}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(87288),u=e.r(95871),i=e.r(51191),o=e.r(63416),c=e.r(20896),s=e.r(96167),f=e.r(77048);e.r(77709);let d=e.r(9396);e.r(91949);let h=e.r(88540),p=e.r(34727),y=e.r(48277),_=e.r(79027);function g(e,t,r,n,a,l,u,i,o,s){return function(e,t,r,n,a,l,u,i,o,s){let d=Date.now(),h=t.href,p=(0,f.createCacheKey)(h,u),y=(0,c.readRouteCacheEntry)(d,p);if(null!==y&&y.status===c.EntryStatus.Fulfilled)return v(d,e,t,r,n,u,a,l,i,o,s,y);if(null===y||y.status!==c.EntryStatus.Rejected){let f=(0,c.deprecated_requestOptimisticRouteCacheEntry)(d,t,u);if(null!==f)return v(d,e,t,r,n,u,a,l,i,o,s,f)}return m(d,e,t,r,n,u,a,l,i,o,s).catch(()=>e)}(e,t,r,n,a,l,u,i,o,s)}function E(e,t,r,n,a,l,i,o,c,s,f,d,h,p,y){let _={separateRefreshUrls:null,scrollRef:null},g=r.href===l.href,E=(0,u.startPPRNavigation)(e,l,i,o,c,a.routeTree,a.metadataVaryPath,s,a.data,a.head,a.dynamicStaleAt,g,_);return null!==E?(s!==u.FreshnessPolicy.Gesture&&(0,u.spawnDynamicRequests)(E,r,f,s,_,y,h),S(t,r,f,E.route,E.node,a.renderedSearch,n,h,d,_.scrollRef,p)):P(t,r,h)}function v(e,t,r,n,a,l,u,i,o,c,s,f){let d=f.tree,h=f.canonicalUrl+r.hash,p={renderedSearch:f.renderedSearch,routeTree:d,metadataVaryPath:f.metadata.varyPath,data:null,head:null,dynamicStaleAt:(0,_.computeDynamicStaleAt)(e,_.UnknownDynamicStaleTime)};return E(e,t,r,h,p,n,a,u,i,o,l,c,s,null,f)}let R=["",{},null,"refetch"];async function m(e,t,r,n,a,f,h,p,y,_,g){let v;switch(y){case u.FreshnessPolicy.Default:case u.FreshnessPolicy.HistoryTraversal:case u.FreshnessPolicy.Gesture:v=p;break;case u.FreshnessPolicy.Hydration:case u.FreshnessPolicy.RefreshAll:case u.FreshnessPolicy.HMRRefresh:v=R;break;default:v=p}let m=(0,l.fetchServerResponse)(r,{flightRouterState:v,nextUrl:f}),S=await m;if("string"==typeof S)return P(t,new URL(S,location.origin),g);let{flightData:b,canonicalUrl:O,renderedSearch:A,couldBeIntercepted:w,supportsPerSegmentPrefetching:N,dynamicStaleTime:C,staticStageData:j,runtimePrefetchStream:M,responseHeaders:D,debugInfo:I}=S,F=T(e,p,b,A,C),U=F.metadataVaryPath;if(null!==U){if((0,s.discoverKnownRoute)(e,r.pathname,f,null,F.routeTree,U,w,(0,i.createHrefFromUrl)(O),N,!1),null!==j){let{response:t,isResponsePartial:r}=j;(0,c.getStaleAt)(e,t.s).then(n=>{let a=D.get(o.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;(0,c.writeStaticStageResponseIntoCache)(e,t.f,a,t.h,n,p,A,r)}).catch(()=>{})}null!==M&&(0,c.processRuntimePrefetchStream)(e,M,p,A).then(t=>{null!==t&&(0,c.writeDynamicRenderResponseIntoCache)(e,d.FetchStrategy.PPRRuntime,t.flightDatas,t.buildId,t.isResponsePartial,t.headVaryParams,t.staleAt,t.navigationSeed,null)}).catch(()=>{})}return E(e,t,r,(0,i.createHrefFromUrl)(O),F,n,a,h,p,y,f,_,g,I,null)}function P(e,t,r){return(0,y.isJavaScriptURLString)(t.href)?(console.error("Next.js has blocked a javascript: URL as a security precaution."),e):{canonicalUrl:t.origin===location.origin?(0,i.createHrefFromUrl)(t):t.href,pushRef:{pendingPush:"push"===r,mpaNavigation:!0,preserveCustomHistoryState:!1},renderedSearch:e.renderedSearch,focusAndScrollRef:e.focusAndScrollRef,cache:e.cache,tree:e.tree,nextUrl:e.nextUrl,previousNextUrl:e.previousNextUrl,debugInfo:null}}function S(e,t,r,n,a,l,u,i,o,c,s){let f,d,y=(0,p.computeChangedPath)(e.tree,n)||e.nextUrl,_=new URL(e.canonicalUrl,t),g=t.pathname===_.pathname&&t.search===_.search&&t.hash!==_.hash;if(o===h.ScrollBehavior.NoScroll)null!==c&&(c.current=!1),f=e.focusAndScrollRef.scrollRef,d=!1;else if(g){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1),null!==c&&(c.current=!1),f={current:!0},d=!0}else{if(f=c,null!==c){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1)}d=!1}return{canonicalUrl:u,renderedSearch:l,pushRef:{pendingPush:"push"===i,mpaNavigation:!1,preserveCustomHistoryState:!1},focusAndScrollRef:{scrollRef:f,forceScroll:d,onlyHashChange:g,hashFragment:o!==h.ScrollBehavior.NoScroll&&""!==t.hash?decodeURIComponent(t.hash.slice(1)):e.focusAndScrollRef.hashFragment},cache:a,tree:n,nextUrl:y,previousNextUrl:r,debugInfo:s}}function b(e,t,r,n,a,l){return{canonicalUrl:(0,i.createHrefFromUrl)(t),renderedSearch:r,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:n,tree:a,nextUrl:l,previousNextUrl:null,debugInfo:null}}function T(e,t,r,n,a){let l=t,u=null,i=null;if(null!==r)for(let{segmentPath:e,tree:t,seedData:a,head:o}of r){let r=function e(t,r,n,a,l,u,i){let o;if(i===l.length)return{tree:n,data:a};let c=l[i],s=t[1],f=null!==r?r[1]:null,d={},h={};for(let t in s){let r=s[t],o=null!==f?f[t]??null:null;if(t===c){let c=e(r,o,n,a,l,u,i+2);d[t]=c.tree,h[t]=c.data}else d[t]=r,h[t]=o}if(o=[t[0],d],2 in t){let e=t[2];null!=e&&(o[2]=[e[0],u])}return 3 in t&&(o[3]=t[3]),4 in t&&(o[4]=t[4]),{tree:o,data:[null,h,null,!0,null]}}(l,u,t,a,e,n,0);l=r.tree,u=r.data,i=o}let o=l,s={metadataVaryPath:null};return{routeTree:(0,c.convertRootFlightRouterStateToRouteTree)(o,n,s),metadataVaryPath:s.metadataVaryPath,data:u,renderedSearch:n,head:i,dynamicStaleAt:(0,_.computeDynamicStaleAt)(e,a)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},54069,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DYNAMIC_STALETIME_MS:function(){return o},STATIC_STALETIME_MS:function(){return c},navigateReducer:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(60355),u=e.r(20896),i=e.r(95871),o=1e3*Number("0"),c=(0,u.getStaleTimeMs)(Number("300"));function s(e,t){let{url:r,isExternalUrl:n,navigateType:a,scrollBehavior:u}=t;if(n||document.getElementById("__next-page-redirect"))return(0,l.completeHardNavigation)(e,r,a);let o=new URL(e.canonicalUrl,location.origin),c=e.renderedSearch;return(0,l.navigate)(e,r,o,c,e.cache,e.tree,e.nextUrl,i.FreshnessPolicy.Default,u,a)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84356,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=e.r(91463);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69845,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={refreshDynamicData:function(){return d},refreshReducer:function(){return f}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(88540),u=e.r(60355),i=e.r(20896),o=e.r(84356),c=e.r(95871),s=e.r(79027);function f(e,t){{let t=e.nextUrl,r=e.tree;(0,i.invalidateSegmentCacheEntries)(t,r)}return d(e,c.FreshnessPolicy.RefreshAll)}function d(e,t){(0,s.invalidateBfCache)();let r=e.nextUrl,n=(0,o.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||r:null,a=e.canonicalUrl,i=new URL(a,location.origin),c=e.renderedSearch,f=e.tree,d=l.ScrollBehavior.NoScroll,h=Date.now(),p=(0,u.convertServerPatchToFullTree)(h,f,null,c,s.UnknownDynamicStaleTime);return(0,u.navigateToKnownRoute)(h,e,i,a,p,i,c,e.cache,f,t,n,d,"replace",null,null)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"serverPatchReducer",{enumerable:!0,get:function(){return o}});let n=e.r(51191),a=e.r(88540),l=e.r(60355),u=e.r(69845),i=e.r(95871);function o(e,t){let r=t.mpa,o=new URL(t.url,location.origin),c=t.seed,s=t.navigateType;if(r||null===c)return(0,l.completeHardNavigation)(e,o,s);let f=new URL(e.canonicalUrl,location.origin),d=e.renderedSearch;if(t.previousTree!==e.tree)return(0,u.refreshReducer)(e,{type:a.ACTION_REFRESH});let h=(0,n.createHrefFromUrl)(o),p=t.nextUrl,y=a.ScrollBehavior.Default,_=Date.now();return(0,l.navigateToKnownRoute)(_,e,o,h,c,f,d,e.cache,e.tree,i.FreshnessPolicy.RefreshAll,p,y,s,null,null)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73790,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"restoreReducer",{enumerable:!0,get:function(){return i}});let n=e.r(34727),a=e.r(95871),l=e.r(60355),u=e.r(79027);function i(e,t){let r,i,o=t.historyState;o?(r=o.tree,i=o.renderedSearch):(r=e.tree,i=e.renderedSearch);let c=new URL(e.canonicalUrl,location.origin),s=t.url,f=(0,n.extractPathFromFlightRouterState)(r)??s.pathname,d=Date.now(),h={separateRefreshUrls:null,scrollRef:null},p=(0,l.convertServerPatchToFullTree)(d,r,null,i,u.UnknownDynamicStaleTime),y=(0,a.startPPRNavigation)(d,c,e.renderedSearch,e.cache,e.tree,p.routeTree,p.metadataVaryPath,a.FreshnessPolicy.HistoryTraversal,null,null,p.dynamicStaleAt,!1,h);return null===y?(0,l.completeHardNavigation)(e,s,"replace"):((0,a.spawnDynamicRequests)(y,s,f,a.FreshnessPolicy.HistoryTraversal,h,null,"replace"),(0,l.completeTraverseNavigation)(e,s,i,y.node,y.route,f))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},86720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hmrRefreshReducer",{enumerable:!0,get:function(){return l}});let n=e.r(69845),a=e.r(95871);function l(e){return(0,n.refreshDynamicData)(e,a.FreshnessPolicy.HMRRefresh)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92838,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return l},unstable_isUnrecognizedActionError:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});class l extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function u(e){return!!(e&&"object"==typeof e&&e instanceof l)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27801,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"assignLocation",{enumerable:!0,get:function(){return a}});let n=e.r(5550);function a(e,t){if(e.startsWith(".")){let r=t.origin+t.pathname;return new URL((r.endsWith("/")?r:r+"/")+e)}return new URL((0,n.addBasePath)(e),t.href)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},34457,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},62266,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(34457)},24063,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return o},getRedirectStatusCodeFromError:function(){return h},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return s},redirect:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(76963),u=e.r(68391),i="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"pathHasPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(72463);function a(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},52817,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasBasePath",{enumerable:!0,get:function(){return a}});let n=e.r(39584);function a(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},87250,(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeBasePath",{enumerable:!0,get:function(){return n}}),e.r(52817),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39747,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={extractInfoFromServerReferenceId:function(){return l},omitUnusedArgs:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}function u(e,t){let r=Array(e.length),n=0;for(let a=0;a=6&&t.hasRestArgs)&&(r[a]=e[a],n=a+1);return r.length=n,r}},39146,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ActionDidNotRevalidate:function(){return l},ActionDidRevalidateDynamicOnly:function(){return i},ActionDidRevalidateStaticAndDynamic:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=0,u=1,i=2},45794,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"serverActionReducer",{enumerable:!0,get:function(){return M}});let a=e.r(32120),l=e.r(92245),u=e.r(21768),i=e.r(92838),o=e.r(35326),c=e.r(88540),s=e.r(27801),f=e.r(51191),d=e.r(84356),h=e.r(50590),p=e.r(24063),y=e.r(87250),_=e.r(52817),g=e.r(39747),E=e.r(20896),v=e.r(77709),R=e.r(43369),m=e.r(32992),P=e.r(63416),S=e.r(60355),b=e.r(96167),T=e.r(39146),O=e.r(57630),A=e.r(95871),w=e.r(87288),N=e.r(79027),C=o.createFromFetch;async function j(e,t,{actionId:r,actionArgs:c}){let f,d,p,y,_=(0,o.createTemporaryReferenceSet)(),E=(0,g.extractInfoFromServerReferenceId)(r),v=(0,g.omitUnusedArgs)(c,E),S=await (0,o.encodeReply)(v,{temporaryReferences:_}),b={Accept:u.RSC_CONTENT_TYPE_HEADER,[u.ACTION_HEADER]:r,[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,h.prepareFlightRouterStateForRequest)(e.tree)},O=(0,R.getDeploymentId)();O&&(b["x-deployment-id"]=O),t&&(b[u.NEXT_URL]=t);let A=await fetch(e.canonicalUrl,{method:"POST",headers:b,body:S});if("1"===A.headers.get(u.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new i.UnrecognizedActionError(`Server Action "${r}" was not found on the server. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let N=A.headers.get("x-action-redirect"),[M,D]=N?.split(";")||[];switch(D){case"push":f="push";break;case"replace":f="replace";break;default:f=void 0}let I=!!A.headers.get(u.NEXT_IS_PRERENDER_HEADER),F=T.ActionDidNotRevalidate;try{let e=A.headers.get("x-action-revalidated");if(e){let t=JSON.parse(e);(t===T.ActionDidRevalidateStaticAndDynamic||t===T.ActionDidRevalidateDynamicOnly)&&(F=t)}}catch{}let U=M?(0,s.assignLocation)(M,new URL(e.canonicalUrl,window.location.href)):void 0,x=A.headers.get("content-type"),L=!!(x&&x.startsWith(u.RSC_CONTENT_TYPE_HEADER));if(!L&&!U)throw Object.defineProperty(Error(A.status>=400&&"text/plain"===x?await A.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let k=!1;if(L){let e=U?(0,w.processFetch)(A).then(({response:e})=>e):Promise.resolve(A),t=await C(e,{callServer:a.callServer,findSourceMapURL:l.findSourceMapURL,temporaryReferences:_,debugChannel:n&&n(b)});d=U?void 0:t.a,k=t.i;let r=A.headers.get(P.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;if(void 0!==r&&r!==(0,m.getNavigationBuildId)());else{let e=(0,h.normalizeFlightData)(t.f);""!==e&&(p=e,y=t.q)}}else d=void 0,p=void 0,y=void 0;return{actionResult:d,actionFlightData:p,actionFlightDataRenderedSearch:y,redirectLocation:U,redirectType:f,revalidationKind:F,isPrerender:I,couldBeIntercepted:k}}function M(e,t){let{resolve:r,reject:n}=t,a=(e.previousNextUrl||e.nextUrl)&&(0,d.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null;return j(e,a,t).then(async({revalidationKind:l,actionResult:u,actionFlightData:i,actionFlightDataRenderedSearch:o,redirectLocation:s,redirectType:d,isPrerender:h,couldBeIntercepted:p})=>{l!==T.ActionDidNotRevalidate&&((0,N.invalidateBfCache)(),t.didRevalidate=!0,l===T.ActionDidRevalidateStaticAndDynamic&&(0,E.invalidateEntirePrefetchCache)(a,e.tree),(0,v.startRevalidationCooldown)());let g=d||"push";if(void 0!==s)if((0,O.isExternalURL)(s))return n(D(s.href,g)),(0,S.completeHardNavigation)(e,s,g);else{let e=(0,f.createHrefFromUrl)(s,!1);n(D((0,_.hasBasePath)(e)?(0,y.removeBasePath)(e):e,g))}else r(u);if(void 0===s&&l===T.ActionDidNotRevalidate&&void 0===i)return e;if(void 0===i&&void 0!==s)return(0,S.completeHardNavigation)(e,s,g);if("string"==typeof i)return(0,S.completeHardNavigation)(e,new URL(i,location.origin),g);let R=new URL(e.canonicalUrl,location.origin),m=e.renderedSearch,P=void 0!==s?s:R,w=e.tree,C=c.ScrollBehavior.Default,j=l===T.ActionDidNotRevalidate?A.FreshnessPolicy.Default:A.FreshnessPolicy.RefreshAll;if(void 0!==i&&void 0!==o){let t=(0,f.createHrefFromUrl)(P),r=Date.now(),n=(0,S.convertServerPatchToFullTree)(r,w,i,o,N.UnknownDynamicStaleTime),l=n.metadataVaryPath;return null!==l&&(0,b.discoverKnownRoute)(r,P.pathname,a,null,n.routeTree,l,p,t,h,!1),(0,S.navigateToKnownRoute)(r,e,P,t,n,R,m,e.cache,w,j,a,C,g,null,null)}return(0,S.navigate)(e,P,R,m,e.cache,w,a,j,C,g)},t=>(n(t),e))}function D(e,t){let r=(0,p.getRedirectError)(e,t);return r.handled=!0,r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},4924,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"reducer",{enumerable:!0,get:function(){return s}});let n=e.r(88540),a=e.r(54069),l=e.r(91668),u=e.r(73790),i=e.r(69845),o=e.r(86720),c=e.r(45794),s="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"prefetch",{enumerable:!0,get:function(){return i}});let n=e.r(57630),a=e.r(77048),l=e.r(77709),u=e.r(9396);function i(e,t,r,i,o){let c=(0,n.createPrefetchURL)(e);if(null===c)return;let s=(0,a.createCacheKey)(c.href,t);(0,l.schedulePrefetchTask)(s,r,i,u.PrefetchPriority.Default,o)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},99781,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createMutableActionQueue:function(){return v},dispatchNavigateAction:function(){return P},dispatchTraverseAction:function(){return S},getCurrentAppRouterState:function(){return R},publicAppRouterInstance:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(88540),u=e.r(4924),i=e.r(71645),o=e.r(64245),c=e.r(9396),s=e.r(1411);e.r(60355);let f=e.r(41538);e.r(96167),e.r(95871);let d=e.r(5550),h=e.r(57630),p=e.r(91949),y=e.r(48277);function _(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&g({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:l.ACTION_REFRESH},t))}async function g({actionQueue:e,action:t,setState:r}){let n=e.state;e.pending=t;let a=t.payload,u=e.action(n,a);function i(n){if(t.discarded){t.payload.type===l.ACTION_SERVER_ACTION&&t.payload.didRevalidate&&(e.needsRefresh=!0),_(e,r);return}e.state=n,_(e,r),t.resolve(n)}(0,o.isThenable)(u)?u.then(i,n=>{_(e,r),t.reject(n)}):i(u)}let E=null;function v(e,t){let r={state:e,dispatch:(e,t)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==l.ACTION_RESTORE){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,i.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,g({actionQueue:e,action:a,setState:r})):t.type===l.ACTION_NAVIGATE||t.type===l.ACTION_RESTORE?(e.pending.discarded=!0,a.next=e.pending.next,g({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(r,e,t),action:async(e,t)=>(0,u.reducer)(e,t),pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};if("u">typeof window){if(null!==E)throw Object.defineProperty(Error("Internal Next.js Error: createMutableActionQueue was called more than once"),"__NEXT_ERROR_CODE",{value:"E624",enumerable:!1,configurable:!0});E=r}return r}function R(){return null!==E?E.state:null}function m(){return null!==E?E.onRouterTransitionStart:null}function P(e,t,r,n,a){if(a)for(let e of a)(0,i.addTransitionType)(e);let u=new URL((0,d.addBasePath)(e),location.href);(0,p.setLinkForCurrentNavigation)(n);let o=m();null!==o&&o(e,t),(0,f.dispatchAppRouterAction)({type:l.ACTION_NAVIGATE,url:u,isExternalUrl:(0,h.isExternalURL)(u),locationSearch:location.search,scrollBehavior:r,navigateType:t})}function S(e,t){let r=m();null!==r&&r(e,"traverse"),(0,f.dispatchAppRouterAction)({type:l.ACTION_RESTORE,url:new URL(e),historyState:t})}let b={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let r;if((0,y.isJavaScriptURLString)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});let n=function(){if(null===E)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});return E}();switch(t?.kind??l.PrefetchKind.AUTO){case l.PrefetchKind.AUTO:r=c.FetchStrategy.PPR;break;case l.PrefetchKind.FULL:r=c.FetchStrategy.Full;break;default:r=c.FetchStrategy.PPR}(0,s.prefetch)(e,n.state.nextUrl,n.state.tree,r,t?.onInvalidate??null)},replace:(e,t)=>{if((0,y.isJavaScriptURLString)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,i.startTransition)(()=>{P(e,"replace",t?.scroll===!1?l.ScrollBehavior.NoScroll:l.ScrollBehavior.Default,null,t?.transitionTypes)})},push:(e,t)=>{if((0,y.isJavaScriptURLString)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,i.startTransition)(()=>{P(e,"push",t?.scroll===!1?l.ScrollBehavior.NoScroll:l.ScrollBehavior.Default,null,t?.transitionTypes)})},refresh:()=>{(0,i.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:l.ACTION_REFRESH})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};"u">typeof window&&window.next&&(window.next.router=b),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/15p8tu-h65hwr.js b/build/.next/static/chunks/15p8tu-h65hwr.js new file mode 100644 index 0000000..8117d68 --- /dev/null +++ b/build/.next/static/chunks/15p8tu-h65hwr.js @@ -0,0 +1,38 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31067,e=>{"use strict";function t(){return(t=Object.assign.bind()).apply(null,arguments)}e.s(["default",()=>t])},60099,e=>{"use strict";let t,r;var n=e.i(31067),i=e.i(71645),o=e.i(88014),l=e.i(90072),a=e.i(28600),s=e.i(25234);let c=new l.Vector3,u=new l.Vector3,d=new l.Vector3,m=new l.Vector2;function f(e,t,r){let n=c.setFromMatrixPosition(e.matrixWorld);n.project(t);let i=r.width/2,o=r.height/2;return[n.x*i+i,-(n.y*o)+o]}let h=e=>1e-10>Math.abs(e)?0:e;function p(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=h(t[r]*e.elements[r])+(15!==r?",":")");return r+n}let x=(t=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>p(e,t)),v=(r=e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1],(e,t)=>p(e,r(t),"translate(-50%,-50%)")),y=i.forwardRef(({children:e,eps:t=.001,style:r,className:p,prepend:y,center:g,fullscreen:M,portal:P,distanceFactor:b,sprite:w=!1,transform:E=!1,occlude:W,onOcclude:S,castShadow:$,receiveShadow:R,material:T,geometry:z,zIndexRange:F=[0x1000037,0],calculatePosition:C=f,as:j="div",wrapperClass:A,pointerEvents:I="auto",...H},O)=>{let{gl:V,camera:k,scene:N,size:L,raycaster:B,events:D,viewport:K}=(0,a.useThree)(),[U]=i.useState(()=>document.createElement(j)),_=i.useRef(null),G=i.useRef(null),Z=i.useRef(0),q=i.useRef([0,0]),J=i.useRef(null),Q=i.useRef(null),X=(null==P?void 0:P.current)||D.connected||V.domElement.parentNode,Y=i.useRef(null),ee=i.useRef(!1),et=i.useMemo(()=>{var e;return W&&"blending"!==W||Array.isArray(W)&&W.length&&(e=W[0])&&"object"==typeof e&&"current"in e},[W]);i.useLayoutEffect(()=>{let e=V.domElement;W&&"blending"===W?(e.style.zIndex=`${Math.floor(F[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[W]),i.useLayoutEffect(()=>{if(G.current){let e=_.current=o.createRoot(U);if(N.updateMatrixWorld(),E)U.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let e=C(G.current,k,L);U.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return X&&(y?X.prepend(U):X.appendChild(U)),()=>{X&&X.removeChild(U),e.unmount()}}},[X,E]),i.useLayoutEffect(()=>{A&&(U.className=A)},[A]);let er=i.useMemo(()=>E?{position:"absolute",top:0,left:0,width:L.width,height:L.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:g?"translate3d(-50%,-50%,0)":"none",...M&&{top:-L.height/2,left:-L.width/2,width:L.width,height:L.height},...r},[r,g,M,L,E]),en=i.useMemo(()=>({position:"absolute",pointerEvents:I}),[I]);i.useLayoutEffect(()=>{var t,n;ee.current=!1,E?null==(t=_.current)||t.render(i.createElement("div",{ref:J,style:er},i.createElement("div",{ref:Q,style:en},i.createElement("div",{ref:O,className:p,style:r,children:e})))):null==(n=_.current)||n.render(i.createElement("div",{ref:O,style:er,className:p,children:e}))});let ei=i.useRef(!0);(0,s.useFrame)(e=>{if(G.current){k.updateMatrixWorld(),G.current.updateWorldMatrix(!0,!1);let e=E?q.current:C(G.current,k,L);if(E||Math.abs(Z.current-k.zoom)>t||Math.abs(q.current[0]-e[0])>t||Math.abs(q.current[1]-e[1])>t){var r;let t,n,i,o,a=(r=G.current,t=c.setFromMatrixPosition(r.matrixWorld),n=u.setFromMatrixPosition(k.matrixWorld),i=t.sub(n),o=k.getWorldDirection(d),i.angleTo(o)>Math.PI/2),s=!1;et&&(Array.isArray(W)?s=W.map(e=>e.current):"blending"!==W&&(s=[N]));let f=ei.current;s?ei.current=function(e,t,r,n){let i=c.setFromMatrixPosition(e.matrixWorld),o=i.clone();o.project(t),m.set(o.x,o.y),r.setFromCamera(m,t);let l=r.intersectObjects(n,!0);if(l.length){let e=l[0].distance;return i.distanceTo(r.ray.origin)({vertexShader:E?void 0:` + /* + This shader is from the THREE's SpriteMaterial. + We need to turn the backing plane into a Sprite + (make it always face the camera) if "transfrom" + is false. + */ + #include + + void main() { + vec2 center = vec2(0., 1.); + float rotation = 0.0; + + // This is somewhat arbitrary, but it seems to work well + // Need to figure out how to derive this dynamically if it even matters + float size = 0.03; + + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + + gl_Position = projectionMatrix * mvPosition; + } + `,fragmentShader:` + void main() { + gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); + } + `}),[E]);return i.createElement("group",(0,n.default)({},H,{ref:G}),W&&!et&&i.createElement("mesh",{castShadow:$,receiveShadow:R,ref:Y},z||i.createElement("planeGeometry",null),T||i.createElement("shaderMaterial",{side:l.DoubleSide,vertexShader:eo.vertexShader,fragmentShader:eo.fragmentShader})))});e.s(["Html",0,y])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/16tb205t0~jhb.js b/build/.next/static/chunks/16tb205t0~jhb.js new file mode 100644 index 0000000..78aa96c --- /dev/null +++ b/build/.next/static/chunks/16tb205t0~jhb.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,23096,e=>{"use strict";var t=e.i(43476),a=e.i(71645),r=e.i(22016);let i=[{slug:"how-ai-is-transforming-last-mile-ev-delivery",title:"How Better Planning Improves Last-Mile EV Delivery",excerpt:"A practical look at how EV fleets can plan routes, manage charging, and keep delivery promises without adding unnecessary vehicles.",category:"Technology",image:"/images/blog-post-pic-17.webp",date:"2025-10-02",intro:"The last mile is already difficult to plan. With electric vehicles, the team also has to think about battery range, charging time, rider load, traffic, and delivery windows. Good planning turns those moving parts into a workable dispatch plan.",content:[{type:"paragraph",text:"For a long time, last-mile planning depended on dispatchers, spreadsheets, and local experience. That experience still matters. The problem is that it gets stretched thin when order volume rises and the fleet includes EVs."},{type:"heading",level:2,text:"The shift from fixed rules to daily planning"},{type:"paragraph",text:"A fixed-zone plan may look clean in the morning, but the road rarely follows the plan. A rider may get delayed near Hitec City, a gated community may hold a vehicle for ten extra minutes, or a battery may drain faster because the load is heavier than usual."},{type:"list",items:["Order volumes by area, time slot, and customer type","Travel times based on the city's actual traffic patterns","Battery use by vehicle type, rider load, and route length","Feedback from completed deliveries, failed attempts, and late arrivals"]},{type:"heading",level:3,text:"Adjusting during the day"},{type:"paragraph",text:"The first plan is only the starting point. By 11 a.m., traffic may change, a high-priority order may arrive, or one vehicle may return with less charge than expected. The dispatch team needs a way to adjust without rebuilding the whole day by hand."},{type:"paragraph",text:"During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, the hub reduced missed delivery windows and improved on-time performance."},{type:"image",src:"/images/ev-paradox.webp",alt:"Electric delivery vehicle routing visualisation",caption:"EV route plans need to account for range, load, traffic, and charging time before riders leave the hub."},{type:"quote",text:"With EVs, a route is only useful if the vehicle can finish it and still return safely.",cite:"Doormile Operations"},{type:"heading",level:2,text:"What this means for operators"},{type:"paragraph",text:"For a fleet manager, this is not about fancy software. It is about fewer emergency calls, fewer mid-route swaps, and fewer customers asking why their delivery missed the promised window."},{type:"list",ordered:!0,items:["Record delivery times, failed attempts, traffic delays, and charging cycles.","Build travel-time estimates from the areas your riders actually serve.","Check every route against battery capacity before dispatch.","Replan when traffic, orders, or vehicle availability changes."]},{type:"paragraph",text:"The fleets that improve fastest are usually not the ones adding vehicles first. They are the ones removing wasted distance, planning charging properly, and giving riders routes they can complete on time."}]},{slug:"42-less-distance-insights-from-our-hyderabad-hub",title:"42% Less Distance: Insights from Our Hyderabad Hub",excerpt:"A practical look at how one Hyderabad hub reduced distance, used fewer vehicles, and protected delivery windows with better route planning.",category:"Case Study",image:"/images/blog-post-pic-15.webp",date:"2025-09-18",intro:"Numbers settle arguments. At our Hyderabad hub, the goal was simple: reduce avoidable distance without missing customer commitments. The result was a 42% reduction in total distance travelled.",content:[{type:"paragraph",text:"Hyderabad is not an easy city for delivery planning. Dense commercial areas, fast-growing suburbs, flyover work, narrow service lanes, apartment security checks, and sudden traffic build-up can all change the day."},{type:"heading",level:2,text:"The baseline"},{type:"paragraph",text:"Before MileTruth, the hub planned routes in the usual way. Zones were drawn from experience, dispatchers sequenced stops manually, and riders adjusted on the road when something changed."},{type:"paragraph",text:"That process worked, but it carried hidden costs. Two riders might cross the same area in the same hour. A vehicle might take a longer loop to avoid one late stop. A dispatcher might hold back an order because the best vehicle was not obvious in the moment."},{type:"list",items:["Zone-based allocation that missed nearby cross-zone drops","Manual stop sequencing during busy dispatch windows","ETAs checked after routing instead of before dispatch","Traffic and delay handling that depended on phone calls from riders"]},{type:"heading",level:3,text:"What changed"},{type:"paragraph",text:"The main change was treating the day's orders as one connected plan instead of separate zone lists. The route plan considered distance, rider capacity, delivery windows, traffic, and vehicle availability together."},{type:"paragraph",text:"During peak traffic hours in Hyderabad, some vehicles were arriving 20 to 30 minutes later than planned. By adjusting routes based on live traffic and battery levels, we reduced missed delivery windows and improved on-time performance."},{type:"image",src:"/images/last-mile-approach.webp",alt:"Hyderabad delivery hub routing analysis",caption:"Planning the day's deliveries together removed repeated cross-town travel."},{type:"heading",level:2,text:"The results"},{type:"list",items:["42% reduction in total distance travelled across the hub","37% fewer vehicles required for the same delivery volume","No SLA misses during the measured deployment window","Lower fuel use and fewer unnecessary kilometres per parcel"]},{type:"quote",text:"The improvement did not come from asking riders to work harder. It came from giving the team a better route plan before the vehicles left.",cite:"Hyderabad Hub Operations"},{type:"heading",level:3,text:"Why this applies beyond one hub"},{type:"paragraph",text:"The Hyderabad result was not a one-city exception. Most hubs deal with the same issues: overlapping routes, conservative sequencing, traffic surprises, charging constraints, and last-minute order changes."},{type:"paragraph",text:"A 42% cut in distance changes the cost of running the operation. It also gives dispatchers more breathing room when the day gets messy."}]},{slug:"miletruth-ai-10-stages-to-smarter-dispatch",title:"MileTruth™: 10 Stages to Smarter Dispatch",excerpt:"From order intake to final route output, here is how a dispatch plan is checked before riders leave the hub.",category:"MileTruth",image:"/images/blog-post-pic-31.webp",date:"2025-09-05",intro:"Behind every Doormile dispatch is a step-by-step route planning process. Each stage removes a common source of error before the plan reaches the rider.",content:[{type:"paragraph",text:"A dispatch plan has to be fast, but it also has to be usable. A quick route that ignores a bad address, low battery, or tight delivery window creates problems later in the day."},{type:"heading",level:2,text:"The ten stages"},{type:"list",ordered:!0,items:["Order intake: new orders, rider availability, and vehicle status are collected.","Address check: delivery points, time windows, and service notes are verified.","Stop planning: each stop gets an expected service time and delivery priority.","Travel-time check: routes are compared against time-of-day traffic.","Constraint check: capacity, shift time, customer windows, and range are applied.","Route options: several possible plans are built for the same order set.","Plan selection: the lowest-cost workable route plan is selected.","Battery check: EV routes are checked against real charge capacity.","ETA check: promised delivery times are verified before dispatch.","Dispatch output: the final route is sent to the operations team."]},{type:"heading",level:3,text:"Why staging matters"},{type:"paragraph",text:"When everything is checked in one step, small errors slip through. A wrong pin, a missing apartment note, or a low battery warning can reach the rider and become a customer issue."},{type:"image",src:"/images/blog-post-pic-31.webp",alt:"MileTruth routing pipeline diagram",caption:"A staged dispatch process catches address, range, and ETA issues before riders leave."},{type:"quote",text:"Each stage should remove one kind of mistake. By dispatch time, the route should already be practical.",cite:"MileTruth Engineering"},{type:"heading",level:2,text:"Comparing route options"},{type:"paragraph",text:"The useful part is not only building one route. It is comparing a few workable route options before choosing the plan. One option may save distance, another may protect a tight delivery window, and another may keep an EV closer to a charger."},{type:"list",items:["Several route plans checked before dispatch","Distance, time windows, capacity, and range considered together","Range and ETA checked before the route reaches the rider","Fast output that still leaves room for dispatcher review"]},{type:"paragraph",text:"The goal is simple: give the dispatch team a route plan they can trust before the first vehicle leaves the hub."}]},{slug:"the-ev-paradox-solving-range-anxiety-for-urban-fleets",title:"The EV Paradox: Solving Range Anxiety for Urban Fleets",excerpt:"Electric vehicles lower running costs, but battery range changes how routes must be planned before dispatch.",category:"EV Fleet",image:"/images/ev-paradox.webp",date:"2025-08-21",intro:"Electric fleets can lower running costs, but range becomes a daily planning constraint. The route has to match the battery, the load, the traffic, and the return plan."},{slug:"why-mathematical-precision-beats-heuristics-in-routing",title:"Why Mathematical Precision Beats Heuristics in Routing",excerpt:"Fixed routing rules are easy to start with, but they often miss better stop sequences as order volume grows.",category:"Technology",image:"/images/blog-post-pic-14.webp",date:"2025-08-07",intro:"Simple routing rules are fast to set up, but they can quietly add distance every day. Better planning compares more route options before dispatch."},{slug:"fleet-reduction-without-compromising-delivery-volume",title:"Fleet Reduction Without Compromising Delivery Volume",excerpt:"Handling the same order volume with fewer vehicles starts by removing avoidable kilometres and overlapping routes.",category:"Fleet Management",image:"/images/blog-post-pic-8.webp",date:"2025-07-24",intro:"Cutting vehicles usually means cutting capacity unless the removed kilometres were never needed. Better route planning turns wasted distance into operating headroom."},{slug:"building-a-greener-city-the-future-of-urban-logistics",title:"Building a Greener City: The Future of Urban Logistics",excerpt:"Cities are asking for cleaner delivery. The practical challenge is planning EV routes that can meet customer windows without wasting charge.",category:"Sustainability",image:"/images/blog-post-pic-6.webp",date:"2025-07-10",intro:"Cleaner delivery is becoming an operating requirement, not just a brand message. It depends on EV adoption and route plans that make those vehicles practical every day."},{slug:"how-doormile-maintains-99-9-sla-compliance-at-scale",title:"How Doormile Maintains 99.9% SLA Compliance at Scale",excerpt:"High SLA performance comes from checking ETAs before dispatch, reacting early to delays, and keeping customer commitments visible throughout the day.",category:"Operations",image:"/images/last-mile-approach.webp",date:"2025-06-26",intro:"Strong SLA performance is not luck. It comes from planning the day so late deliveries are the exception, not the expected risk."},{slug:"battery-simulation-the-secret-to-ev-route-pre-validation",title:"Battery Simulation: The Secret to EV Route Pre-Validation",excerpt:"Before a rider leaves the hub, every EV route should be checked against real charge capacity and the expected return plan.",category:"EV Fleet",image:"/images/blog-post-pic-3.webp",date:"2025-06-12",intro:"A stranded EV is not just a late delivery. It means a vehicle is out of service, a customer is waiting, and the hub has to arrange recovery. Range checks need to happen before dispatch."}].map(e=>{var t;return{slug:e.slug,title:e.title,excerpt:e.excerpt,category:e.category,image:e.image,date:e.date,author:"Doormile Team",intro:e.intro,content:e.content??(t={title:e.title,category:e.category,image:e.image},[{type:"paragraph",text:`In last-mile logistics, a missed SLA is rarely caused by one big failure. It usually comes from small delays adding up across a route. ${t.title} looks at how delivery teams can spot those delays early and plan around them before vehicles leave the hub.`},{type:"heading",level:2,text:"Why this matters for fleet teams"},{type:"paragraph",text:"Every extra kilometre costs money. It uses fuel or charge, adds rider time, wears down vehicles, and increases the chance of a late delivery. When routes are built from fixed zones or old habits, those costs repeat every day."},{type:"list",items:["Fewer vehicles needed for the same number of drops","Lower cost per drop through better stop sequencing","ETAs that match traffic, distance, and delivery windows","Less fuel or charge used per completed order"]},{type:"heading",level:3,text:"From orders to dispatch"},{type:"paragraph",text:"A good dispatch plan starts with the basics: order locations, promised delivery windows, rider capacity, vehicle range, and known traffic trouble spots. MileTruth™ checks those inputs before dispatch so the team is not fixing avoidable mistakes on the road."},{type:"image",src:t.image,alt:t.title,caption:`${t.category}: route planning decisions made before dispatch.`},{type:"quote",text:"A route should be checked before the rider leaves, not explained after the customer calls.",cite:"Doormile Operations"},{type:"heading",level:2,text:"Putting it into practice"},{type:"paragraph",text:"The best improvements usually start with simple measurements. Track distance per route, failed delivery windows, rider idle time, and orders moved between vehicles after dispatch. Those numbers show where the operation is leaking time."},{type:"list",ordered:!0,items:["Benchmark today's distance, fleet size, and on-time rate.","Include vehicle capacity, delivery windows, rider shifts, and battery charge.","Check routes against traffic and customer commitments before dispatch.","Compare the next dispatch cycle against the old plan."]},{type:"paragraph",text:"Better routing is not about pushing riders harder. It is about giving them a plan that already accounts for the real day ahead."}])}});e.s(["default",0,function(){let[e,s]=(0,a.useState)(""),[o,n]=(0,a.useState)(!1),l=(0,a.useRef)(null),d=(0,a.useMemo)(()=>{let t=e.trim().toLowerCase();return t?i.filter(e=>e.title.toLowerCase().includes(t)||e.category.toLowerCase().includes(t)||e.excerpt.toLowerCase().includes(t)).slice(0,6):[]},[e]);(0,a.useEffect)(()=>{function e(e){l.current&&!l.current.contains(e.target)&&n(!1)}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let c=o&&e.trim().length>0;return(0,t.jsxs)("div",{className:"dm-blog-search",ref:l,children:[(0,t.jsxs)("form",{role:"search",className:"dm-blog-search-form",onSubmit:e=>e.preventDefault(),children:[(0,t.jsx)("label",{htmlFor:"dm-blog-search-input",className:"dm-sr-only",children:"Search articles"}),(0,t.jsx)("input",{id:"dm-blog-search-input",type:"search",className:"dm-blog-search-input",placeholder:"Search articles…",value:e,autoComplete:"off",onChange:e=>{s(e.target.value),n(!0)},onFocus:()=>n(!0),"aria-controls":"dm-blog-search-results"}),(0,t.jsx)("span",{className:"dm-blog-search-icon","aria-hidden":"true",children:(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,t.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]})})]}),c&&(0,t.jsx)("div",{id:"dm-blog-search-results",className:"dm-blog-search-results",role:"listbox",children:0===d.length?(0,t.jsxs)("p",{className:"dm-blog-search-empty",children:["No articles match “",e.trim(),"”."]}):(0,t.jsx)("ul",{children:d.map(e=>(0,t.jsx)("li",{role:"option","aria-selected":"false",children:(0,t.jsxs)(r.default,{href:`/blog/${e.slug}`,className:"dm-blog-search-result",onClick:()=>n(!1),children:[(0,t.jsx)("span",{className:"dm-blog-search-result-cat",children:e.category}),(0,t.jsx)("span",{className:"dm-blog-search-result-title",children:e.title})]})},e.slug))})})]})}],23096)}]); \ No newline at end of file diff --git a/build/.next/static/chunks/17iyy9kp8dsf4.js b/build/.next/static/chunks/17iyy9kp8dsf4.js new file mode 100644 index 0000000..b7239fb --- /dev/null +++ b/build/.next/static/chunks/17iyy9kp8dsf4.js @@ -0,0 +1,348 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5074,e=>{"use strict";var t=e.i(43476),i=e.i(71645);let n=[[[.04,.2],[.1,.12],[.18,.1],[.24,.13],[.29,.12],[.3,.18],[.27,.22],[.26,.28],[.22,.3],[.2,.38],[.17,.44],[.15,.4],[.16,.32],[.12,.3],[.09,.26],[.06,.24]],[[.21,.5],[.27,.48],[.31,.52],[.31,.6],[.29,.66],[.27,.74],[.24,.82],[.22,.8],[.22,.7],[.205,.62],[.2,.55]],[[.45,.16],[.5,.13],[.55,.15],[.57,.19],[.55,.24],[.5,.27],[.47,.25],[.455,.2]],[[.46,.34],[.53,.32],[.58,.36],[.585,.44],[.56,.52],[.53,.6],[.5,.66],[.47,.62],[.46,.52],[.45,.44],[.45,.38]],[[.56,.14],[.64,.1],[.74,.1],[.84,.14],[.9,.2],[.92,.26],[.86,.3],[.8,.3],[.74,.34],[.7,.34],[.66,.3],[.6,.3],[.575,.24],[.565,.18]],[[.81,.66],[.87,.64],[.92,.68],[.92,.74],[.86,.77],[.81,.74],[.8,.7]]],a=[[.115,.3],[.265,.255],[.285,.66],[.475,.185],[.605,.345],[.655,.4],[.745,.5],[.815,.275],[.865,.715]],o=[[0,1],[1,3],[3,4],[4,5],[5,6],[6,7],[7,8],[1,2],[3,7],[0,7]];e.s(["default",0,function({accent:e="#ef4444"}){let r=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let[t,i,s]=function(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return[239,68,68];let i=parseInt(t[1],16);return[i>>16&255,i>>8&255,255&i]}(e),l=e=>`rgba(${t},${i},${s},${e})`,d=`rgb(${t},${i},${s})`,c=r.current,m=c?.parentElement;if(!c||!m)return;let p=c.getContext("2d");if(!p)return;let h=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches,g=0,x=0,u=[],b=0,f=0,y=()=>{let e=m.getBoundingClientRect();g=Math.max(1,e.width),x=Math.max(1,e.height);let t=Math.min(window.devicePixelRatio||1,2);c.width=Math.round(g*t),c.height=Math.round(x*t),c.style.width=g+"px",c.style.height=x+"px",p.setTransform(t,0,0,t,0,0),(()=>{u=[];let e=Math.max(11,Math.min(17,g/70));for(let t=e/2;tt!=d>t&&e<(l-r)*(t-s)/(d-s)+r&&(n=!n)}return n}(e,a,o)){u.push({x:t,y:i});break}}})()},w=(e,t)=>({x:(e.x+t.x)/2,y:(e.y+t.y)/2-.28*Math.hypot(t.x-e.x,t.y-e.y)}),v=(e,t,i,n)=>{let a=1-n;return{x:a*a*e.x+2*a*n*t.x+n*n*i.x,y:a*a*e.y+2*a*n*t.y+n*n*i.y}},k=e=>{for(let e of(p.clearRect(0,0,g,x),p.fillStyle="rgba(120,122,130,0.55)",u))p.beginPath(),p.arc(e.x,e.y,1.15,0,2*Math.PI),p.fill();let t=a.map(([e,t])=>({x:e*g,y:t*x}));for(let[e,i]of(p.save(),p.setLineDash([4,7]),p.lineWidth=1,p.strokeStyle=l(.13),o)){let n=w(t[e],t[i]);p.beginPath(),p.moveTo(t[e].x,t[e].y),p.quadraticCurveTo(n.x,n.y,t[i].x,t[i].y),p.stroke()}p.restore(),p.save();for(let i=0;i{f||(f=e),k((e-f)/1e3),b=requestAnimationFrame(_)};y(),h?k(0):b=requestAnimationFrame(_);let j=new ResizeObserver(()=>{y(),h&&k(0)});return j.observe(m),()=>{cancelAnimationFrame(b),j.disconnect()}},[e]),(0,t.jsx)("canvas",{ref:r,className:"ind__map","aria-hidden":"true"})}])},89937,e=>{"use strict";var t=e.i(43476),i=e.i(71645),n=e.i(74080);e.s(["default",0,function(){(0,n.preload)("/images/home1-slide-1.webp",{as:"image"});let[e,a]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=setInterval(()=>{a(e=>+(0===e))},7e3);return()=>clearInterval(e)},[]);let o=e=>{a(e)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` + .howits-hero-custom-bg.elementor-repeater-item-3264830, + .howits-hero-custom-bg.elementor-repeater-item-6867061 { + background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.1)), url('/images/home1-slide-1.webp') !important; + background-position: center !important; + background-repeat: no-repeat !important; + background-size: cover !important; + } + + .howits-hero-custom-bg.elementor-repeater-item-6867061 { + background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.1)), url('/images/home1-slide-2.webp') !important; + background-position: center !important; + background-repeat: no-repeat !important; + background-size: cover !important; + } + + /* Center alignments for standard content slider elements */ + .elementor-element.elementor-element-6c7cbcb .slide-content { + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + align-items: center !important; + text-align: center !important; + width: 100% !important; + height: 100% !important; + padding: 0 !important; + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-6c7cbcb .slide-content-inner { + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + align-items: center !important; + text-align: center !important; + width: 100% !important; + max-width: 1000px !important; + margin: 0 auto !important; + /* Contain the slider theme's inherited 20px padding (content-box) so + width:100% + padding doesn't overflow the viewport and push the + heading off-center on mobile. */ + box-sizing: border-box !important; + } + + .elementor-element.elementor-element-6c7cbcb .content-slider-item-heading, + .elementor-element.elementor-element-6c7cbcb .content-slider-item-heading .heading-content { + text-align: center !important; + display: block !important; + width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + padding-left: 15px !important; + padding-right: 15px !important; + } + + .elementor-element.elementor-element-6c7cbcb .content-slider-item-text { + display: flex !important; + justify-content: center !important; + width: 100% !important; + margin-top: 23px !important; + } + + .elementor-element.elementor-element-6c7cbcb .text-content { + text-align: center !important; + max-width: 820px !important; + margin: 0 auto !important; + padding-left: 15px !important; + padding-right: 15px !important; + } + + /* Larger, more readable hero subtitle on large/4K screens */ + .elementor-element.elementor-element-6c7cbcb .content-slider-item-text p { + font-size: clamp(16px, 1.35vw, 23px) !important; + line-height: 1.65 !important; + } + + @media (min-width: 1025px) { + /* Match Home's hero frame so the floating navbar sits with the same + breathing space. Home (.elementor-61) frames the hero card at 20px; + this page falls through to the shared kit's 32px base. */ + .elementor-element.elementor-element-741f56c { + padding: 20px !important; + } + .elementor-element.elementor-element-6c7cbcb .owl-carousel.owl-theme .content-item { + height: 800px !important; + min-height: 800px !important; + } + } + + @media (max-width: 1024px) { + .elementor-element.elementor-element-741f56c { + width: 100% !important; + max-width: 100% !important; + margin-left: auto !important; + margin-right: auto !important; + --padding-top: 0px !important; + --padding-block-start: 0px !important; + padding: 0 10px 10px 10px !important; + overflow: hidden !important; + border-radius: 25px !important; + } + + /* The stage-outer carries an inline height:800px; collapse it to the + slide height so there is no dead empty space below the hero card. */ + .elementor-element.elementor-element-6c7cbcb .owl-stage-outer { + height: 620px !important; + } + + .elementor-element.elementor-element-6c7cbcb .owl-carousel.owl-theme .content-item { + width: 100% !important; + min-height: 620px !important; + height: 620px !important; + border-radius: 25px !important; + overflow: hidden !important; + } + + .elementor-element.elementor-element-6c7cbcb .slide-content { + width: 100% !important; + min-height: 620px !important; + padding-left: 0 !important; + padding-right: 0 !important; + box-sizing: border-box !important; + } + } + + @media (max-width: 767px) { + .elementor-element.elementor-element-741f56c { + width: 100% !important; + max-width: 100% !important; + --padding-top: 0px !important; + --padding-block-start: 0px !important; + padding: 0 10px 10px 10px !important; + border-radius: 22px !important; + } + + .elementor-element.elementor-element-6c7cbcb .owl-stage-outer { + height: 560px !important; + } + + .elementor-element.elementor-element-6c7cbcb .owl-carousel.owl-theme .content-item { + min-height: 560px !important; + height: 560px !important; + border-radius: 22px !important; + } + + .elementor-element.elementor-element-6c7cbcb .slide-content { + min-height: 560px !important; + padding-left: 0 !important; + padding-right: 0 !important; + } + + .elementor-element.elementor-element-6c7cbcb .content-slider-item-heading { + max-width: 100% !important; + font-size: clamp(38px, 11vw, 48px) !important; + line-height: 1.05 !important; + overflow-wrap: break-word !important; + padding-left: 15px !important; + padding-right: 15px !important; + } + + /* Pin the slide counter ("01/02") cleanly bottom-RIGHT — matching the + Home and How-It-Works heroes. site.css parks it ~80px in from the + right (looks left/centred), and the wide dot navigation eats the + right side, so hide the dots on mobile and right-align the counter. */ + .elementor .elementor-element.elementor-element-6c7cbcb .slider-footer { + text-align: right !important; + margin-bottom: 24px !important; + } + .elementor .elementor-element.elementor-element-6c7cbcb .slider-footer .slider-pagination { + justify-content: flex-end !important; + margin-left: 22px !important; + margin-right: 22px !important; + } + .elementor .elementor-element.elementor-element-6c7cbcb .owl-dots { + display: none !important; + } + /* Hide the prev/next arrows on mobile (they overlap the counter) — + slides still auto-rotate, matching the home hero. */ + .elementor .elementor-element.elementor-element-6c7cbcb .owl-nav { + display: none !important; + } + } + `}}),(0,t.jsx)("div",{className:"elementor-element elementor-element-741f56c e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent","data-id":"741f56c","data-element_type":"container","data-e-type":"container",children:(0,t.jsx)("div",{className:"elementor-element elementor-element-6c7cbcb elementor-widget elementor-widget-logico_content_slider","data-id":"6c7cbcb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_content_slider.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("div",{className:"logico-content-slider-widget",children:(0,t.jsx)("div",{className:"content-slider-wrapper",children:(0,t.jsx)("div",{className:"content-slider-container",children:(0,t.jsxs)("div",{className:"content-slider owl-carousel owl-theme nav-view-vertical nav-h-position-right nav-v-position-bottom owl-loaded owl-drag",children:[(0,t.jsx)("div",{className:"owl-stage-outer",style:{position:"relative",overflow:"hidden",height:"800px"},children:(0,t.jsxs)("div",{className:"owl-stage",style:{position:"relative",width:"100%",height:"100%"},children:[(0,t.jsx)("div",{className:`owl-item ${0===e?"active":""}`,style:{position:"relative",width:"100%",opacity:+(0===e),visibility:0===e?"visible":"hidden",transition:"opacity 0.8s ease-in-out, visibility 0.8s ease-in-out",zIndex:0===e?2:1},children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-3264830 slide-style-standard howits-hero-custom-bg",children:(0,t.jsx)("div",{className:"slide-content",children:(0,t.jsxs)("div",{className:"slide-content-inner",children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",children:(0,t.jsx)("span",{className:"heading-content",children:"Solutions for Every Industry"})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",children:(0,t.jsx)("div",{className:"text-content",children:(0,t.jsx)("p",{children:"Discover how Doormile's connected logistics platform serves diverse industries with tailored solutions."})})})]})})})}),(0,t.jsx)("div",{className:`owl-item ${1===e?"active":""}`,style:{position:"absolute",top:0,left:0,width:"100%",opacity:+(1===e),visibility:1===e?"visible":"hidden",transition:"opacity 0.8s ease-in-out, visibility 0.8s ease-in-out",zIndex:1===e?2:1},children:(0,t.jsx)("div",{className:"content-item slider-item elementor-repeater-item-6867061 slide-style-standard howits-hero-custom-bg",children:(0,t.jsx)("div",{className:"slide-content",children:(0,t.jsxs)("div",{className:"slide-content-inner",children:[(0,t.jsx)("h1",{className:"content-slider-item-heading logico-content-wrapper-1",children:(0,t.jsx)("span",{className:"heading-content",children:"One Platform. All Verticals"})}),(0,t.jsx)("div",{className:"content-slider-item-text logico-content-wrapper-2",children:(0,t.jsx)("div",{className:"text-content",children:(0,t.jsx)("p",{children:"Doormile adapts to the unique challenges of your vertical—not the other way around."})})})]})})})})]})}),(0,t.jsxs)("div",{className:"owl-nav",children:[(0,t.jsx)("button",{type:"button",className:"owl-next",onClick:()=>a(e=>+(0===e)),"aria-label":"Next",style:{cursor:"pointer",border:"none",outline:"none"}}),(0,t.jsx)("button",{type:"button",className:"owl-prev",onClick:()=>a(e=>+(0===e)),"aria-label":"Previous",style:{cursor:"pointer",border:"none",outline:"none"}})]}),(0,t.jsx)("div",{className:"slider-footer slider-footer-position-after slider-footer-width-full slider-footer-view-inside",children:(0,t.jsx)("div",{className:"slider-footer-content",children:(0,t.jsxs)("div",{className:"slider-pagination",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"10px"},children:[(0,t.jsxs)("div",{className:"slider-progress-wrapper",style:{marginRight:"35px",display:"flex",flexDirection:"column",alignItems:"flex-start"},children:[(0,t.jsxs)("div",{style:{fontSize:"16px",fontWeight:600,color:"#FFFFFF",marginBottom:"4px"},children:[(0,t.jsx)("span",{className:"slider-progress-current",children:0===e?"01":"02"})," / ",(0,t.jsx)("span",{className:"slider-progress-all",style:{opacity:.6},children:"02"})]}),(0,t.jsx)("div",{style:{width:"80px",height:"2px",background:"rgba(255, 255, 255, 0.2)",position:"relative",borderRadius:"1px",overflow:"hidden"},children:(0,t.jsx)("div",{style:{position:"absolute",left:0===e?"0":"50%",width:"50%",height:"100%",background:"#c01227",transition:"left 0.3s ease"}})})]}),(0,t.jsxs)("div",{className:"owl-dots owl-dots-6c7cbcb",style:{display:"none"},children:[(0,t.jsx)("button",{type:"button",role:"button",className:`owl-dot ${0===e?"active":""}`,onClick:()=>o(0),children:(0,t.jsx)("span",{})}),(0,t.jsx)("button",{type:"button",role:"button",className:`owl-dot ${1===e?"active":""}`,onClick:()=>o(1),children:(0,t.jsx)("span",{})})]})]})})})]})})})})})})})]})}])},40086,e=>{"use strict";var t=e.i(43476),i=e.i(71645),n=e.i(5074);let a=[{id:1,title:"FMCG",image:"/images/tab-pic-1-solution.webp",alt:"FMCG logistics",desc:"FMCG logistics demands speed, precision, and continuous fulfillment across high-volume delivery networks. Businesses must balance tight delivery timelines, inventory movement, and operational efficiency without compromising product availability.",ch:["Unpredictable demand spikes create delivery pressure and reduce operational efficiency during peak periods.","Fresh product expiry constraints require faster, precisely timed deliveries to maintain product quality.","Multi-stop route complexity increases travel time, operational costs, and delivery coordination challenges.","Inventory stockout risks increase when delivery delays disrupt fast-moving product distribution."],so:["AI demand forecasting adapts delivery plans instantly to real-time order demand.","Expiry-aware routing prioritises perishable goods for on-time freshness.","Smart multi-stop optimisation groups orders to cut cost and travel time.","Real-time inventory sync prevents stockouts and improves fulfilment accuracy."]},{id:2,title:"Pharma",image:"/images/tab-pic-2-solution.webp",alt:"Pharma logistics",desc:"Pharma logistics requires precision, compliance, and real-time monitoring so every shipment arrives safely and on time — from temperature-sensitive medicines to urgent emergency deliveries.",ch:["Cold chain integrity demands precise temperature control throughout transit.","Regulatory compliance must be tracked and documented on every delivery.","Critical delivery time windows require highly accurate scheduling.","Emergency shipments need instant dispatch and zero-delay execution."],so:["Cold chain monitoring with automatic re-routing keeps shipments in-spec.","Compliance engine with audit trails ensures full chain-of-custody visibility.","Precision scheduling locks in critical delivery windows reliably.","Priority dispatch queue fast-tracks urgent, life-critical shipments."]},{id:3,title:"Enterprise & B2B",image:"/images/tab-pic-3-solution.webp",alt:"Enterprise and B2B logistics",desc:"Enterprise and B2B logistics require coordination and reliability to manage high-value shipments at scale — with appointment scheduling, white-glove standards, and strict SLA commitments.",ch:["Appointment scheduling requires precise timing across many locations.","White-glove delivery standards demand premium handling and accuracy.","Multi-location routing complexity grows with large-scale operations.","Strict SLA commitments pressure teams to stay timely and error-free."],so:["Intelligent appointment engine streamlines and automates delivery slots.","White-glove workflow module enforces premium handling end to end.","Enterprise route planner coordinates efficient multi-location delivery.","SLA monitoring dashboard tracks commitments and flags risk in real time."]}];function o({sec:e}){let[a,r]=(0,i.useState)("ch"),s="ch"===a?e.ch:e.so;return(0,t.jsx)("section",{className:"istk","aria-label":`${e.title} solutions`,children:(0,t.jsxs)("div",{className:"istk__card",children:[(0,t.jsx)(n.default,{}),(0,t.jsxs)("div",{className:"istk__row",children:[(0,t.jsx)("div",{className:"istk__media",children:(0,t.jsx)("img",{className:"istk__img",src:e.image,alt:e.alt,decoding:"async",loading:"lazy"})}),(0,t.jsxs)("div",{className:"istk__content",children:[(0,t.jsx)("h3",{className:"istk__title",children:e.title}),(0,t.jsx)("p",{className:"istk__desc",children:e.desc}),(0,t.jsxs)("div",{className:"istk__tabs",role:"tablist","aria-label":"Challenges or Solutions",children:[(0,t.jsx)("button",{type:"button",role:"tab","aria-selected":"ch"===a,className:`istk__tab ${"ch"===a?"active":""}`,onClick:()=>r("ch"),children:"Challenges"}),(0,t.jsx)("button",{type:"button",role:"tab","aria-selected":"so"===a,className:`istk__tab ${"so"===a?"active":""}`,onClick:()=>r("so"),children:"Solutions"})]}),(0,t.jsx)("ul",{className:"istk__list",children:s.map((e,i)=>(0,t.jsx)("li",{style:{animationDelay:`${80*i}ms`},children:e},e))},a)]})]})]})})}let r=` +/* No outer frame — the cards float on the page background. */ +#ind-stack { background: transparent; } + +/* The kit-5 theme forces heading size/color on h3 via !important — re-assert. */ +#ind-stack .istk__title { + font-family: var(--font-manrope), 'Manrope', system-ui, sans-serif !important; + font-size: clamp(42px, 4.4vw, 62px) !important; + font-weight: 600 !important; + line-height: 1.04 !important; + letter-spacing: -0.02em !important; + color: #ffffff !important; + text-transform: none !important; + margin: 0 0 22px !important; +} + +#ind-stack .istk { + padding: 14px 20px; +} +#ind-stack .istk:first-child { padding-top: 24px; } +#ind-stack .istk:last-child { padding-bottom: 24px; } + +#ind-stack .istk__card { + position: relative; + overflow: hidden; + background: #0d0d0d; + border: 1px solid rgba(255,255,255,0.06); + border-radius: 40px; + padding: 44px; +} + +/* Procedurally-drawn dotted world map (continent dots + hub pulses + routes). + Vector canvas, so it never distorts on the card's aspect ratio the way a + stretched bitmap did. Faint gray dots read as a subtle backdrop on the dark card. */ +#ind-stack .ind__map { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + z-index: 0; + opacity: 0.7; + pointer-events: none; +} + +#ind-stack .istk__row { + position: relative; + z-index: 2; + display: flex; + flex-direction: row; + align-items: center; + gap: clamp(44px, 6vw, 104px); +} + +/* ---- Image — inset rounded, portrait, drives the card height ---- */ +#ind-stack .istk__media { + flex: 0 0 35%; + align-self: stretch; + min-height: 560px; +} +#ind-stack .istk__img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 26px; +} + +/* ---- Content ---- */ +#ind-stack .istk__content { + flex: 1; + min-width: 0; + max-width: 680px; +} +#ind-stack .istk__desc { + font-size: clamp(16px, 1.25vw, 20px); + font-weight: 400; + line-height: 1.62; + color: rgba(255,255,255,0.8); + margin: 0 0 30px; +} + +/* Tabs — pills above a full-width underline rule */ +#ind-stack .istk__tabs { + display: flex; + gap: 10px; + padding-bottom: 16px; + margin-bottom: 26px; + border-bottom: 1px solid rgba(255,255,255,0.2); +} +#ind-stack .istk__tab { + appearance: none; + border: none; + cursor: pointer; + font-size: 14px; + font-weight: 700; + letter-spacing: 0.05em; + text-transform: uppercase; + padding: 13px 30px; + border-radius: 9px; + background: #f3dede; + color: #555; + transition: background-color 0.25s ease, color 0.25s ease; +} +#ind-stack .istk__tab:hover { background: #ecd2d2; } +#ind-stack .istk__tab.active { + background: #dc2626; + color: #fff; + box-shadow: 0 8px 22px -10px rgba(220,38,38,0.8); +} + +/* Bullets — round red dots, full-sentence items */ +#ind-stack .istk__list { + list-style: none; + margin: 0; + padding: 0; +} +#ind-stack .istk__list li { + position: relative; + padding-left: 28px; + margin-bottom: 22px; + font-size: clamp(15px, 1.15vw, 18px); + font-weight: 400; + line-height: 1.55; + color: rgba(255,255,255,0.85); + animation: istkSlideIn 0.4s ease both; +} +#ind-stack .istk__list li:last-child { margin-bottom: 0; } +#ind-stack .istk__list li::before { + content: ''; + position: absolute; + left: 2px; + top: 9px; + width: 9px; + height: 9px; + border-radius: 50%; + background: #dc2626; + box-shadow: 0 0 8px rgba(220,38,38,0.55); +} + +@keyframes istkSlideIn { + from { opacity: 0; transform: translateY(8px); } + to { opacity: 1; transform: translateY(0); } +} + +/* ---- Responsive ---- */ +@media (max-width: 1024px) { + #ind-stack .istk__card { padding: 28px; border-radius: 28px; } + #ind-stack .istk__row { flex-direction: column; align-items: stretch; gap: 28px; } + #ind-stack .istk__media { flex: none; min-height: 0; height: 300px; } + #ind-stack .istk__content { max-width: none; } +} +@media (max-width: 600px) { + #ind-stack .istk { padding: 10px; } + #ind-stack .istk__card { padding: 22px 20px; border-radius: 24px; } + #ind-stack .istk__media { height: 240px; } + #ind-stack .istk__title { margin-bottom: 16px !important; } + #ind-stack .istk__desc { margin: 0 0 24px; } + /* Two equal-width pills that always fit the card — no horizontal overflow. */ + #ind-stack .istk__tabs { gap: 8px; margin-bottom: 22px; } + #ind-stack .istk__tab { flex: 1 1 0; min-width: 0; padding: 12px 8px; text-align: center; font-size: 13px; } + #ind-stack .istk__list li { margin-bottom: 18px; } +} +@media (prefers-reduced-motion: reduce) { + #ind-stack .istk__list li { animation: none !important; opacity: 1; transform: none; } +} +`;e.s(["default",0,function(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:r}}),(0,t.jsx)("div",{id:"ind-stack",children:a.map(e=>(0,t.jsx)(o,{sec:e},e.id))})]})}])}]); \ No newline at end of file diff --git a/build/.next/static/chunks/turbopack-11jn_eqn~72wc.js b/build/.next/static/chunks/turbopack-11jn_eqn~72wc.js new file mode 100644 index 0000000..cc44f6d --- /dev/null +++ b/build/.next/static/chunks/turbopack-11jn_eqn~72wc.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/098a0lm-b~rn..js","static/chunks/0tldj~reb5~dn.js","static/chunks/110q6k5sdl4es.js","static/chunks/14_678uuyq.tf.js","static/chunks/07uz2g0_38qia.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),U=Symbol("turbopack exports"),C=Symbol("turbopack error");function P(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=j(),u=Object.assign(s,{[U]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[U]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[U]:{},[k]:e=>e(t)};return e.then(e=>{r[U]=e,P(t)},e=>{r[C]=e,P(t)}),r}}return{[U]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[C])throw e[C];return e[U]}),{promise:i,resolve:l}=j(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?i:r()},function(e){e?l(u[C]=e):i(u[U]),P(n)}),n&&-1===n.status&&(n.status=0)};let v=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}v.prototype=URL.prototype,u.U=v,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let _=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,q(r));let o=r.included||[],i=o.map(e=>!!$.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,q(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,q(r.path)),l))E.has(o)||E.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function q(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>q(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(q(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let N=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?q(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(q("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(N.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(N.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(q(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(q(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})(); \ No newline at end of file diff --git a/build/.next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2 b/build/.next/static/media/0c795a286deabae8-s.p.14tvuu96~wkr0.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fb292f315a6f224498e692dc7c4a68c3e5420143 GIT binary patch literal 34560 zcmV)FK)=6tPew8T0RR910EYko6951J0UA^Q0EUnN0RR9100000000000000000000 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 AVgLXD literal 0 HcmV?d00001 diff --git a/build/.next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2 b/build/.next/static/media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7b0e76a5c9bdfdb5ccc8c9ab44780b5ff788c6db GIT binary patch literal 22320 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

    uw6FG`p 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 LUu67G82|tP?5>Y; literal 0 HcmV?d00001 diff --git a/build/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 b/build/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..072229b870650dd4ef5370a52c6aa62b3a9752c7 GIT binary patch literal 10280 zcmV+@DA(6_Pew8T0RR9104OK`6aWAK0A82?04KEo0RR9100000000000000000000 z0000Qg9#g+avXztKS)+VQi3i&O;$ltUIt)4Q&d4zflenT0D}xKY!L_wuLP-U3xYBL zFu_m(HUcCAgkS_91%@sMi&7hDSrzQqBW?!}scyD?M8)djWdC0#aAPR=2KB*_SQ3pS zn!vQ3%B=znrhQlL$^WS%B${_vyemCYajDZJZG*Io7MMr9;I30AoQx3Q|6iBA z?Yp|tSei8qEWz04%-NYw*p9{%;K{lQcHur}^rSf&`ALRljg~;R7qs>V!;&=4&qoLW zjJ*Me=Z6400xD`Qoh~O;x;7P_K3$ux4G-{_c|NRUWKlvqf-RgiS+AscOmjEqDP8p!*NYlw4Fk|7qm&#Hyt)m%d*5 zdik5BZ)d%m|8D7r#Cq3;#D?UCrA-T3Y}#x;eg9*{iVj|C`P@BBTW4?ti(H}s z!QN2`06P-{0S5Woh8Wq?I~c4MHm+F-CM#=_SAfZ8d}bPGA^=nc2N>Ld_H*-Sz{VMC z(!lg#yKy@tK(w`D)pkvQ#DxhlwbK+n0_rKUnH&@bWe5d9HDyFWHH+aOiJ3B@h67L0 z86zX(5qKiWeyCgwvY-S!ex~;+F2cd1IIBVBG!RA!xDgv-KV#b?ApmVE919tT*~+m-pP0AztbyeZcplFW)zK+G$Uc2fH)S)-iP>B($A_ zO?F#X7x`>*g{z;~&2#&-?MF|(t+Ay#G{$_**=)`9V8sxKK&_X7CN*$6L_buo=PFZn zm7KFWPR)Cjrwk*Gj=#iYn@U9RfAN$B2>b+X;AvZuLjlC11U!k$C>4?e&AGNn#7Ih- z{2W?53D;)RfziOpu#vDyUQDGDr_o#tsx4sy=uk?=EK&dzKSMR};M4|y(vaB(;wxr< zdN5`J(TGV}5{b8%dkPUlJmst$0Am>kO-(=w)f6Dm6hZ|oM~(hV7-~c*`g(dWW&&{< zb+jZBM^T^31bcpA8WBU}aEO(zq|lYu6ig|g08BHDK@>9I;ALFLfTq^3a_6+A&d>57CCU9bup(5G1rtSS2uTl{ zO(b`N?`7%f!J1m%Mp{dqZzfY^LM88GP8!NK=xr3DWX$Ol zxWsh9%%;}O=K-2%o$Ief9J#1s=_2mt7*EjxNHjY+&;p`FAgyEv8VRiUI=f?Hbbutc z^8kkXA`bxtsEv9!2N$3Xx}rP!V=%_EE7q-Is-udvLj|Qnhd@A}V zl^RTO5hHC7ah6l!CnzIeF#yL78h|Mgef(Dg;}LYzT|Y-z zT^2XFsI|y{Ywks9+P7JphnB}vYr0P#PaEsl% zqps~`HKI^+xfR2aUlN~L9!ESC<-}N5GMax%O^=Lv%`dy9r?H%Ow$k0EYjaY&RnCd> z@4pI;7>wE?XBDO3Q-^1g_I^dgQ-WCK~q29})wN-MxdM&XDSi^>!+ zWH6RCz0XK}fngZZ<}m^gPs@TbOIDZ`vZE9VDTW~v0c(3azJxcmd(z=Dnj>QlIUP~Voe`s#gu}>s74iTX{&9HDOd~tkc0S5odi;u-ICZ+MlzsFNCn4wm@U@9$YjA3 z$%K(w3zNsfRk#vY;PULt&<<_U2CcI%L^CwS`8W^f?#p7&iYXH|qy3B$05h5ocXlAe zCPQ0=&4znUK4d>&Ll)v?lxTY(gkkkzoQX@j69bGFUt1UJv{@e6yO@%bdbWxA0O zgD)x@{B}Omc;-w#h#f)+UaC8jeUMA`Pel z44{|i-C-)7U!=W~S9^bmt+lK#n`!gf!ax5VrhQodrGGbo$@lM-Iw>?rmcN3%p@1?S zc`X23yq%N|Qtb_wt)^!BR6d*kaLq6*^qsys{@py~ryu#A_CkWx6R!at>C^0)qV$)8 zETnxz3vkeBvHJ&b=%`N+R02z1bSnFkp!s440i6R7(@74n6bFK^;DBi~U?XhjytSK< zHE`+5(oBQ^tz8tq5{bbaRv^b32|{^V%$yN5I1Cn!03d)MpaI`yB^&XX7&#kBMGX1sD@xNLj{OsuEpu zz|CL*OFqhyTs^Ms)d7zGe?0i+1;}&6eA;x0=rdr%mFLAdr*YpgXW9Fof1!6UUHHhd~6`Snaj}l0fy<<{5|r%?E~0zZ2jyKwW@Z0d;e_)dToXdL^4O`X+cq z`Xz6Hfnp=3RSIKZ^+Q1I2m1cNe*)za_Xv6edXerkZW zzHL)QDZ8$Z4_u6Q-^f1hxv}7LBa$|Kq5U19+f*y4sfV`VLpCb>V1roo%gY%SI!d@rFxX9=VB5zK9{zm|>~(1|q(owiZe24u!|w zHwZ~E_s6Z$E z04O7Vu*V{alg6l#m_iMVo*hX?WCIt4 zRlLPWI=Dkx206(To-xiBI@SjYT|&6(1a=CD(z~c3p1= zh<6s()#f;g#r1W$AjYAhGOtomLCkanu~?i}S?Q3wu1#E`7?)I*JU%2&B#sm3I<&2J zNk#6(-W#`fco)iu1Iy_jY>4c3g1x;FI9_7m%q;cJ`Y>Z zz8H0W16#$roL$ZvXS*pM!N5 zLEX?<#S8=$CS`wzc6GCgNqI%Ztn$mD-Ca^`R@tL#TWh!FFdkJ(VVb#hTiy1V6_0Yr zA9}&`|K*$QoJnuyPBK?T<L zdESO?P5iJ-fZBP>OZ}3MrNw!z&v8CB-G`mX`9taPEQYH^T&jhy|7tT=Pqk8OljMDC zuFVg%-mSUCFZ87B(~YAXqoBa83muA+cKWz&c0N(+A&B9HQ~Slt3?nB`v8|m?>P!&N zDg3Z&J%01X2JAy&;i_CW=SUsy%(8#bUA-dEb&bk%_bW*$T<-R8^Jdqw!qn8|MXOxy zWoEfP+LZxo=bY}?lY>f2v&qi~jz*N)7Uc(hIN_Ca6c1XM=6rd3TypZB1h3*H$(ut; zkB6s7Rv7wtyI+~F5tN;K#|?^4yd48cbB=!9lZ%&L%O$3nM~{8mGxJ($F8+V1M@v@k zTkG;5E#2kOzRcAbdoo=fW~8}1*s~UlEQZ(33BrTPV0^Z|e(lAlK0)505&x2z+;QHW zc$P;EU4?D#s+v;m94x{&%YUY$#$FE%jYFQO@aC*~?oXmRpUF4*Di8zS}fYfGNC%55P!Fu3WPqVT@CCk$3aaNN8!{q&+VZzuiV zeb_M7;-z-1L_5~?^Wn zd0hevVl3FBe`6xgBoBnats_=BnO>+`^;i|uZbute{7<@p{8my2Mx2erEf$mTW8EQII2Yx4bfIVSje{j>YTFKF;$&3JSAf zMu+(>eBOtkqnqsca?&+lfx>4CwiSTciR0vPz>EL`paVNdR;HCN<6*v32KjkHGX=|jF>ejxK;Vht2XD_A#wws3CRa$wcc4Xdag_Y?-?SrdC?)vn)a(Ay`<^j}dm+zM!2pudYC_KW| z7$475nua_n&(x4QbcvZ(GVW+A%_%I`1Q=*#Xk&_yVOCgyEL}~WVQmoLX>)_S$&#oX z7w{X*ZDk}tKvdIu*)tsZ9`qEGb!~k!QZd!q>oAnNfeip#08#*RT`w%lR)B80EwYx0 zQ%lZ|l)KJM9htYdHyfw!X6ZJT5FT#_lwhK^3S4F+)T$Ir?3P4PQPC%vmAewqMeTxP zo(CNy<*;d*NuDL!#oDDn#g)UVW4E|EXLMvP!w|-4xLtpc;v?LiDkkL$sL5?u<2u8P z(VJ0#MiBg-Us0A=>HxSV7V;5}p`k_q>9CG_5L=4AD(uO3Jt{i5f zs;QeZ$S2h|c0L&j#dRQb$RQ{`PSqh|6i}1XD~+qb8wyrap@auCoDUIWD>Y=(lSNqy z4+H=ym6U(bXEn(6-JRe`J9}sR_@CAaHnEeVT;LA>Q^OYqgpdHuK<3C1`J+U19{q>p zs15a?NsPjTm=R`;d0=5!GPV|bi~Hfx_zHX@z8yb=pTYmZ|Ha?ot#~&+K`bJU5a)%Y5d923rBjt^%C=P;+3bDndXQ_mSx zQdM$LN>MtX^pZ<*mvIkqpYTXt1h0g5gZHl(D#4-SclA4zL*}DAU1Utzmg+clI zJHmFhw_>O(TO6mV71mz=`E#SAVsXDZPprrhgE5%B(7*)tc&*jIv9dJ}%>l{jZuRhu zSyv&0n_~Ibf{5=E=5rvjL}5zA8SRQ8ggL^EQjm-v5R`&$@vX9%z#uHDHUu$`Ap?L> zoUd4hpA>9@z(4#mV9kK$lx+Wx8AnLLK$eH`xR>8*DX?n9cMGgPS>sPEV<4*%Sb*!G z1wX%h8RClL?1-+q?9R@~zSi2R4WG`QwX}r3BBi!T%9$o?R?Md7B%eSyHuZZ4q4D$Q zv}$L?<{G|Ow{fUqoz9PPPPYJ$Ifx2h^leVq^$7bUsOQVDJyv zmyWT+Y~bnciVaV!ZnS4$;|SZi-qf%fatCke?;k+Qs%&Q^&mU^dBLk0)luo4T=K`TO zfSr_S;gf*dRZK)kUV{zw^;HD?FK2IpBt1;&bH<+CYMN?Q=K@7H09VRvuegre`MD!S znfvP*Hg3Lv>uN_tOb43VXaY6!qkFPmp81=8-Zx`to^#_ms0B)6eE1xH2hM)t^;$j6 z>$KX$Pav;C+3<778O*`io%8KCUtnZQ%DMO7MvdG_*~Aa3;Z-3p3@QFEte!W2=E+2V zzUh(TzZJ-2R0-9CF_^xKn7%$&tXMu$dg;#np>Za|?d<;jaI@q=Tw(Tts*@9c zvR4Xm*I@{aOJIyk9L!lsSqY10S4-d(ANbIU;b|>7`%%@ia7j#bny)8?v)APmrQoKG zCg7#wYfufUH(PmXvSer(471%MTMCuBsYl|D<5T@tP<9-Z*wZK(s!6 z_OtdO`iuK_D#}Yw zUy8fmxz;Nkp@2iF{^13=M!54<-c8=R+GKh8!>ea*m<--O&v8yY`#pQELzV>oMD3pI z1@1+I#ZvtK$G{{tjZgE{l<3cw3h>kM{Qochxl)sle|hs=N2!mK5Sk zP1U7+uY`+Fp|VJ6N(p}bfngY`Idn)SSg~R*f?c;?`!b~wkR@Ya(J zYkGbC@PRYui;FjJK6&!|sr|?1DgHe#BcDvoi+6?+9xh(2zbqD<3xlG@eqq{b`8bd2 z?UfNU-9JP*?pwoS?QE#KU!qtAZ=7g_87st2a3N!2sJu1x;9QAW;(Dlr&RO+C;4C;n zFhslS1_^gyFp9=zS7 z;p_t2xV(7f$c7g4N8jAI7!~Pm1g263LHz#BU=sN{U5(BCZEXey^N2g!kXkm*uVn@2 zJj&@l7W4HugskS_xgA%c+%%>S9k=Eym^QZR6oh`5U)+=R*34g@Ssins0}Srey>c*p z9i3A;l(F&Y)9~U^gXg=zdD6PDiuJ*ZHf$lyR51d>A9|ih2VTtm*a~UE1rF=HXlzXb z7lqf2P5uon6Cl4&;-}>%fI?gHD1Kr>6?R(+M+o85db=Wj9K8|77_!vR6Vb|^F z8i_eESu#%aY@+epE}4q<)EkJN)+ue9kQfXLvC(clDp71&9KesZYKJ+)3Cd@^CoBvs z_mtrzK_EppDRj2d5%%z?5v{}My)02=?H-qV7&_5n*wZSILUKH8>gnm~?z*~#MvCvc zo3Gz>#QqJex!{2qC}hp-`g*OowswoWr!ttWqeD|XW*?Vj3G83o?`EBq)zv3BrmYmp zZU8kY$7sBar_f|8)h#@;_5vPT9vv}lsEv1lrQglBOxF7|e+$n0IumN=KY0w6erZe@ zn&Y3r)=#`{tG9UVj4n6=*UsLZnxT4Ud++$zPx+P0KkSm&S|S_+)plp z1+IpMftkG}EVQ*5KO?R3=lAED&!5LM_Mabt=7&v=(=)8BtQRhvJ7@8N1+#?2Z!|T* zV2yJ2(47R|UD4Wir?T3R!FNt!QIA06Sx zPg4QUF3gs)v=(@J#=6ejTus2T1WFdSVJF5tc0LUfbELqIF68?LufDKjM;`tHht2!L z{p{cKKu*AOUr>u+5LoHYuHu|Focv(4LE+GOg_zG_$JjP?zW_y1^Y z+`s?bk1-~TAl3A=l9G*G_t`V~r!Gr;d-;-Q5i!wLeE`O0W<$?p23Y07)|UkvrDC{t zjXFM>Oc6l4vm(66!1kMjf762x%@AE6mIF~+bV5B5u$Tz%o(hv|{r-}k$JcvI_b=tT z*A;&~hLJd)I%chIErtT;_3+}EFDB=IpJ^JPN`w&tCtgbk@y|FaGV2-tT&C;JAOYbB z5k#0Z*E&oLf2I5P)fX-LloqIg)+@JpWMdOv-p~-tlCcn)BFQO)%w_nJ%E}oM*vkL| ziinW0+S|Vfge#HXiA;4zQ6z{Vc0rKJ;7R@M}WM4HOVSVv3sK}1BglCCg^`6?f!p+B?iO!bKudjk3FXl(w+GwYnm z;UzD*!4|g4C0q<=+Pj&Zq)Uk!AQY0SuWS3>KQeOe+^e=hEiIYoP2;z=pM$@?yt;69 zaAdM;sja)C57RShd{+aN1y@nwGNeSu6RXxC)nss0^z=*?N+e;Uug~d?e5*P(YjSY*A5BGC)92>Lti%UyivGNaR*hW4tdBvW1 z2haTab%55?G@Q+n;W&sM_}bGmIIcj#e(u*ah)mZKk{Mf3j||!gOgcxKe1e&l7oLDf z%9)y)z_5vd&998F-H8v}5a|f#DBGQv^Zol*4UMm=K0Wr=l+U>iEPWqW6Ag8OO5RHc zLC&E8%)zy8&ZqZ4P04uHkh=QNx2pRUAd*fSe--Kw9u!6=1cjN%8%~o;J{#D=A@(=3 zIK*|Ur1GZ{1YXBy4t_I&E&J8`{y1=lpw8t9RA&=PLUm@}%jZHZk@E87`CNgKljqdX zD2Sw@Xk1<0Syqmgu%14h?umS@dwtIh-@i}krbT97qLtzPp^*XZwzdNUX6_NGOOuk< zlm4~j)at&}AZ2%GKP{K_|; zBG*@~J&oU|7>4xoN?2qrRSa?B1L^4p0w9Si;7mB}$fxIf z5;(wV?3n(R#H66z@GDkKQLzkj2=EXOlmsNCV{VscgL}G1W&?0n>|G@hDz+st+}M!B znTC6kpc(U$BrBsy22CFguE$?I5kkOm63O|n988)bke4)rvhGyoA-j>q=Y-`+OO!<> z7r+vjv_geAxe$s~(i$OM!v=y{QVa(LjxRoNsC28uOXDF^yp@(oWX4j4OnwjPKy}(8 zL7TftGD%i+tVAog*dWsyoKzy+N=f}bf+SmInGHUW zLXo&xB9+M%N|jpEuGQ%c{ScGcVzt>FPL~@Biw62)5J(gngT>+d^CptWX%s4r&S0|G z94?P9$PtRf5~)nCP!_1v8m&$rW-yw}mSDftW_LJUZtfnQUfw>weu}O^1J(r5`Ox-R zcuwxg;MNwH2-#PNWEf?zI2c}(0i*x`007AG6ewfQ>VIB~I!-PI2U+&1cl7?{w<0A$8AS7VzRk_ zpdzIIVzT@0@b?IvUDNS#GQ|w9t7C=LTr zwlAXdA-J-F)3ecCYnC4lRS+IDe|K?_`~^X^gEqOj(CTQlucR@ggHqHsV`-v^81MVv ucf9d`B}lfr_M|iE%MM90SLA2ohDqdc*LR2CrFtC(=haEq`(Dg5?G^!w=Hzk! literal 0 HcmV?d00001 diff --git a/build/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 b/build/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2cd45edf43e09cc2a636223245f0563655d0cc0d GIT binary patch literal 25844 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 P#+t~*HNku1{Iy>IQ=4P} literal 0 HcmV?d00001 diff --git a/build/.next/static/media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2 b/build/.next/static/media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a0fadcfcb265537b275875c510df4ad41f9ef31f GIT binary patch literal 6772 zcmV-)8jIz3Pew8T0RR9102*`v6951J071wA02&1V0RR9100000000000000000000 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 W$L~XAl1Pv+QJI>Vlb$pI0001`y~9rc literal 0 HcmV?d00001 diff --git a/build/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 b/build/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9c71603a56134495cb3ace105a0928e9cc29a860 GIT binary patch literal 19044 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 bO{}N$rqeT^0RR9100000000000000000000 z0000QIUANJ946CI^QI8}UdL?3kB$96->UoZ|nl2~y&)DK6;)o1jiAjVGxLQ{!5J$}+`C(wKH( zT=-gwxZIkS1DqY}meWtofnU9a4ald~?~>>>YDxB?g=T0ecB9yATtEFk&O)AX_nz*u z{|HHD;fbg7{WEj#I@u}}oXRQee81!acFFYZ5Z|_bKu|opbhFz#y6jRTLj^J|eWuCeUL!RX0%O@$j^tz30x%%Wf9f zm&gMrpIuRXNv^62XznKeSCi0H1j<#nuEGIj_=mi`0S6RGH!4dgz%Wn0^4b(#x-wNNAT?<^%O%jC<0#M!=o-`S16W?moerlwTnVllToFsk-EZ|A2!^U@ zWeA||`2|lA00K9C(a`sD?1KRo1OizEK!A`|aC8O_6_GH#nTh&g`lclwgeerj{?f|I z#nB)zfXMw?6d(CO)qf0kAoPPam|IU8o#uAl)F8NDhEtJp^1aFe;G~m2r+hLt-oSeuAa zU%IMQ1{pT%L8fDqIUvVKXMBissyrkoF*50!n=+ls3KtzC(ZK8DCBs@;ty-3ujpsZO z)9ra#)<=M z4si$mAnXuz2s)^XeA+3+VxZ|F4@M765?nLU{VZd-Q;VJc;y#0;#sOXHp;qA{HVOo_a-92il?$ z{=`-_h4m|e)lv!wxhJjE0@w%CgYl>319t%BiP>cqfNlc-wqE`I&w+!7AwY--F%qQ6 zkfT5eWmKqAqfP@C+O+G?sY|yWz54VUFlflI5u?V8n=on0v>CJJ%v-Q%$+8uz)~wsG zY0I`9yY}omz`(@9#&L+i#lt5cBqAmuB_pSxL{g#9)HJko^bCwl%q*;I>>Qk2+&sK| z`~rf3f1vhF0Jx`~{Nvr%vcz5LogBRq(zoZfdz+(i|qj!g*XZ{ERb9@Tp}U?F3Uyrz$Zi| zqIx_F6&c?p*PvWdfa?GNp3|lefbZVAwss|h(BNcj1AuE9=c+GppgdS)o@;o!GVz+2 z4;5qci4UES0sbVVH2{cP0bqMLQUDF05Ck6qGW38tkXx6!<3#|7sl|>H5;8gjfC%pa z2!N=x0bl?XBbNd6CBQH%2gJ6HPRn$G!#vYq?So-^5^D$)8=?`-sFKF_O(fMFNVC~+ zjnIgU*p!-T(_kK$C&>zcun7b|xS8gLDK~P{Xoiv%J8xP!j!@ z4wNzggi2IqMF;vb-7F9YJjGpBb<<8=f1KB_j>|UhfihGaX+%oMrmJ>w~!9<`#d@X@C)$IU-)}gL9b|xtxUJmD{`3Q z3>0)g=l4>KDpDG*S|5hml7Gx46({CfbBYSyP~cvrJB@iz2%&MEH<+J+0c4dzV1wF( z7MG;bqgs~cxn)IKsnn}+o}``7-uhJvs~+WH+{?186-z9#F%0NC6sx`6&7@fw4yt+o z{mtXuE4@r?y`hgf7B6a1{m_zB>7gt3FZYHT&Cv%P zF^oWhHB2M~PP{(mlAwWC(HXQ2$!uh}*b7%e;kba584$W48+v?M5 zQhC`d;t|!a&S83UgHen?8yPhOl`P+`*x%2e30s$=S`#cLJoyLpNjC6>SUew#6eI)t z>cv8mDWvq~eJdx`K1(gMe9Q-F^6wdRoIce4AVh-Ngi*qlGL33zFLkA8bTTHl7=&5E zpGY&734cA=RlSFPl}rca{stOx5#wHXCY|)A+v{H!n@UbvnSptuMF%XSG_=etEJIC7 zN9d<_B{qJVeQoJi$6BkTYV<4NpNry&;$S5Q#&Ff<1K4{F7aB=m+(-2>OecHiQJz%( zeya>yb0@uOp`+3K$HsZ|85ZndaWE%JT081QcNM3!m5VqBQctN?OYAoo>z=wrpR0yJ zY(78hyY=M=gWLg69Vk>H_+5tS_W-ZcC%rN-QT;@g!EjvoQJ$EBqr~mlUO2Dq!aZ;v z+p|eHQa?NnkAq0Wc9HvV`?e3?joTgFiQB0?HaMH81Drfl+hh!W zTYt=z2+Al0?C^kSfyT7m_s?}IYG-HT7UF`x;6`?#(Olf979hJR)Tg~Y$HwW|69M!? zD`q|IV#&quMCBzrx6D1YLwT{+YL!1neDQt6tU4Byc=jwUS3;+M^?7nS`IL8}4@Z6@ z{)u}lq0nZZ3aG+oGt?S@s-Q!S5Rm3If!jN2xL?oiuHR?1z}^QhELf}*yJOC_lg^XY z`;giir8(<TurP1M0DIu-#4a0d;t`z3k_!up<;KboYzeUf_QU(H=cE7!u`^x`#zQ5pOFEIvI&0 zkLU&ftmH#P&nzRq#lDZW%NFUI8(|2U{QAnscTwpZap=nJnlLbuRqXrdzR9b%gSrpX znqvK5WsW>D1a@qkGYgYrE^;=Q3ve{Eaiv+Wl3vLQOj|AQm@%VXM7&@o6jNC7;|b%7 zzyN5G(riS{U5jfkB5b+3cKFEco56n;6$j5H6ex$#A^K+xbHzn%F785$ui;d%u>vPd z^zP#&c=rqWibJhN45Q{l8C4*G*Teop(u`vm0}&3wY|`T%+?2LS9H@r@S>3fo=IE#b z!~XsPV|28LQXop*6J223&k!Be<67U9PKt50?Tt`cUv@UF_r}#~>k1=^QN)a@M*I5u zID>QTf%*`pxd2Bu>s6YKD`}OPnBXcj1zDlD%qR6$wB43TJ34q;35`M@dsA^GmgoH? zVBVgDY#`Dxy+?Rt6%+sg5hWraA{JT=!RIeooNDy%N@^qr+2)rZwm!4TQ~%1=wUFEv z6+3U0_4Hmb;x+WTWVp*RYaSJAD~Hx@#a!9!X-(&g+x#LCkpK@lXI!fB*5>-5D|jNxw6L(ovW35XI{cVeF)!E*z%h26;zdu;P||_?GIK`;$vo3i`QHteDv9sviPe- z5HPh9b2yw)4u^x960hgwvASQAZH0fMY`5h7k#h-ADrF&_-YRIBdv4zDC?n&@wT|YU z^O|Pg1bKqrNO}hKwLF%~mvK+O7N+}+$Pz&MJD}Tn(1hO24G0oCo(->tekqIOgxm?) za4_OPNFedX`H1ts4_v(wtDqbrQ7^3zDTdD63@#k4??FTV(}xL^m>~YGoaA4A^WA)= zMUT2WW*6oJYhyrHIB?k{eIp3_t4JF0X@sAzXHxnmIrL*uN!Z7c?6I(+wT=2sN}0O_9Hk4o8}q>9_6f$nQp!wH+xj?mIU)RY`|3mOw}%Yj$aP09^qvimZaH@-AQiaq7BJ!=My`3P`Ui{E!O2Ol zkJ$3dj)>am0QXeRnS$N4_Ju}bmcJ#D*OFNv=@n)P8gG{91$hBCG^B4jb^>`7ReK;f zo*jMt)`Um3-U3DEYukC(1ALQ9zYJe6dpb6{*NPpMkg!~^GlX^wd8=Id0B!`J8 zDZ7MB`EDllMC}dC4>OCGC1_0O^ZNEKAGbWl`&EXB{I)z{u71Y!C0x*rpJGrjs+t@e zX`gJIVBZ~P@G`BSa8`Jb=WV$=b*ThCaRuoxFF3c}q~ zk-f!+P4r!-9y1#czrE%6z9tTitl@eHZvu;EK@HccyKYTq!06gVH^lTI?4ff8T9OX* z2-}=p_)KafF`1b9owo;BOXK+7;r%}j_$#SJ?dGM@?(?%CbgFTbhAkfS@+$~DYV1-0 z>D#>5i2CmJon37)@Y&lx={f)p9t!?vHL_$iIAR@q3pW4pFxtr8J5ves;RnyPPe8f| zx@4v5k|R}=T*;GsDUd=bl4?jPDJ@lyYC?Qlnt=d3R*ja8E4D+k=dE(ncw$}lomh__ zw>IPn>G9U9WTf>^9@K^v}RRKW}YgAm|f@1B~0lY0gPcNiB+If;#1%MWSz2V^+(JOyMQzDFr zZ3cpyh%~|hqkoo+IQsy zG{5`!H7%l*PylC|V(5vTU^lr{VsUB*t2P%jpMhYR)kj(0uI;u|%f_|L#wm6L`KL&t z9-oVkJB#2o&g(?tU^MQHT5}dVG1mb`1}PxR#%bBI&ym8}h&-0$>$5CZ`9uUDAD#mM zZ3&0|NYrr1Il1mo88Yez!bo~cnD8WD>ZMQqM($O*rfY#VYL`ASTg*NaXEMx9Q)tRf zo9Qz5&Ht^AjcgTbZFkxO*3*(L)t|Ai7ojm6c z*Uq(fVYkP_con>y7waW@mEQlo7ru?Z%Xjl*{dWJ8zC}O@{DZSWNiZF52+1KW%nTod z!{MvQHaZu{qWb9fXgHdUK1Pf6Q(%Nj#i_a}+tlGKcmaHx0hFm-njtBg(U%xdHbPdd z27x36#PV;`_S&-OdA@RjF4tdHZrH72K->SkbjJRmU-to{+l@wc)L&R&zgoejg#`%} ze!9|2u)p|KU%whTj+GeG^cjoOS~L3U8y4btY-`Ra^4)CVxSz;Ilj{Viwn>##VrK7J z>0UxbwYBkZ+oufvxpClDc5pmbhT6BD+@JdVRd-c~R_pjj)z;>l`xgdwJShVq+XvtE zh)9t_tPn|!k)A6mZ+#i~3+RN`8TdXtLR7FnAdn}3AE>Hzh|ckyB$zu%I-sVDgc2`m zROZM4L+81LG;XAD&6tO|1q2Pv_*`tN6KE0!<_YE!NY_z(7zzs&Tbpli-WH3u_7Wi{ z@4z`>!r&HSd6}@1Gx*m+t4>V=Hz>x&tHyxj5L6ir4zKaBqGv@X18A4d8{lmVW$6f11IV|F!T%Q4hZWjj3Ow`g6Fxa9KRPudkt0iyIZNam1Qi?$iswIC3 z_I$uV9haRi04P-QSdW)LqAbFCx=e6oEf-7vTPorXNJII=^tWLKzwOLn7K4Yp!c6+< z=F@xi{nlEUEC)WhN#**oTJBMFs0JA{s_>==iNlVKhS@#?_N_@mpGM3ZtFBrDl*OD9 z_z)Ld+70|*IQ7%8VP8lK~ z(IGhxi31TtlL06q2zQ-n7J&B(@ABmODvrZOvtCNd8oJKt zI|akC%rz!kmyYYA) z8e!S)P&t97I9+vlLRv0g^Q0=+!R1^L7E_xHfpQIF@x{{M-Wae^6sR}1gL zJiZM9Ne7|X4K~+VZ-O}Xd3IuKjBgms6SJQe5hm4p7T``fSX(Fj;V&)6TnJ=nqCDko zCMt*b$uDLZ93W>3>R6;4jHr;f)Bx5w4404KHG~rI5fc zG^%Z2*xqAy5M>TW%wnP$#SF0#?Kc3}gH9kwo@pscl2WFnrTO_#Q|3sb)G}Dv&~M!s zMylLX&!G@0S9Z#iR*tD^(8vyx8nm)K6DcmV1ieIxv$urAULS)i3im>8bU6XXcXMZM zJT#nS^Z7xGds#Fz!*}cwg16kxeN8BP$GH{>23kgjITwzb$w1_Bd|}m|evO`8d0upP zr(!J8K=p+a;KC9^I|%2JU}^Uvz3p1@*u}x+);*MS*IJ1 zC?DeSS;8n?IY?%C?%@N9Gc(B+V&FZ(K%UIgRYSG7Z}Y=Y(y}6*(xrM24HGV4$Xdc% zdq_Jud*8N1OhFbEM;kR-4X+fJyw2dGU8lQR^5?OU zLPJDBkez(g#LJzdOYq*zCy$o4*Dp;?BJIL|;nH;pAgNL%X~(-AX!_Fqz<%qyb<=E^ zr#^;jGq`iWBb*FW9VI0SxOG--*M2>`rq-s*eLA-0^iG7PBThYtjppWz1ANofdKkMs z=`KsO;$;6;FO(^eD@W~A-qpwMt0*zB^5|~)>!kK^M`^NF`+jEr+rP_1GVH&&ZObFI zes4;LY~H-{i1T4DYn->rD%f(~IMZ8SSKBqYu|g*x(s)Cf^}f5Z3LSPCzvf)?4p=_1 z0g2mOv$Z9d{&gOZ)T))zysLsgzjrUUv@jKFP1}Ll%S@!GeS!;9w6FjAAJW}%ev zw~ic4PU(Z^mAv(F-_O@0pXT>>kV#6~L0p~#*UJz+eQQ-ROO5KcWoII~=ieVVA61Lg z>um*>7jd6@O4dHHqJLKLQ-{{XI&IMNG_`wF@dvYg3I`%;Wv<)dY|zWpHigz06P!ol z$4T8Tqn0}@RaiZG321rOK(F$)`9;IOwe$ZWU_2KPg!Y=1Zac|)sdp+T$L69238RODu5RzHrrv){Fd#l0YsfENGlT@!iM*B)^NR<=93l1V!U zf;(qoO0d_lQK07tA2;`D|KAv!|FcsO=b-FSapdiY=8k$>&~w|2?VGNKQ7BiF%~`p3 z0oYyl4r>Wsf3ipV=S$W>mcho?qF?&_`aQ~Jj%WlnSl7nsOw{`L=aup61ZuqU+8eJ7 zDvaOzz zfF=2~OUpGdYWc?kio|>t)(RGeyi~H6$9w60hflX=A02Qu%D*xtbj|nIUbP zvmp|Xd)E*kOSFmj(ZO`*+sQT6xJXsU=WT}!BKTup9?|e15*^&uqg#6OkcS^k@^LN! zAPcx&TLVE#kxj%k4UugJubKYf*-h8n=Ms}k3Q$b$%aA`;_rTY0(@$iv!pf@Oz4k;E zDz@Ufq0SRpR4ambMSm0j46A=UQz&L|j!f*T50Uz~>K}gisP8*E7RW8dLob$w zpG-|`N;tQmwracz*7vvAa{#Y4bHiy)GWq2t33p$PMa-Lf#nsf<7TONjQ|>o+d8eBT z)_%i!K+P?r*6O%V-!d$_8W~4&1~YDKSvg^|f`O6UQ#1H6dA@c~K@Rgr$iRWjt$5+=BK72x2eW_TAIKUE z%Cz}Esv$zmIS^K5gppZD`uU?Pqn_-OvrsKQfeJGf3y`Z%##I2)sudAs%Ie&XAbDEx%;moV5 zj{I(G3*v`4MkhT_bjhEh^yue!?bKMJ!Qhd@tZg>|C~F4Qd!H7ZUf7=+gHESSp(_3u z9b4eHfLXiq`H8@#noMX9Blk{-Xwo_uVHPhUZ3(JY?o`OMomCopH#0EZ3Hm0<3vqc z(6^ROFLXKH)_XSU{wx9k*n<1h&)p`074Qc!I^Jgh`0?i|0RZsxJ?jUX(1q0h$%g>A zC;$R~HX{ncNi!sLBOs{eTr&+a*m}TfyEP$dL1hy*M@W#i07NscRCn8W0r)1I8efQM zi?OH)xXKVhB)5ozVyT^A>*AEUdQrt=JQIACCBX*NqEQetkRa*}znCK_=wn+l1_b*=%F5{G6&g;Xcuz%%~$nlKdpU+kH@)Dei@v=G*X_;XEz954W0B}?%NyK@pmIEyS&Qu5`_~3*W{;!^5B_R2kLdj>4 zqESU9{t$-FkWJBsG)BEV#MTBlWgjC#0~$&jKt6*bVl`W$>UQ0vy<)nANi%_zsFa0_d07eh zOBh5hWJ`+gWQU3dWfz~*C zUNTsQ9RUN?@UXj}lC;W55-3&0JqcOm(tC?YXvw948ReFd;2$?T zA~2DJ@SKVpU0SGA+%U=G4GZi3N`r$JB-ANJ|LDRt6pbZ9_;ZuV7OS=TI{NVOc6N2Y?WapcqafQ>ZjLgUMoZxIDfj9nFU|1Jmo+gCljre{xwGY*`Ta8F(A{tu2DZC?IeO4;waRqHo}jN7L9^+~%_&HD>l^s9pUZt$(Dd@!S3wvq5D z*C9xD;IcN=V(eSZ`o=+C6yBD(@8h%e>i~UrIX0vq_}}vD?yib4Y{akGMYw2T{QIUN zW>C0303^i)C0642*xTrIb@$P|+KfmA^pbP?$Zp2?T{|dl6$BuO5HcdN^;Q^GCLHqu z-ZtLJdm$#>ZUwerz^J&fkty7iqUCHj*9QV6K*Rsaq#+!Dfrg9yh9%Wb>F#}|pXfOm K&Kr9!=)?ypB>Kt# literal 0 HcmV?d00001 diff --git a/build/.next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2 b/build/.next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8f8cb5508a0cd509c323ae5ad0f4f3d492be88b4 GIT binary patch literal 36980 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 UTdo8>TaAY`&D@w8IF|qb0CsB$GXMYp literal 0 HcmV?d00001 diff --git a/build/.next/static/media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2 b/build/.next/static/media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bdade6d841cb0a1dde9dd657eae8d2e8d4306700 GIT binary patch literal 15240 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 Tp~gD%=1~4;zp%;UV+#NP+I>lo literal 0 HcmV?d00001 diff --git a/build/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 b/build/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bc0e0ab261be55e60502e8f0ab104faeb84c3888 GIT binary patch literal 18744 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


    v9OW5GIC=qo>qH$Tj1ceN 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 CO03ra literal 0 HcmV?d00001 diff --git a/build/.next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2 b/build/.next/static/media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9d7abb17d323bff647995a94222b92b26a0fc93d GIT binary patch literal 24576 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 v%=2?SKkNhLp=^Ephf+&9*Xb9z? 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 literal 0 HcmV?d00001 diff --git a/build/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 b/build/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b6dd1facb44d715b93e64fc93a2a44aa8c741b70 GIT binary patch literal 11272 zcmV+jEcerQPew8T0RR9104xXq6aWAK0CZFU04tLK0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/build/.next/static/media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2 b/build/.next/static/media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3eca77aeee3e64a03038fa79780c7b60051aa32b GIT binary patch literal 8492 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 literal 0 HcmV?d00001 diff --git a/build/.next/static/media/e94b8ab81811a983-s.02fsf_1p_avhz.woff2 b/build/.next/static/media/e94b8ab81811a983-s.02fsf_1p_avhz.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..58a32f13d5dffa948b218c63f2d963e378df53a7 GIT binary patch literal 14652 zcmV-CIm5#N#UU8Y)S?W>26 z>MmdO%+arSi!<^YDzA4rI%o&`A5giFnLxAfHIkM;f-Ta@m&*4x+M8$@fV8@1vrJ>TA zG_hj`6@oypBr)mU-rCn|r4mH@{bujpHwh855~<$AlV_6(krusGnpfTsf9l`nOh_HT zO^O%rlJ+WUPQE5Mo!G(r>EPjMoB!S&2j`Ij(qbhBf@mL#m@60AE{d40++KcLNw`sIyD*Q$ zD8k4Y=Ud9Q_W#}MUfO+M(&}I2G#Z5dJDm%VV$f?V-?PGqf5beR@#3b*&zKY2oRTo;R`e}0MB5lGvx9O zD83=3b6j8@#XaM#cHfKFJry!m(b8U3@sCn0_#&!#j0yk@$eyjK_o1KOqxPw zM3Dtc$chytZXHQVA}LuUX9qdrD6;1Sa>`j`-v!7;E=4YP6>^Phk?Y-v-04o7yWNBH zut#tR0WC!2&M@2E6-D3!9=rob0gHe!I1B@H!M3|_JKVIl0tiD;FMY%%$JMVJuUjv( z{#piVmx28&z>Zbm$SQDr9XP%ooZJ9TZwBu+gUbbD1yx(9-a_+s`gbv~i=kZ%?q*^) zOS>_&hw(kgdoZ+@(Y=iCWo9pP`|w~N=JsQLKjsgEd>D-W^6=+r=ZpMJK2c1{Ch}R~ ztazbWNLR%x&8p->u{p4*+o*R3b~Rs(gKlUUdIsGOMU(m|xu10XWIm6&T|j*=ApJ$u z`y%Rp5fxobeJ-I%SJL9^=*OEm2>=6te)r$x%$v3M2cNF=E5;S;o_)`G?!5San|qi4 z#6Gf|FnZpc2$aj`q?7(Je?mjDP8D z{t6?I-Y?L%y!;#Hk2;%;F$o@!1l5DhQBdtyPAOH+mH#63GCg*v;10qGT)y&@{M^_Ug1LH@_xB_=F~hgm*h+aRezn`$!8cD>h8PqgkO3R9l5kZNy~g(jre1XUB2F+~PxI50y>Ox~eb;%LgjcPfhV zWU(4@tFZL(*=xt;X zo_LUJ5mrkbWdRR~26nO(iyHEW4Jwi2@|ug0bTH+_s8}SEP$QQz0<<3~S!5n2*9)=u zVTvLfW(ZX5gDCKZ3sNx`B`F7&q$=7QuW4M7s=US{Q;_hSlzWCfX>=-5@d1cnjdZe` zFl|EFXu2&599g{;031MBtf&GYB{I$+r#Lhxlv?Ph7qNy&2L8x$ZCKM`4dqOT9V=*@~~t; ztjgb6%zBp33AU@{g9Hxbdes}omBgkfdLT^=9u_WYs<6#12NL=!eet`B7oaohV?ga5 zzg&+#fNnA7wqzr2tJ=D7QCihr4pBsN$9jcRg1M5?^{5%?cvt}e-~8Uxht%rb&Nb@t zKgP;YEiZqCt~FNz$54>i3QZb^@z_S->cq?>uwOQ$zSnX5_ujXKk;Zg6cm=?IqsM{zr@i z%UNVtJjDj_*#!9{`hQ+`XfHW?wZk07;74h%uf;}k`?=O?YLALtg^!~3O_QQth+QIY zWi$1p2Ks{Gg77PKi*$Y7NKI5TaI`~Oy-gd*%(DHC5fBToWn?srFR?BadQ~5Ip(F5TiyU z1p}dwOz>$bm&i^|zd{3#Whq`*i3C&rFmxVQ7eKVQ-1 zus{dY+xs{GgxJ=}niP9%xp~p{Z4fym#LGbSvCsTe2M;^PQ3V6X!Mg&1Aej2ZsiCzg z4cR@$@*jK|9zBch{a@s717lQS7@++*oxdF}Se=V@*rhw-(j9f#PP$@eT)B&G*fTeW z;+D0#I|TQH;lU(4l#+*2@o14eRwPfB#PgYWu_9ioJFisEn~me`IK;b=N z!Vqxa*neI2x#9QAT{PkdM;z&>&B7IB{j0QPy;?k3*g(Ld%-;d1P0LA*uq7Wo5HxZD4y0Mb*m4Zsfo{LKYS z!J%rO6^tMPCSWJ$Z)_9sw&h#4{j(HTuihR&_SLdV{&J$!T>+c-IgP z-$z)ULjHG?jb%hkW)hsKzrK9@18ij?!sOF3yUW{(sn|+uZM4M>yX@1Y!w8eiv&dGb zCS~a3!}Q%u9M4G(e16i8R{Q@llwMI#lS(~cgU#wS*z15Ek?d^`b!ENsFm^bF@I8TGy zKFW`{vy}>J0<#K5DaP3 z$!f7I>|#lkp=V4asc;=x;9{jm(Zwn9MdZbnTX41Fk&?Y4hW^!=BiwY^oZQH(XkiVN zy^Akm68@s7D>F&mkbJqayS9Vxne~_C_F`U;m-Z>u((W;Q_Z45>$?CpZB9j;PN|aP+ zhZTq`n#!?7ouDk`iAuI8){!Ui@3?PXuJUDle{_lDJYNfZwIGowyXBhf!QrPr+DIts zcDRK$H+S3+ZEAD~{x}#%gvShd?=R+)8_q{N(sMQ#T;V;F$(ao0Rp#v4w)&+GpyaD4 zw(gY?+JjXDO^Rf(BdBgKRt;l$aqiZ0KPUXn$~23FDyK!AmWK-yE@0kyJ6aCCd{Irm zZMo1LF0f|*^jf2+~A{)8Yqp1M98iN+6=xp84;`-SQ6O%w(h0Kz(}gj}98J~OHjKTRoBb8SBGAUGU1eF-)8Ad3Uh z*PyWq*k93@FdZq;W{P_= zET!wAKU>(p_LYZwY-zd1G{217+(Ks{G?&+R%6?1`DJRgKI!zl2YGUEZtNE@yXW@B# z;2f+{iA(C}2*v5a>jB0Er&%U%y{)lp!uXu6xy!rP;(*7?UdlI}{JrZh2|S)1kXA%A zaI=MG7-#rvbY~)xG125s*e1aht@lZ9y}qB%r!1_a0_if9ZFZ@ttEZvNR0MhJji#iV zTTzX2HJ`nb_=k{1E_4VY;2dUS`A0^ap%ieOuxXB+_^TtN(e*ODYr2L-WUZED^_P~vy{HuILi}jt2wvgoEE00iiP&EtSusHxWVt*3qF(A<+Q&qMcT`?Aeq57hg6UV- zJG|fM3r`1awr<(e$z$CKXI&lGWaVFbEwLXF>98PMqRngHMV_I-~kfOiOF93=& zbDShRfm)^2(rY4<#>!GJyTU`phUaoMF7E_^pnOVW%4LU-1*(9{E%2=C3~aupgy7S) zgF8;lzU@9RvvB5eVR$UN!D{0-M-FyRxkVM;0Rc#0WWJk(MVxoBR)Jt;OMb6NCxZ4Fpsj(8t ztzgHBH*(jTT*yo=;VmQ}LMBsr=TL!5m>d~1BR4l@=H!TkBp4Ahvwz0KIo@U{QipEE z#DrEBX$<;e&Csj=uRv9?8XyRPJs{@1L1$3P zEh@u#K)qyPbIo?TtnHKcB=XJhh`thgCxuQd6QgTC*`xbMM4vjB7Qs1YHhUQ&7mb z`7XVe)~*K&Qr_dTmRyW~{O4rtjg9q5?+KHqO4N&bePDWuOj-DoD_ybNXyOGaAsF}HMG`5}1bA{uq1pR|k6xQGOd136Z)t#sl=-e6k83RwCZUi)*;Uw!Hy#v9t zBR#QO?;A%B_LREg>IW~10-@E?hAsmf z2UQJSCfEVY8JYQ+AglfJXBlexb72CWUxN6`R@G^rQGU#sCN7T@$-5!~ap372Nl z9NWyTtl%lEc-|GOi;XE-qZrbPjM|jXwTkM;O2y-l(8mhpW6<{`b@?wpk5TECROPAu zYVJ_j{91;JOs6z?b=9|Aqt9{t!HnJS{ddPSkLYztQ)*HHp8a4;@2DX}uZx=Wnu5#0 zm%oWOw*vQa+s)E&fHc5g0GkB_Kuj%hFjSY|R$lb$`2c3Hmj0lF_xu`aAQn2fuv1{$ z506yK4RfM|!5Z9tJs%(Tm*4bKJRZg~6|l&yleF|?N;xS4rV_N7hWOsiyirN{PJV(6)@on)AB%mB{MouAI%l0Re+ZfGCR-r8aR(Lr zmy322gW?x!$%UYU3w{kz(rv%M)H06(iKRiblWTO5!EsWP zr7jbT8=C->Z<~HM!Ol#au+&VQjO7SOS`qHuJPVtt-^7B3+LZwuzfL!P#*(bs(=v_+ z%5j?TnqnK>vLXeV8n?rWhRt&V)E8;zGFzPrkEnj&zsthGf6=ii{)v0T%Z^Q~Z>YU0 zfaBGq<_t@v;2#8Deqwy=!OZ8jE&5C5><1FlkCZ%e005Oh4BA0j*$H4LrYg@Jcc1}n zO@)O^!NJA62C&q+pZ|TmR0Lqr5o=azsj@7&h zu$J0j3ppATyhN^FT|I7{(#Q~mDK>y|D$W#ww%eD0RHiI=gT#RJk!Hp1ZZkH=v8L0b6O8a zUgcKcwQ$wcoJ6mwNT~%J>XPku67j8U8ng99=8ENe{<4u z!NL@|CMWYLxg}qpJ9Afacw=^BMdQz=xEbBdYW8ftZo1k${6ovvq3Iwy`gEM?xZSDg zGm#u3@*Z*C2yFPTwy5qaa?mpe;yB~LV4EcFT=THtWxJTDh z-*dF*T5oD^N$;@US$&w`UxM3$*85FZj>5iUFPT)jr1Uq*A;}?WkW?#ODg8^j zQn*hSyX9J?oy$uQ7Te1Ub8^6QuUk4DPBXO2p|S40GI$#q4=vLaF+Ge=d9pBwVVZ! z(EO1` zs)~6akORmAi5+A{3GThbpTn{KGlmktumm7_6Y%|Vsqo6?RVsa8WF($(ao{0Kk#i@J4as1EOS z9CYiIKjBk9&RUh^@#7?+7UMcP1cu@GEOILtiPMf?C66X{Lw1hY-^fSRJwIxH%mIRU z@;ONrIB4g*a{?n-Qkl~ucEkb{yjYYZ1rw&CvbV>Ti3LW!BwQOTVnR%fboZG{M`OtnLZ(Z)brN&tx;N5aXg$I0?zF)r=HlTjCy*HwkGT`RVZmy9 zNye;-qaEv`!tsqD(ZP}-w&9;|9vpUVSSytJ2Xve_ap9KS276J7++cxUr>rz)c@H)Y zdl5#n zE1zA_^CCj+k9zIL$hU2<#4lVH`O!ayV7^b}M8Kpaqi`QY-+9ABHtGbvF=0}d@2Dxs z7+2vGDuu>TWdrqBG+FAwJKr6z&#M=>2HWWp@*6ux41jRK#m>J(C&a#7jbfiUyvH%(2rHOgBdZDH5CeKydBEMY~*%FJ47ZF6v=h~^9?HvN(0=( zU^E2u_dy(FW7Fua5dgXX0s|;QA+cpk&pce(4-E#W;$DWq#F+_iI`1@&03PUKG8tI% z<$XeFlcU#s^>>j4-*^X3r!{z)xsCkID=G!_K$mC)pD&yzZUyu3g|9rwPTSk;kD{nx zZnu~N7_k)4L=_llXT>>T({cSy>$Z~ffWeDI1kvDFvEsr{$ib(Wkxh0^F}dob z!K&SihJjMjz`^TU5b57dfZm39I8L%VmMo*UBc|c!Cw!X*xK}^_)qaCkul_lwsilFdtDE&9;kgHu}BN)=H$z)=S%;D^F_1$5rP`03@ckmWq zjJe)#^lw8f?#M&QH0C>_(7~z+LheSylR`Z!Iz13ywP2v#tYFgA@0(F}5X$rJAyH%8 zZRW3L|7e6AyB$EnR4o^1H;cn4?9)LAG`wPT{dFe9$MB^?O^D9ul?EC}QYz?6=Mt@2 ze~&ZDiy7%^`A23ap|h zu*3p~fcRM3T63Yw4`3UFOpP?7CKYv3yIW~OQY&IS4Y!|h(G>Z?Ez!Np@jhbqzg)xA z8oQc;)qeu=Gs6p!fs&qJBk^I9)Z}hpt}qBA8crs4&V&gHuqO@fO<^@_?4xnRqjbrw zRwzE4pl+y_X=z$HPj)k%sZ3SdB@NXCITzf12EaTej^1cib7s**z3jYy`J?)WwI64A zKLXRZT^OWZ_g{cZXaZCr2Q&;fNu;J-WbpR!tB&-Mr z?HjVOvj=5oBN{XhxiSWUkXkWm@;-8C8wnBbSV?p06}VTvnGiU{FflcQFNlxs#*oM&KM>@RnY2uph_~&52I(M-IEWzG%oc})8#@9X zVu)9AYe{TIscDc_2LJs54ip3e|IL$bwWBns2v5(f)q%87(k%#3<$Zw$N=tuh4^+W zC_A)eq^s-bI@AuT;4JKrcH`XS4Q4u1`wwseOC z2=%=}J;BK*c>!%;4H>}w|6CjEoGfI0S3ZUy^T4$_j#1vzfm;MJq0rd#frpn4cecOi zP)@z&f~VBF^qLR`&6a9bM{+dOuffJZ zPYH6PVcY?Htn{zSdQC?X3T!4XDk6ivF9B0X;X8rshzv@6$!ZS)bxTV@8Qb!SxK=Y? ztw+F?9exz8W}cu;mw}#0B0@$&InGssX1m?tba_KT@mZ6ZW2ZN;7PPd71?Mj=T31BN zv8*ed2Srzfpcu}!u}nVi3Y881U0igEi%95) zbc#^4SFWs-7ia((**O}KPzd9S6QX&utmAQ_>6VshBzCfn8Th%<6%qIZ!D$RT@c{~PiM(!2l}hK zOEStU`Ru<@J9NzNa?wiaX7tX#Q9q=U2|cmNbR-hyV7j}`bbgc%2SOGZwbQa-4&EOF zChXa=65Sh$YYi5&tt21m*q|77>{DE;E(FPAJC)*~g~5g8s2^BbakD?_AVdLLAQ>~y1c?<`_>YJdeZM^% zguig#1!TKIB@?m{6@($GBC?ObVr6$K0I15(ZBK!}*D z3KhZ93Q@8W7{8O~BamoU&jA&vR>#qeE0tRm5 zQ!u!9r7&II(+64&HK9`1d#1zThX15(UiLvC;!{6(_R0$j^n$px1r{E>bK+h-*B3di zes6+BD-Nc2*y)oVbAJkDhCI*s;=_=LoT(PMJ?T&kFc%7iCzDv>lDV%jUnbi%N}ZBZFa(ZE)i9-;nkAX# zYnaVuUIE=a6;Y>xemP>WeG-t@Hfg4R-sbvkBU20(XlXn=QXtl8XQD!YJ0t<)fr*7a zK5m?DHdRK)1|oi0BB229~=eT_afiEfrOUvRGs1SIed$h~+ zIYr}()`1k=$fao@@Kq3lfsDusM#lzY&@<@vP2p&J1-P$Y*2?9!mxE>#yy_LVXkvzc zvXs@g&&qMQSTx@nFM5SqyadSQl{ie|4M!01YfxuUNqVsg;`5obr|=H3;rXU-65cqb z%gBvew{PE7idVMnk>%l0+&yuTvC2j+k%3vVQl(oZrUf$0pCrX%5ii_RevCbve@CNtU)F)zMzI!sG!R6w5 z#rjAD2!F!|`MhEV?u%+xUEv7NSU{F0%53V{vDKUf3Z;#m7mcu+V5G_)gA|r>DcPqV zpQ@j6+6n>;miCdJFgu65rrv}mdO(6!@icka&E`Z03R#*-6U{bgJXsPyn5Gy~{>fHN zdl#+F_qm5FIjCEH#O9E-e2pV$lT}o#lYj$Fs})19n+z zl>AD6`S_4k0+eBPlH=#$q>3F#&@6&*C;FRv-J$kE6|FKA478=iMhxh{T2Dktx}%Dx zu*h9DKAZr{A3y&5^dly59P2nsK0To1{}-Nz_(dmctUKS=u~Z-C_xZ`?4pa0$G&^C7 zQUiVTpy-5mhe2*h!@186*e(o{2j!7yXT3YX2vc(5X+fRw4eR3~qnl|m%HxNQS%Jf& zW7cUFHUko(vWV{97b8R@44^+ObhNGLgIOX?z2i)PS3Q*PoTG^y7(vmXMo+c`G&|50 z?)Hl6djEP4lyymZxU!J-;$gP6KNHdL$VENzDYF}&%*!VLDeP6T=M#49DNxX1uT9RL z(D>fX&>UL&pT*2Oj83+rtr;6@N_DuFRpC054lQG?I54h|ER1KsL&+!`OD!WWfFFo; z$qk?dn^v(x<_=0*y(l3(s3I~+r_p$0$ZD!wxXYUFjl*c_7lh}%-q-x3m>H%rl2x3` zn3GmG3D0Ar;r969aiuC>xa-hFms?i-0#2Pm_Ttd<2& zqi4Iu80D`ZhAK_EXpuW!)Fo|hh^;U|-=|MS>Tf}ZE;{n!dD_n&c`Bw|*4$iYtVd1} z34)vQ@6so%pxAoJJtKlL;~7nkjZ>0x`l?9xlAL=r!hMMY&eIpstAs7?mW7Fe$rE5; zYGRRtUFBY{p*QJ8m+_W|9K{L_28xkfIhMks;k3-%-hH~BvT`>3tU+&_W3T)j_rEa{ znF=M4^qJy4I=~~Lhel~|)W~U6F_{2;VDoyE95X(aU0a|s8kQ4#L75FZhjl4Vx-3A# zRYBeuT;#|DJF{{jjw=%~z4%Gi8L~7sg`@382C2+KU$dP#4U|Fi+~PUI418W%WI(lH z%}9_K2h)tRNSRflpd>w01-X6xg|(TxA6>Zni{W)00{5HS?U=GNG8^7uOnMaM;m}ez zV?-t+qZU9U^b3Va(PE!-FflGJUYllg`|#|KplR3Rr;x4+RS1w%@^T^q*CX-$PMj63Xu-RjHsBpCmv&Iln|!DEtNgBW@T<} zzQYz&vmr!`daOfTvM8fGb9~R|br^LCLe&_G!mEdmIVSwWiE=jTV^NjDU~py9LM-5M za0cSFTARqmu6eE0XGB$2)3HLu?3a>Wn!bpDdif}WMERxcA?v@#!Y zRwB1|$_mOf$DMPk6D@p@4b{q;i&SR)$5Ed~wjfD%lOS6L>!z zEmku>(FB^NR!ZYwAz|MqM_gW0Z>l;~eCGmxg5@LUfRAK{VbIP%JoP-lZTR3i-YTPT zG`_!A#EnHmwRzCrsBb2GUORDv!GjTs@z7}5J$Up<(d4LwFbVc`CWw5>5t@(Y%utn) zZ2r}(<2?&B5Wb0z32<(jsj;WH$3Z+WyD{9U{@bz4Y1crN4)-t_FDP(s*0ZK$UsMj6 z4@uDf2DQQRI{~`*vtvsC(e-}!s;Dz;0#=f=RjB_^ni3yA0Wg||Cx1MP-2vclLJ&<6 z=?_M_(g2sfXM&dpI7MMYNyeTE6^)=U@y!1KM&alZ3Wb;?+xY1>m?1|c-h&Q$uLn?q z9y1pb0=KL!T63Q+8*d^(WyNDt`TzlwG_N9$DjBq3ZWnB_fz5-AQi4~WrLb=IWo^F86^hwmb(6b66Ie%C1}xchV(g(A@lgVLSGG$j<#abcV3|)i4Gh< z5d=a6EwTzH9#^r7S3C!EU8`Y3DPH_@1100Mt67YO!aAcHi~!TjFu{|=fG__xK0_vd zhW(ZOp7?6*0cldaK>g;#emdt26hMO8@#`6=$0AB{8(g}J;GKZX8<@@%FVA2QK4t;P zZ3BUeK&zg%;ONm@YJEL%njva#S21Z?&>WYjPdCU5Vp^yj6RQOz-pa~zXK!&_6bC77 zjVZ!y!K?l|pAu+ynM=}V9Auf@EC>5YuCp->98Tc@ zsN}L}I*Kq6-|V(s4Kp;(FasnoYsKrhytcDuZ8ZPw;Jv|ha+^@7H9IB_B;LT1;~NiD z*Y|@VWDnr2Rxn7v$`C%)+W|L40OJH7Tj3Dx+Wew8Yb`yokvCzr%k}x7AAtAK|v5}MsQzoV)+ie?7iFU zB@bLo)0e5I*`c9I9_-<-Za+rF{0M^Z!({aw66z_&I+DCKcJmMb6NFC$q!tFj zF}qQhoD>%k!s5ziC+aft-2Tu+ba8JdF}Kh1Mhc#;D0&gbe2mHRV~C7`{O!6+2Kde+ zPO%jS7N~sQMWsQF104c8k#oS?+0r2w@#FlPIEPhrbdT)eO zQOuCMzY|N}jbIr7Z29u)=FX093bOv+M$xyh0Pw`_D;NNt-eH^k|D+lzrqgbqfdL@= ztFN40eEA2Z(}6rZ?|VVhTHXn(DMmH&vSx{4?w&41_~DYqTr(~20`_x$xlVkOBj0&P=B{-=&rk0 zcDK~QUdE{4S&TkP#ak{}lT?rda!J6L+t$zUrX$P+jgh+k|H{C@3=1XH?+_l$sN!*V z#>*PZS2z&Us38W1>gSt#K?V02|LpN6tM`(o0rzKL$6R%v?{m5oVI4RJ5~q3SE_6ZS zG7?>wIGjL#hn31XiDBP70%-*N(c=nb2$e2o?zV>e6&xz00RJ}T!bB3$Frx^6n4=GE zm{%T>u!!34!h&*N+f||0U3(!BN=>Od|vQLC(U8W{OVj^anL!3WpNGm_#~ zFS2Gk`4BS+Fjile8)aPrHg;i!-YWd&Ok7FTE-7P2PMb}Vk8xnTHG;Lq(gRzG@!KQH z@@w#`Hrj;gA8$Pgue+xH2u$u;r!WV{8v0f88Zn*H!JS=PYwjz#n|rPJ{fm-+0>Xqu z!~#fql$ex^oFWM&mB8fGf&`}!(vyCuNhwUY2$88oi54R^wK(xK5(<)-TPs*{&loc3 zqNC5$Z=l}H`oLWJrOS|+t#6F7gGRD<-6)bdM`0|5v$C;s^tcF4E^eM8dHISl#xGE; zU{CugRGhGJ5fjCmG-cXMiDu1-nlIUc#ZoNw+_IH=(ZAtMESSnIZq2$42}y^fY)Z?> zIxJ_a`#p3FBy|0iq(QpdB58VT>01?SA-(Ggs7TxvROBWBjT){RYml@Nu(laG#?cg5 z#=}Ok3B{9TleI&XrP0MbkL=I~E(XWozWy131OOWRIVA-} zwTcmf^sPc)@$^&?0iFi=`M&^Y@Ol20(5l&DfC%J4VbCa8&Wa9$7=YqcKN^LC6|XQZ zF9U#3@d_h<*TU;`$OIhBePtja!M63{0)TWEf57s!rBwi6lO^5FljrGRk0Z0f^gs$L zkg69I#^y%>rsh#>kQ_?o!2_v5bS54#`)eBlPN(1z9#{vI1KW}sOt+2UP+emj-N-Sa zWD^R)+)UCm3I`E{QF$OdDvZJ8;-c^f0WS{H`EDcv0&yrboQsvsDg?6dh+rO%jYA?M zBO~=9_4QbsASBwv!~}`LATbzS2%*c3X7a!&T_#r@VvvLjIIO5#GKbFQ(OFD5pA!sZ zh4b(Tgd}{Gn!w|6=z(kOOs*a%@PzY2^q@l{K?)a%)Bmv62t;z~U% zFjg!EU9b`xuI!Z~EBfPo*hN@B^Of;=k441>ZL>Y^~Z7z0z}Kc@I= zd=0Pyd7xRW=HYM_Z!d*KUQuu>!ir#PNeYjqy4o7AICNG-IG4)V0CXqVIQkzl3=MT) zZ2$&xKqh4aa-RT6Ff!8RuK45E_9xiM#?4tr@rV>N8rs;v7=ty?r5Tw}bq%N(16>mu z##q--->~(bp6`A?>Q-Tlgepgsk4EaX~WgN(J#NM%CpkOTF-T$j=$01&GnS`pklQ)WE9 zj&F0{rn}u)>6cKtQ<}K3@B2z6o`G|zrdCf^i&bY-FK<`M9g)}Fxosy^aq zWuf$^Ed;BRIVD#rFIs8p6kdD zc|W%W4Nj3Fh|Rt77OAKM%NKfikxlhc-`S9Ow8MxuO1gec@(bQBh7UaD<}Zy~h*}Vp zt!TV!!5<$O4oaZNaj1L2L5WXVF4l|} zs-@N2q7}E>C?nof6L=sK$(HBVmv<@r^&{cV!-lylrFE)dgT{_v zL^_baQ@ACbIQUsZe&}*K^>WHiV^4)Q64w5TfX>~=>e-xWKb+i1 zr|s4n7dsw_=vwR8$0*QN(X*&MOo=ZoZLkEQixx&V+sKfLteyMRFMome_~!rE{^--V ztbz{gZhF_QvSrqZciKeNi&BMl>N;_fYQu+;v*RT-7u1~{_bT@V6?aRcL@r4NG#iyP zWS(xMWMC#Hn?kM~3u@?Mq?a8?xS4k3XtmS{C53a7Cz>^$)A#V+@my#svbSA*x9w4t zdSLYU>Ul3}>ZuIQxdyoof>Ct0))sd>4$3o!5csih$0$IE}~OdN=bv&M!rYJRANK)rSQbJNAEASd7{RTq}PKSfm){ zX&WgcDRH9F7#>|eBTu|b>pB(G&RRS}Bx{E1n=KA_o00?8CgMWbcDdyh)3z!iTN1{aHvjPspYp{0`18(VDk7-B)=_mJ0?gVL zci1?gNWxEFeu62Pv;SM9!eV0IR9SRocp_TA;$`j3TZQtv$%=N1EpN&~T*7nj$|uVn zX~6~5ol$l4e{NU&L%*!Cq{ktBlIQS_54km}W;NPEg^8D{B(^llJsEk0nTm7T-qANH z33R#_JHy2Hqxaqr{%)itIdAv`sxu#mZielwvc!M(%KIe_I6Io~&Cz3%!oeiXLyKn{ z#cD?zJ$C0Cn8tqIYxjG3$5PDBdNVVH8QbY&l~ST=iKDSKA&kD{>l#)kJEj)Fu9Kxo zzvd=l=i*N~$}GoTeEmwhromaImKW^P=9L-?pPErN4?FNt_FTrk484gDc^%i-)(vh3 z_0i@8S=vvR_jxwIH3#miR>UmsnXb;VnNmxQKa!_t6qo(Gi~J6m0+xz7oVRpU5|9`G zx7t062WfWr-Fwni=vr4pi)4J#@!cOS+|VBZEyUBCMc5C$4kl?n{;Cr~dq@Uo2BZdU#K<+XFp$ZgR7J zb^b_Wa&>X@5>~#TaxUpc590Bo4==kbrDVl!S!zZeB%{Pf2*WbpfCVo?3->2BWhR?W zSr5;2)|0$Gg}G4N(ysa_934jw4HUUY)whct47gQ-dg1!$QRZ*-T^&*KS4Er)p7n?N zb~-pF<7F~ue{rF29xKD*;_vvH>KMyC-I8Bmr;{V6eqpS{grXMEs82z{ERxd=7**D( zt(&fn6Kuh(l-(BdF;byHua=t5+Zddu%^TVejkUs!rJc~%m+^QX ztX(sltzKola<`JOO`_E&PkZdTt5#s@=XEFfT;RM_#=O6h%e$hGrkDXj;jeGA4v60* zGP0ADWYPw*j&%=@7-9`CbT!>N$mY6_{8Vx|&P=iF)Es`d!s79WHr0S7_Kil*qsXQO zlZO>cB6ZFkjv-6k8Oc6jpOfXb9lc`cFof{>^PP9=mG4z9^rwgvUZT6!Hg_JUqIr209>((Gynhq literal 0 HcmV?d00001 diff --git a/build/.next/static/media/icon.14w3bhkxgz946.png b/build/.next/static/media/icon.14w3bhkxgz946.png new file mode 100644 index 0000000000000000000000000000000000000000..91c79c6d8550ffe63c3f59d138d5cdcbb58e6cb6 GIT binary patch literal 3590 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 literal 0 HcmV?d00001 diff --git a/build/.next/static/media/layers-2x.0olxl6i2vnf_c.png b/build/.next/static/media/layers-2x.0olxl6i2vnf_c.png new file mode 100644 index 0000000000000000000000000000000000000000..200c333dca9652ac4cba004d609e5af4eee168c1 GIT binary patch literal 1259 zcmVFhCYNy;#0irRPomHqW|G1C*;4?@4#E?jH>?v@U%cy?3dQAc-DchXVErpOh~ z-jbon+tNbnl6hoEb;)TVk+%hTDDi_G%i3*RZ&15!$Fjr^f;Ke&A@|?=`2&+{zr+3a z{D*=t(`AXyS%X7N z%a#RZw6vD^t_rnM`L4E>m=U&R!A-&}nZIi$BOPvkhrCuUe@BN~-lRD)f44;J%TwgE zcze8u!PQ_NR7?o(NylLXVTfDO zxs5=@|GsYEsNo4M#nT%N!UE(?dnS)t2+{ELYAFp*3=iF=|EQnTp`#vlSXuGVraYo? z+RCzXo6h3qA8{KG?S4nE(lM+;Eb4nT3XV;7gcAxUi5m)`k5tv}cPy()8ZR3TLW3I- zAS^}cq-IJvL7a4RgR!yk@~RT%$lA7{L5ES*hyx)M4(yxI$Ub(4f)K|^v1>zvwQY!_ zIrWw8q9GS^!Dp~}+?mbnB6jDF8mVlbQ!jFKDY;w=7;XO{9bq7>LXGK24WA`;rL)_Z z)&j}pbV(;6gY;VMhbxgvn`X;6x}VUEE-7 z%)7j-%t8S=ZL3yc)HbXDAqJZvBTPoiW_A-+a8m3_Z?v{DN7Tnr#O_VUMT0UBt$;p` zDh6JbGHN8JJ*JN%y2%msb97@_S>9!%Egwk;?PEkU9ntz&3uR}%Fj5d$JHQbQb3}a{ zSzFT^#n=VInPpcAS}CNxj?_ zVscANk5Cfz(51EI1pz};AWWb|kgbYNb4wCEGUn3+eMUMV?1-{=I4TlmLJMot@rd07 zZuo2hk1ccu{YmGkcYdWAVdk{Z4Nm?^cTD&}jGm+Q1SYIXMwmG*oO*83&#>l%nbR`G zhh=lZ%xIb7kU3#;TBbfECrnC9P=-XpL|TG2BoZdj61*XiFbW8?1Z_wp%#;>${SUIy V$8qr;L*)Pf002ovPDHLkV1hYLS~36t literal 0 HcmV?d00001 diff --git a/build/.next/static/media/layers.1220hx8ja1.sy.png b/build/.next/static/media/layers.1220hx8ja1.sy.png new file mode 100644 index 0000000000000000000000000000000000000000..1a72e5784b2b456eac5d7670738db80697af3377 GIT binary patch literal 696 zcmV;p0!RIcP)*@&l2<6p=!C&s@#ZL+%BQvF&b?w6S%wp=I>1QHj7AP5C)IWy#b znXXB;g;j=$a-tW89K%FbDceHVq&unY*Wx3L#=EGWH=rjqnp|4c_Ulec!ql3#G-5ZF zVlbBA@XP=)C8U&+Lrc)S4O5%1$&{(;7R^K(CSnvSr$v;+B$8q&7Bf|h$#PARo1^%M zf1H^nG-EiXVXr07OH(*8R)xa|FD;lXUlg_-%)~ZGsL2cX0NXaAzN2q%jqLRR6ruVk8`Jb7n#{`T;o@`F= z#3YcynIR^s83UNF3D!f5m#Mg)NJ24&Qfrqb&_z=yF;=B)#9Iq7u-@^O!(mW{D;qvr zPc)gVb%aowtS8m@ElL4A9G>w#ffQ~q{i&_i)*6f^)Sz|C?C>zb4Uo?H<-&Hz@a?J; z$ml@zGygWofb9$ZBj6aLjpLhsT2AzjOu=-*u_gSCUP001cn1^@s6z>|W`000GnNklGNuHDcIX17Zdjl&3`L?0sTjIws<{((Dh&g-s0<@jYQyl?D*X^?%13;ml^gy> ziMrY_^1WI=(g@LMizu=zCoA>C`6|QEq1eV92k*7m>G65*&@&6)aC&e}G zI)pf-Za|N`DT&Cn1J|o`19mumxW~hiKiKyc-P`S@q)rdTo84@QI@;0yXrG%9uhI>A zG5QHb6s4=<6xy{1 z@NMxEkryp{LS44%z$3lP^cX!9+2-;CTt3wM4(k*#C{aiIiLuB>jJj;KPhPzIC00bL zU3a#;aJld94lCW=`4&aAy8M7PY=HQ>O%$YEP4c4UY#CRxfgbE~(|uiI=YS8q;O9y6 zmIkXzR`}p7ti|PrM3a}WMnR=3NVnWdAAR>b9X@)DKL6=YsvmH%?I24wdq?Gh54_;# z$?_LvgjEdspdQlft#4CQ z`2Zyvy?*)N1Ftw|{_hakhG9WjS?Az@I@+IZ8JbWewR!XUK4&6346+d#~gsE0SY(LX8&JfY>Aj)RxGy96nwhs2rv zzW6pTnMpFkDSkT*a*6Dx|u@ds6ISVn0@^RmIsKZ5Y;bazbc;tTSq(kg(=481ODrPyNB6n z-$+U}(w$m6U6H$w17Bw+wDaFIe~GvNMYvnw31MpY0eQKT9l>SU``8k7w4)z!GZKMI z#_cEKq7k~i%nlK@6c-K?+R;B#5$?T#YpKD`t_4bAs^#E+@5QW$@OX3*`;(#{U^d-vY)&xEE>n5lYl&T?Am